From 3edefb7f01409b5cb47a9f9e03d2968a1cf1d1dd Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Wed, 25 Jan 2023 11:39:00 +0100 Subject: [PATCH] update dependencies --- .../v1/abusiveexperiencereport-api.json | 2 +- .../v1/acceleratedmobilepageurl-api.json | 2 +- .../accessapproval/v1/accessapproval-api.json | 243 +- .../v1/accesscontextmanager-api.json | 271 +- .../v1beta/accesscontextmanager-api.json | 12 +- .../v2beta1/adexchangebuyer2-api.json | 78 +- .../v1/adexperiencereport-api.json | 2 +- etc/api/admin/datatransfer_v1/admin-api.json | 32 +- etc/api/admin/directory_v1/admin-api.json | 735 +- etc/api/admin/reports_v1/admin-api.json | 10 +- etc/api/admob/v1/admob-api.json | 31 +- etc/api/admob/v1beta/admob-api.json | 106 +- etc/api/adsense/v2/adsense-api.json | 379 +- .../alertcenter/v1beta1/alertcenter-api.json | 409 +- .../v1beta/analyticsdata-api.json | 22 +- .../v4/analyticsreporting-api.json | 2 +- .../v1/androiddeviceprovisioning-api.json | 104 +- .../v1/androidenterprise-api.json | 144 +- .../v1/androidmanagement-api.json | 1034 +- .../v3/androidpublisher-api.json | 2072 ++- etc/api/apigateway/v1/apigateway-api.json | 32 +- etc/api/apigateway/v1beta/apigateway-api.json | 32 +- etc/api/apigee/v1/apigee-api.json | 2349 ++- etc/api/apikeys/v2/apikeys-api.json | 57 +- etc/api/appengine/v1/appengine-api.json | 271 +- etc/api/appengine/v1alpha/appengine-api.json | 195 +- etc/api/appengine/v1beta/appengine-api.json | 551 +- .../v1alpha1/area120tables-api.json | 4 +- .../v1/artifactregistry-api.json | 867 +- .../v1beta1/artifactregistry-api.json | 31 +- .../v1beta2/artifactregistry-api.json | 57 +- .../v1/assuredworkloads-api.json | 1252 +- .../v1/authorizedbuyersmarketplace-api.json | 75 +- .../v1/baremetalsolution-api.json | 117 +- .../v2/baremetalsolution-api.json | 1304 +- etc/api/bigquery/v2/bigquery-api.json | 1062 +- .../v1beta1/bigqueryconnection-api.json | 23 +- .../v1/bigquerydatatransfer-api.json | 38 +- .../v1/bigqueryreservation-api.json | 89 +- .../bigtableadmin/v2/bigtableadmin-api.json | 446 +- .../billingbudgets/v1/billingbudgets-api.json | 8 +- .../v1beta1/billingbudgets-api.json | 8 +- .../v1/binaryauthorization-api.json | 26 +- .../v1beta1/binaryauthorization-api.json | 26 +- etc/api/blogger/v2/blogger-api.json | 12 +- etc/api/blogger/v3/blogger-api.json | 38 +- etc/api/books/v1/books-api.json | 4 +- etc/api/calendar/v3/calendar-api.json | 20 +- .../v1/certificatemanager-api.json | 294 +- etc/api/chat/v1/chat-api.json | 992 +- .../v1/chromemanagement-api.json | 1065 +- etc/api/chromepolicy/v1/chromepolicy-api.json | 806 +- .../chromeuxreport/v1/chromeuxreport-api.json | 49 +- etc/api/civicinfo/v2/civicinfo-api.json | 121 +- etc/api/classroom/v1/classroom-api.json | 22 +- etc/api/cloudasset/v1/cloudasset-api.json | 935 +- .../cloudasset/v1beta1/cloudasset-api.json | 45 +- .../cloudasset/v1p1beta1/cloudasset-api.json | 49 +- .../cloudasset/v1p5beta1/cloudasset-api.json | 45 +- .../cloudasset/v1p7beta1/cloudasset-api.json | 43 +- etc/api/cloudbilling/v1/cloudbilling-api.json | 16 +- etc/api/cloudbuild/v1/cloudbuild-api.json | 1147 +- etc/api/cloudchannel/v1/cloudchannel-api.json | 1247 +- .../clouddebugger/v2/clouddebugger-api.json | 4 +- etc/api/clouddeploy/v1/clouddeploy-api.json | 890 +- .../v1beta1/clouderrorreporting-api.json | 16 +- .../cloudfunctions/v1/cloudfunctions-api.json | 172 +- .../v2alpha/cloudfunctions-api.json | 305 +- .../v2beta/cloudfunctions-api.json | 305 +- .../cloudidentity/v1/cloudidentity-api.json | 951 +- .../v1beta1/cloudidentity-api.json | 858 +- etc/api/cloudiot/v1/cloudiot-api.json | 22 +- etc/api/cloudkms/v1/cloudkms-api.json | 189 +- .../cloudprofiler/v2/cloudprofiler-api.json | 4 +- .../v1/cloudresourcemanager-api.json | 26 +- .../v1beta1/cloudresourcemanager-api.json | 26 +- .../v2/cloudresourcemanager-api.json | 16 +- .../v2beta1/cloudresourcemanager-api.json | 16 +- .../v3/cloudresourcemanager-api.json | 335 +- .../cloudscheduler/v1/cloudscheduler-api.json | 10 +- .../v1beta1/cloudscheduler-api.json | 10 +- etc/api/cloudsearch/v1/cloudsearch-api.json | 12870 +++++++++++++++- etc/api/cloudshell/v1/cloudshell-api.json | 4 +- .../cloudsupport/v2beta/cloudsupport-api.json | 32 +- etc/api/cloudtasks/v2/cloudtasks-api.json | 18 +- .../cloudtasks/v2beta2/cloudtasks-api.json | 385 +- .../cloudtasks/v2beta3/cloudtasks-api.json | 248 +- etc/api/cloudtrace/v1/cloudtrace-api.json | 4 +- etc/api/cloudtrace/v2/cloudtrace-api.json | 6 +- .../cloudtrace/v2beta1/cloudtrace-api.json | 6 +- etc/api/composer/v1/composer-api.json | 239 +- etc/api/composer/v1beta1/composer-api.json | 309 +- etc/api/compute/alpha/compute-api.json | 7445 ++++++++- etc/api/compute/beta/compute-api.json | 5791 ++++++- etc/api/compute/v1/compute-api.json | 5932 ++++++- etc/api/connectors/v1/connectors-api.json | 773 +- .../v1/contactcenterinsights-api.json | 608 +- etc/api/container/v1/container-api.json | 817 +- etc/api/container/v1beta1/container-api.json | 812 +- .../v1/containeranalysis-api.json | 671 +- .../v1alpha1/containeranalysis-api.json | 773 +- .../v1beta1/containeranalysis-api.json | 865 +- etc/api/content/v2.1/content-api.json | 1273 +- etc/api/customsearch/v1/customsearch-api.json | 2 +- etc/api/datacatalog/v1/datacatalog-api.json | 603 +- .../datacatalog/v1beta1/datacatalog-api.json | 151 +- etc/api/dataflow/v1b3/dataflow-api.json | 281 +- etc/api/datafusion/v1/datafusion-api.json | 202 +- .../datafusion/v1beta1/datafusion-api.json | 218 +- .../v1beta1/datalabeling-api.json | 4 +- .../datamigration/v1/datamigration-api.json | 2082 ++- .../v1beta1/datamigration-api.json | 34 +- .../datapipelines/v1/datapipelines-api.json | 88 +- etc/api/dataplex/v1/dataplex-api.json | 3088 +++- etc/api/dataproc/v1/dataproc-api.json | 889 +- etc/api/datastore/v1/datastore-api.json | 298 +- etc/api/datastore/v1beta1/datastore-api.json | 2 +- etc/api/datastore/v1beta3/datastore-api.json | 239 +- etc/api/datastream/v1/datastream-api.json | 307 +- .../datastream/v1alpha1/datastream-api.json | 18 +- .../alpha/deploymentmanager-api.json | 48 +- .../v2/deploymentmanager-api.json | 42 +- .../v2beta/deploymentmanager-api.json | 48 +- .../dfareporting/v3.4/dfareporting-api.json | 54 +- .../dfareporting/v3.5/dfareporting-api.json | 904 +- etc/api/dialogflow/v2/dialogflow-api.json | 701 +- .../dialogflow/v2beta1/dialogflow-api.json | 735 +- etc/api/dialogflow/v3/dialogflow-api.json | 503 +- .../dialogflow/v3beta1/dialogflow-api.json | 503 +- .../v1/digitalassetlinks-api.json | 2 +- etc/api/displayvideo/v1/displayvideo-api.json | 1446 +- etc/api/dlp/v2/dlp-api.json | 1236 +- etc/api/dns/v1/dns-api.json | 489 +- etc/api/dns/v1beta2/dns-api.json | 423 +- etc/api/dns/v2/dns-api.json | 447 +- etc/api/docs/v1/docs-api.json | 4342 ++++++ etc/api/documentai/v1/documentai-api.json | 1697 +- .../documentai/v1beta2/documentai-api.json | 690 +- .../documentai/v1beta3/documentai-api.json | 1552 +- etc/api/domains/v1/domains-api.json | 217 +- etc/api/domains/v1alpha2/domains-api.json | 217 +- etc/api/domains/v1beta1/domains-api.json | 217 +- etc/api/domainsrdap/v1/domainsrdap-api.json | 2 +- .../v1.1/doubleclickbidmanager-api.json | 44 +- .../v2/doubleclicksearch-api.json | 160 +- etc/api/drive/v2/drive-api.json | 436 +- etc/api/drive/v3/drive-api.json | 420 +- .../driveactivity/v2/driveactivity-api.json | 246 +- .../v1/essentialcontacts-api.json | 19 +- etc/api/eventarc/v1/eventarc-api.json | 634 +- etc/api/eventarc/v1beta1/eventarc-api.json | 28 +- .../v1alpha1/factchecktools-api.json | 4 +- etc/api/fcm/v1/fcm-api.json | 10 +- etc/api/fcmdata/v1beta1/fcmdata-api.json | 4 +- etc/api/file/v1/file-api.json | 88 +- etc/api/file/v1beta1/file-api.json | 377 +- etc/api/firebase/v1beta1/firebase-api.json | 489 +- .../v1beta/firebaseappcheck-api.json | 498 +- .../v1beta/firebasedatabase-api.json | 71 +- .../v1/firebasedynamiclinks-api.json | 2 +- .../v1/firebasehosting-api.json | 4 +- .../v1beta1/firebasehosting-api.json | 14 +- etc/api/firebaseml/v1/firebaseml-api.json | 4 +- .../firebaseml/v1beta2/firebaseml-api.json | 4 +- .../firebaserules/v1/firebaserules-api.json | 6 +- .../v1beta/firebasestorage-api.json | 14 +- etc/api/firestore/v1/firestore-api.json | 467 +- etc/api/firestore/v1beta1/firestore-api.json | 257 +- etc/api/firestore/v1beta2/firestore-api.json | 4 +- etc/api/fitness/v1/fitness-api.json | 2 +- etc/api/games/v1/games-api.json | 41 +- .../gamesconfiguration-api.json | 93 +- etc/api/gameservices/v1/gameservices-api.json | 1890 +-- .../gameservices/v1beta/gameservices-api.json | 1890 +-- .../v1management/gamesmanagement-api.json | 2 +- etc/api/genomics/v2alpha1/genomics-api.json | 6 +- etc/api/gkehub/v1/gkehub-api.json | 562 +- etc/api/gkehub/v1alpha/gkehub-api.json | 821 +- etc/api/gkehub/v1alpha2/gkehub-api.json | 55 +- etc/api/gkehub/v1beta/gkehub-api.json | 653 +- etc/api/gkehub/v1beta1/gkehub-api.json | 55 +- etc/api/gkehub/v2alpha/gkehub-api.json | 638 +- etc/api/gmail/v1/gmail-api.json | 568 +- .../v1/gmailpostmastertools-api.json | 2 +- .../v1beta1/gmailpostmastertools-api.json | 2 +- .../v1/groupsmigration-api.json | 2 +- .../groupssettings/v1/groupssettings-api.json | 2 +- etc/api/healthcare/v1/healthcare-api.json | 199 +- .../healthcare/v1beta1/healthcare-api.json | 630 +- etc/api/homegraph/v1/homegraph-api.json | 32 +- etc/api/iam/v1/iam-api.json | 120 +- .../iamcredentials/v1/iamcredentials-api.json | 2 +- etc/api/iap/v1/iap-api.json | 300 +- etc/api/iap/v1beta1/iap-api.json | 14 +- etc/api/ids/v1/ids-api.json | 72 +- etc/api/indexing/v3/indexing-api.json | 2 +- etc/api/jobs/v3/jobs-api.json | 44 +- etc/api/jobs/v3p1beta1/jobs-api.json | 46 +- etc/api/jobs/v4/jobs-api.json | 46 +- etc/api/keep/v1/keep-api.json | 6 +- etc/api/kgsearch/v1/kgsearch-api.json | 2 +- etc/api/language/v1/language-api.json | 54 +- etc/api/language/v1beta2/language-api.json | 56 +- etc/api/libraryagent/v1/libraryagent-api.json | 2 +- etc/api/licensing/v1/licensing-api.json | 10 +- .../lifesciences/v2beta/lifesciences-api.json | 8 +- .../localservices/v1/localservices-api.json | 4 +- etc/api/logging/v2/logging-api.json | 466 +- .../v1/managedidentities-api.json | 118 +- .../v1alpha1/managedidentities-api.json | 364 +- .../v1beta1/managedidentities-api.json | 364 +- .../manufacturers/v1/manufacturers-api.json | 295 +- etc/api/memcache/v1/memcache-api.json | 206 +- etc/api/memcache/v1beta2/memcache-api.json | 206 +- etc/api/metastore/v1alpha/metastore-api.json | 624 +- etc/api/metastore/v1beta/metastore-api.json | 624 +- etc/api/ml/v1/ml-api.json | 28 +- etc/api/monitoring/v1/monitoring-api.json | 205 +- etc/api/monitoring/v3/monitoring-api.json | 520 +- .../v1/mybusinessaccountmanagement-api.json | 16 +- .../v1/mybusinessbusinesscalls-api.json | 4 +- .../v1/mybusinessbusinessinformation-api.json | 8 +- .../v1/mybusinesslodging-api.json | 28 +- .../v1/mybusinessnotifications-api.json | 6 +- .../v1/mybusinessplaceactions-api.json | 18 +- .../v1/mybusinessqanda-api.json | 54 +- .../v1/mybusinessverifications-api.json | 27 +- .../v1/networkconnectivity-api.json | 672 +- .../v1alpha1/networkconnectivity-api.json | 374 +- .../v1/networkmanagement-api.json | 286 +- .../v1beta1/networkmanagement-api.json | 224 +- .../v1/networksecurity-api.json | 44 +- .../v1beta1/networksecurity-api.json | 266 +- .../v1/networkservices-api.json | 2667 +++- .../v1beta1/networkservices-api.json | 2431 ++- etc/api/notebooks/v1/notebooks-api.json | 343 +- etc/api/oauth2/v2/oauth2-api.json | 2 +- .../v1/ondemandscanning-api.json | 328 +- .../v1beta1/ondemandscanning-api.json | 328 +- etc/api/orgpolicy/v2/orgpolicy-api.json | 259 +- etc/api/osconfig/v1/osconfig-api.json | 12 +- etc/api/osconfig/v1alpha/osconfig-api.json | 8 +- etc/api/osconfig/v1beta/osconfig-api.json | 4 +- etc/api/oslogin/v1/oslogin-api.json | 4 +- etc/api/oslogin/v1alpha/oslogin-api.json | 4 +- etc/api/oslogin/v1beta/oslogin-api.json | 4 +- .../v5/pagespeedonline-api.json | 2 +- .../v1/paymentsresellersubscription-api.json | 388 +- etc/api/people/v1/people-api.json | 14 +- .../photoslibrary/v1/photoslibrary-api.json | 10 +- .../playcustomapp/v1/playcustomapp-api.json | 2 +- .../playintegrity/v1/playintegrity-api.json | 43 +- .../policyanalyzer/v1/policyanalyzer-api.json | 2 +- .../v1beta1/policyanalyzer-api.json | 2 +- .../v1/policysimulator-api.json | 230 +- .../v1beta1/policysimulator-api.json | 230 +- .../v1/policytroubleshooter-api.json | 40 +- .../v1beta/policytroubleshooter-api.json | 6 +- etc/api/privateca/v1/privateca-api.json | 42 +- etc/api/privateca/v1beta1/privateca-api.json | 37 +- .../v1alpha1/prod_tt_sasportal-api.json | 215 +- etc/api/pubsub/v1/pubsub-api.json | 307 +- etc/api/pubsub/v1beta1a/pubsub-api.json | 2 +- etc/api/pubsub/v1beta2/pubsub-api.json | 22 +- etc/api/pubsublite/v1/pubsublite-api.json | 71 +- .../v1/realtimebidding-api.json | 331 +- .../v1alpha/realtimebidding-api.json | 6 +- .../v1/recaptchaenterprise-api.json | 226 +- .../v1beta1/recommendationengine-api.json | 13 +- etc/api/recommender/v1/recommender-api.json | 708 +- .../recommender/v1beta1/recommender-api.json | 427 +- etc/api/redis/v1/redis-api.json | 52 +- etc/api/redis/v1beta1/redis-api.json | 63 +- etc/api/reseller/v1/reseller-api.json | 2 +- .../v1/resourcesettings-api.json | 2 +- etc/api/retail/v2/retail-api.json | 2484 ++- etc/api/retail/v2alpha/retail-api.json | 1804 ++- etc/api/retail/v2beta/retail-api.json | 1856 ++- etc/api/run/v1/run-api.json | 723 +- etc/api/run/v2/run-api.json | 1685 +- .../runtimeconfig/v1/runtimeconfig-api.json | 4 +- .../v1beta1/runtimeconfig-api.json | 22 +- etc/api/safebrowsing/v4/safebrowsing-api.json | 40 +- etc/api/sasportal/v1alpha1/sasportal-api.json | 215 +- etc/api/script/v1/script-api.json | 4 +- .../searchconsole/v1/searchconsole-api.json | 12 +- .../secretmanager/v1/secretmanager-api.json | 39 +- .../v1beta1/secretmanager-api.json | 20 +- .../securitycenter/v1/securitycenter-api.json | 1472 +- .../v1beta1/securitycenter-api.json | 1058 +- .../v1beta2/securitycenter-api.json | 1575 +- .../v1/serviceconsumermanagement-api.json | 346 +- .../serviceconsumermanagement-api.json | 340 +- .../servicecontrol/v1/servicecontrol-api.json | 120 +- .../servicecontrol/v2/servicecontrol-api.json | 97 +- .../v1/servicedirectory-api.json | 41 +- .../v1beta1/servicedirectory-api.json | 220 +- .../v1/servicemanagement-api.json | 390 +- .../v1/servicenetworking-api.json | 405 +- .../v1beta/servicenetworking-api.json | 373 +- etc/api/serviceusage/v1/serviceusage-api.json | 340 +- .../v1beta1/serviceusage-api.json | 340 +- etc/api/shared.yaml | 2 + etc/api/sheets/v4/sheets-api.json | 102 +- etc/api/slides/v1/slides-api.json | 30 +- .../v1/smartdevicemanagement-api.json | 26 +- etc/api/sourcerepo/v1/sourcerepo-api.json | 18 +- etc/api/spanner/v1/spanner-api.json | 816 +- etc/api/speech/v1/speech-api.json | 80 +- etc/api/speech/v1p1beta1/speech-api.json | 80 +- etc/api/sqladmin/v1/sqladmin-api.json | 252 +- etc/api/sqladmin/v1beta4/sqladmin-api.json | 252 +- etc/api/storage/v1/storage-api.json | 252 +- .../v1/storagetransfer-api.json | 199 +- .../v1/streetviewpublish-api.json | 526 +- etc/api/sts/v1/sts-api.json | 94 +- etc/api/sts/v1beta/sts-api.json | 6 +- etc/api/tagmanager/v1/tagmanager-api.json | 2 +- etc/api/tagmanager/v2/tagmanager-api.json | 673 +- etc/api/tasks/v1/tasks-api.json | 2 +- etc/api/testing/v1/testing-api.json | 91 +- etc/api/texttospeech/v1/texttospeech-api.json | 347 +- .../v1beta1/texttospeech-api.json | 249 +- .../toolresults/v1beta3/toolresults-api.json | 16 +- etc/api/tpu/v1/tpu-api.json | 6 +- etc/api/tpu/v1alpha1/tpu-api.json | 6 +- etc/api/tpu/v2alpha1/tpu-api.json | 490 +- .../v2/trafficdirector-api.json | 4 +- etc/api/transcoder/v1/transcoder-api.json | 121 +- etc/api/translate/v3/translate-api.json | 968 +- etc/api/translate/v3beta1/translate-api.json | 30 +- etc/api/vault/v1/vault-api.json | 64 +- .../verifiedaccess/v1/verifiedaccess-api.json | 4 +- .../versionhistory/v1/versionhistory-api.json | 15 +- .../v1/videointelligence-api.json | 4 +- .../v1beta2/videointelligence-api.json | 2 +- .../v1p1beta1/videointelligence-api.json | 2 +- .../v1p2beta1/videointelligence-api.json | 2 +- .../v1p3beta1/videointelligence-api.json | 2 +- etc/api/vision/v1/vision-api.json | 13 +- etc/api/vision/v1p1beta1/vision-api.json | 11 +- etc/api/vision/v1p2beta1/vision-api.json | 11 +- etc/api/vmmigration/v1/vmmigration-api.json | 684 +- .../vmmigration/v1alpha1/vmmigration-api.json | 681 +- .../walletobjects/v1/walletobjects-api.json | 717 +- etc/api/webfonts/v1/webfonts-api.json | 2 +- etc/api/webrisk/v1/webrisk-api.json | 54 +- .../v1/websecurityscanner-api.json | 10 +- .../v1alpha/websecurityscanner-api.json | 12 +- .../v1beta/websecurityscanner-api.json | 18 +- .../v1/workflowexecutions-api.json | 131 +- .../v1beta/workflowexecutions-api.json | 38 +- etc/api/workflows/v1/workflows-api.json | 30 +- etc/api/workflows/v1beta/workflows-api.json | 6 +- etc/api/youtube/v3/youtube-api.json | 211 +- .../v2/youtubeanalytics-api.json | 2 +- .../v1/youtubereporting-api.json | 4 +- 357 files changed, 128026 insertions(+), 16259 deletions(-) create mode 100644 etc/api/docs/v1/docs-api.json diff --git a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json index c9f6972e6f..d96e309b8a 100644 --- a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json +++ b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json @@ -139,7 +139,7 @@ } } }, - "revision": "20220303", + "revision": "20230114", "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 c7d1d885f0..40c7ced56f 100644 --- a/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json +++ b/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json @@ -115,7 +115,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "schemas": { "AmpUrl": { diff --git a/etc/api/accessapproval/v1/accessapproval-api.json b/etc/api/accessapproval/v1/accessapproval-api.json index e36432865f..8f144b375c 100644 --- a/etc/api/accessapproval/v1/accessapproval-api.json +++ b/etc/api/accessapproval/v1/accessapproval-api.json @@ -157,6 +157,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getServiceAccount": { + "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.", + "flatPath": "v1/folders/{foldersId}/serviceAccount", + "httpMethod": "GET", + "id": "accessapproval.folders.getServiceAccount", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the AccessApprovalServiceAccount to retrieve.", + "location": "path", + "pattern": "^folders/[^/]+/serviceAccount$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AccessApprovalServiceAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateAccessApprovalSettings": { "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.", "flatPath": "v1/folders/{foldersId}/accessApprovalSettings", @@ -276,6 +301,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "invalidate": { + "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This does not deny access to the resource if another request has been made and approved. It only invalidates a single approval. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.", + "flatPath": "v1/folders/{foldersId}/approvalRequests/{approvalRequestsId}:invalidate", + "httpMethod": "POST", + "id": "accessapproval.folders.approvalRequests.invalidate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the ApprovalRequest to invalidate.", + "location": "path", + "pattern": "^folders/[^/]+/approvalRequests/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:invalidate", + "request": { + "$ref": "InvalidateApprovalRequestMessage" + }, + "response": { + "$ref": "ApprovalRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.", "flatPath": "v1/folders/{foldersId}/approvalRequests", @@ -373,6 +426,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getServiceAccount": { + "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.", + "flatPath": "v1/organizations/{organizationsId}/serviceAccount", + "httpMethod": "GET", + "id": "accessapproval.organizations.getServiceAccount", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the AccessApprovalServiceAccount to retrieve.", + "location": "path", + "pattern": "^organizations/[^/]+/serviceAccount$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AccessApprovalServiceAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateAccessApprovalSettings": { "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.", "flatPath": "v1/organizations/{organizationsId}/accessApprovalSettings", @@ -492,6 +570,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "invalidate": { + "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This does not deny access to the resource if another request has been made and approved. It only invalidates a single approval. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.", + "flatPath": "v1/organizations/{organizationsId}/approvalRequests/{approvalRequestsId}:invalidate", + "httpMethod": "POST", + "id": "accessapproval.organizations.approvalRequests.invalidate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the ApprovalRequest to invalidate.", + "location": "path", + "pattern": "^organizations/[^/]+/approvalRequests/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:invalidate", + "request": { + "$ref": "InvalidateApprovalRequestMessage" + }, + "response": { + "$ref": "ApprovalRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.", "flatPath": "v1/organizations/{organizationsId}/approvalRequests", @@ -589,6 +695,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getServiceAccount": { + "description": "Retrieves the service account that is used by Access Approval to access KMS keys for signing approved approval requests.", + "flatPath": "v1/projects/{projectsId}/serviceAccount", + "httpMethod": "GET", + "id": "accessapproval.projects.getServiceAccount", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the AccessApprovalServiceAccount to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/serviceAccount$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AccessApprovalServiceAccount" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateAccessApprovalSettings": { "description": "Updates the settings associated with a project, folder, or organization. Settings to update are determined by the value of field_mask.", "flatPath": "v1/projects/{projectsId}/accessApprovalSettings", @@ -708,6 +839,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "invalidate": { + "description": "Invalidates an existing ApprovalRequest. Returns the updated ApprovalRequest. NOTE: This does not deny access to the resource if another request has been made and approved. It only invalidates a single approval. Returns FAILED_PRECONDITION if the request exists but is not in an approved state.", + "flatPath": "v1/projects/{projectsId}/approvalRequests/{approvalRequestsId}:invalidate", + "httpMethod": "POST", + "id": "accessapproval.projects.approvalRequests.invalidate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the ApprovalRequest to invalidate.", + "location": "path", + "pattern": "^projects/[^/]+/approvalRequests/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:invalidate", + "request": { + "$ref": "InvalidateApprovalRequestMessage" + }, + "response": { + "$ref": "ApprovalRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists approval requests associated with a project, folder, or organization. Approval requests can be filtered by state (pending, active, dismissed). The order is reverse chronological.", "flatPath": "v1/projects/{projectsId}/approvalRequests", @@ -754,13 +913,37 @@ } } }, - "revision": "20220225", + "revision": "20230120", "rootUrl": "https://accessapproval.googleapis.com/", "schemas": { + "AccessApprovalServiceAccount": { + "description": "Access Approval service account related to a project/folder/organization.", + "id": "AccessApprovalServiceAccount", + "properties": { + "accountEmail": { + "description": "Email address of the service account.", + "type": "string" + }, + "name": { + "description": "The resource name of the Access Approval service account. Format is one of: * \"projects/{project}/serviceAccount\" * \"folders/{folder}/serviceAccount\" * \"organizations/{organization}/serviceAccount\"", + "type": "string" + } + }, + "type": "object" + }, "AccessApprovalSettings": { "description": "Settings on a Project/Folder/Organization related to Access Approval.", "id": "AccessApprovalSettings", "properties": { + "activeKeyVersion": { + "description": "The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of this resource, and new non-empty values may not be set.", + "type": "string" + }, + "ancestorHasActiveKeyVersion": { + "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that an ancestor of this Project or Folder has set active_key_version (this field will always be unset for the organization since organizations do not have ancestors).", + "readOnly": true, + "type": "boolean" + }, "enrolledAncestor": { "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors of the Project or Folder (this field will always be unset for the organization since organizations do not have ancestors).", "readOnly": true, @@ -773,6 +956,11 @@ }, "type": "array" }, + "invalidKeyVersion": { + "description": "Output only. This field is read only (not settable via UpdateAccessApprovalSettings method). If the field is true, that indicates that there is some configuration issue with the active_key_version configured at this level in the resource hierarchy (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.", + "readOnly": true, + "type": "boolean" + }, "name": { "description": "The resource name of the settings. Format is one of: * \"projects/{project}/accessApprovalSettings\" * \"folders/{folder}/accessApprovalSettings\" * \"organizations/{organization}/accessApprovalSettings\"", "type": "string" @@ -815,13 +1003,17 @@ "TYPE_UNSPECIFIED", "CUSTOMER_INITIATED_SUPPORT", "GOOGLE_INITIATED_SERVICE", - "GOOGLE_INITIATED_REVIEW" + "GOOGLE_INITIATED_REVIEW", + "THIRD_PARTY_DATA_REQUEST", + "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT" ], "enumDescriptions": [ "Default value for proto, shouldn't be used.", "Customer made a request or raised an issue that required the principal to access customer data. `detail` is of the form (\"#####\" is the issue ID): * \"Feedback Report: #####\" * \"Case Number: #####\" * \"Case ID: #####\" * \"E-PIN Reference: #####\" * \"Google-#####\" * \"T-#####\"", - "The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage. Often this access is used to confirm that customers are not affected by a suspected service issue or to remediate a reversible system issue.", - "Google initiated service for security, fraud, abuse, or compliance purposes." + "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." ], "type": "string" } @@ -894,10 +1086,23 @@ "format": "google-datetime", "type": "string" }, + "autoApproved": { + "description": "True when the request has been auto-approved.", + "type": "boolean" + }, "expireTime": { "description": "The time at which the approval expires.", "format": "google-datetime", "type": "string" + }, + "invalidateTime": { + "description": "If set, denotes the timestamp at which the approval is invalidated.", + "format": "google-datetime", + "type": "string" + }, + "signatureInfo": { + "$ref": "SignatureInfo", + "description": "The signature for the ApprovalRequest and details on how it was signed." } }, "type": "object" @@ -925,7 +1130,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -935,7 +1140,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 * BigQuery * Cloud Bigtable * Cloud Key Management Service * Compute Engine * Cloud Dataflow * 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 * Speaker ID Note: These values are supported as input for legacy purposes, but will not be returned from the API. * all * ga-only * appengine.googleapis.com * bigquery.googleapis.com * bigtable.googleapis.com * container.googleapis.com * cloudkms.googleapis.com * cloudresourcemanager.googleapis.com * cloudsql.googleapis.com * compute.googleapis.com * dataflow.googleapis.com * dlp.googleapis.com * iam.googleapis.com * logging.googleapis.com * orgpolicy.googleapis.com * pubsub.googleapis.com * spanner.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 * 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", "type": "string" }, "enrollmentLevel": { @@ -953,6 +1158,12 @@ }, "type": "object" }, + "InvalidateApprovalRequestMessage": { + "description": "Request to invalidate an existing approval.", + "id": "InvalidateApprovalRequestMessage", + "properties": {}, + "type": "object" + }, "ListApprovalRequestsResponse": { "description": "Response to listing of ApprovalRequest objects.", "id": "ListApprovalRequestsResponse", @@ -981,6 +1192,26 @@ } }, "type": "object" + }, + "SignatureInfo": { + "description": "Information about the digital signature of the resource.", + "id": "SignatureInfo", + "properties": { + "customerKmsKeyVersion": { + "description": "The resource name of the customer CryptoKeyVersion used for signing.", + "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" + }, + "signature": { + "description": "The digital signature.", + "format": "byte", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json index b3f2af196c..db268e65e2 100644 --- a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json +++ b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json @@ -185,7 +185,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^accessPolicies/[^/]+$", "required": true, @@ -279,7 +279,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^accessPolicies/[^/]+$", "required": true, @@ -307,7 +307,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^accessPolicies/[^/]+$", "required": true, @@ -483,7 +483,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "location": "path", "pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", "required": true, @@ -545,7 +545,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^accessPolicies/[^/]+/accessLevels/[^/]+$", "required": true, @@ -565,6 +565,158 @@ } } }, + "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.", + "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs", + "httpMethod": "POST", + "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name for the access policy which owns this Authorized Orgs Desc. Format: `accessPolicies/{policy_id}`", + "location": "path", + "pattern": "^accessPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/authorizedOrgsDescs", + "request": { + "$ref": "AuthorizedOrgsDesc" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", + "httpMethod": "DELETE", + "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name for the Authorized Orgs Desc. Format: `accessPolicies/{policy_id}/authorizedOrgsDesc/{authorized_orgs_desc_id}`", + "location": "path", + "pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a authorized orgs desc based on the resource name.", + "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", + "httpMethod": "GET", + "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name for the Authorized Orgs Desc. Format: `accessPolicies/{policy_id}/authorizedOrgsDescs/{authorized_orgs_descs_id}`", + "location": "path", + "pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "AuthorizedOrgsDesc" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all authorized orgs descs for an access policy.", + "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs", + "httpMethod": "GET", + "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Number of Authorized Orgs Descs to include in the list. Default 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Next page token for the next batch of Authorized Orgs Desc instances. Defaults to the first page of results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name for the access policy to list Authorized Orgs Desc from. Format: `accessPolicies/{policy_id}`", + "location": "path", + "pattern": "^accessPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/authorizedOrgsDescs", + "response": { + "$ref": "ListAuthorizedOrgsDescsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v1/accessPolicies/{accessPoliciesId}/authorizedOrgsDescs/{authorizedOrgsDescsId}", + "httpMethod": "PATCH", + "id": "accesscontextmanager.accessPolicies.authorizedOrgsDescs.patch", + "parameterOrder": [ + "name" + ], + "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\"", + "location": "path", + "pattern": "^accessPolicies/[^/]+/authorizedOrgsDescs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask to control which fields get updated. Must be non-empty.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "AuthorizedOrgsDesc" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "servicePerimeters": { "methods": { "commit": { @@ -719,7 +871,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "location": "path", "pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", "required": true, @@ -781,7 +933,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", "required": true, @@ -1083,7 +1235,7 @@ } } }, - "revision": "20220301", + "revision": "20230123", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessContextManagerOperationMetadata": { @@ -1109,7 +1261,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -1168,7 +1320,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1215,6 +1367,64 @@ }, "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.", + "id": "AuthorizedOrgsDesc", + "properties": { + "assetType": { + "description": "The asset type of this authorized orgs desc. e.g. device, credential strength.", + "enum": [ + "ASSET_TYPE_UNSPECIFIED", + "ASSET_TYPE_DEVICE", + "ASSET_TYPE_CREDENTIAL_STRENGTH" + ], + "enumDescriptions": [ + "No asset type specified.", + "Device 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.", + "enum": [ + "AUTHORIZATION_DIRECTION_UNSPECIFIED", + "AUTHORIZATION_DIRECTION_TO", + "AUTHORIZATION_DIRECTION_FROM" + ], + "enumDescriptions": [ + "No direction specified.", + "Specified orgs will evaluate traffic.", + "Specified orgs' traffic will be evaluated." + ], + "type": "string" + }, + "authorizationType": { + "description": "The authorization type of this authorized orgs desc. e.g.authorization, troubleshooting or logging.", + "enum": [ + "AUTHORIZATION_TYPE_UNSPECIFIED", + "AUTHORIZATION_TYPE_TRUST" + ], + "enumDescriptions": [ + "No authorization type specified.", + "This authorization relationship is \"trust\"." + ], + "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\"", + "type": "string" + }, + "orgs": { + "description": "The list of organization ids in this AuthorizedOrgsDesc.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "BasicLevel": { "description": "`BasicLevel` is an `AccessLevel` using a set of recommended features.", "id": "BasicLevel", @@ -1250,7 +1460,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1461,6 +1671,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -1479,7 +1696,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1619,7 +1836,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -1682,6 +1899,24 @@ }, "type": "object" }, + "ListAuthorizedOrgsDescsResponse": { + "description": "A response to `ListAuthorizedOrgsDescsRequest`.", + "id": "ListAuthorizedOrgsDescsResponse", + "properties": { + "authorizedOrgsDescs": { + "description": "List of the Authorized Orgs Desc instances.", + "items": { + "$ref": "AuthorizedOrgsDesc" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", + "type": "string" + } + }, + "type": "object" + }, "ListGcpUserAccessBindingsResponse": { "description": "Response of ListGcpUserAccessBindings.", "id": "ListGcpUserAccessBindingsResponse", @@ -1927,7 +2162,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -1937,7 +2172,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -1987,7 +2222,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, @@ -2013,7 +2248,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2055,7 +2290,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/accesscontextmanager/v1beta/accesscontextmanager-api.json b/etc/api/accesscontextmanager/v1beta/accesscontextmanager-api.json index 6073f64f87..6f2a3807e8 100644 --- a/etc/api/accesscontextmanager/v1beta/accesscontextmanager-api.json +++ b/etc/api/accesscontextmanager/v1beta/accesscontextmanager-api.json @@ -399,7 +399,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{policy_id}/accessLevels/{short_name}`. The maximum length // of the `short_name` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "location": "path", "pattern": "^accessPolicies/[^/]+/accessLevels/[^/]+$", "required": true, @@ -551,7 +551,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "location": "path", "pattern": "^accessPolicies/[^/]+/servicePerimeters/[^/]+$", "required": true, @@ -609,7 +609,7 @@ } } }, - "revision": "20220301", + "revision": "20230123", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessContextManagerOperationMetadata": { @@ -635,7 +635,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{policy_id}/accessLevels/{short_name}`. The maximum length // of the `short_name` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -966,7 +966,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{policy_id}/servicePerimeters/{short_name}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -976,7 +976,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" diff --git a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json index 2cf9b3369f..6deb037cfb 100644 --- a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json +++ b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json @@ -595,7 +595,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available via another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", + "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available through another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", "format": "int32", "location": "query", "type": "integer" @@ -902,7 +902,7 @@ ] }, "pause": { - "description": "Update given deals to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.pause endpoint. It is a no-op to pause already-paused deals. It is an error to call PauseProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.", + "description": "Update given deals to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, call accounts.proposals.pause endpoint. It is a no-op to pause already-paused deals. It is an error to call PauseProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.", "flatPath": "v2beta1/accounts/{accountId}/finalizedProposals/{proposalId}:pause", "httpMethod": "POST", "id": "adexchangebuyer2.accounts.finalizedProposals.pause", @@ -936,7 +936,7 @@ ] }, "resume": { - "description": "Update given deals to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.resume endpoint. It is a no-op to resume running deals or deals paused by the other party. It is an error to call ResumeProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.", + "description": "Update given deals to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, call accounts.proposals.resume endpoint. It is a no-op to resume running deals or deals paused by the other party. It is an error to call ResumeProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.", "flatPath": "v2beta1/accounts/{accountId}/finalizedProposals/{proposalId}:resume", "httpMethod": "POST", "id": "adexchangebuyer2.accounts.finalizedProposals.resume", @@ -1151,7 +1151,7 @@ ] }, "completeSetup": { - "description": "Update the given proposal to indicate that setup has been completed. This method is called by the buyer when the line items have been created on their end for a finalized proposal and all the required creatives have been uploaded using the creatives API. This call updates the `is_setup_completed` bit on the proposal and also notifies the seller. The server will advance the revision number of the most recent proposal.", + "description": "You can opt-in to manually update proposals to indicate that setup is complete. By default, proposal setup is automatically completed after their deals are finalized. Contact your Technical Account Manager to opt in. Buyers can call this method when the proposal has been finalized, and all the required creatives have been uploaded using the Creatives API. This call updates the `is_setup_completed` field on the deals in the proposal, and notifies the seller. The server then advances the revision number of the most recent proposal. To mark an individual deal as ready to serve, call `buyers.finalizedDeals.setReadyToServe` in the Marketplace API.", "flatPath": "v2beta1/accounts/{accountId}/proposals/{proposalId}:completeSetup", "httpMethod": "POST", "id": "adexchangebuyer2.accounts.proposals.completeSetup", @@ -2568,7 +2568,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://adexchangebuyer.googleapis.com/", "schemas": { "AbsoluteDateRange": { @@ -2621,7 +2621,7 @@ "Ad slot with size specified by height and width in pixels.", "Special size to describe an interstitial ad slot.", "Native (mobile) ads rendered by the publisher.", - "Fluid size (i.e., responsive size) can be resized automatically with the change of outside environment." + "Fluid size (for example, responsive size) can be resized automatically with the change of outside environment." ], "type": "string" }, @@ -2907,7 +2907,7 @@ "type": "object" }, "ClientUser": { - "description": "A client user is created under a client buyer and has restricted access to the Marketplace and certain other sections of the Authorized Buyers UI based on the role granted to the associated client buyer. The only way a new client user can be created is via accepting an email invitation (see the accounts.clients.invitations.create method). All fields are required unless otherwise specified.", + "description": "A client user is created under a client buyer and has restricted access to the Marketplace and certain other sections of the Authorized Buyers UI based on the role granted to the associated client buyer. The only way a new client user can be created is through accepting an email invitation (see the accounts.clients.invitations.create method). All fields are required unless otherwise specified.", "id": "ClientUser", "properties": { "clientAccountId": { @@ -3064,7 +3064,7 @@ "type": "string" }, "apiUpdateTime": { - "description": "Output only. The last update timestamp of the creative via API.", + "description": "Output only. The last update timestamp of the creative through the API.", "format": "google-datetime", "type": "string" }, @@ -3293,7 +3293,7 @@ "type": "array" }, "servingRestrictions": { - "description": "Output only. The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction).", + "description": "Output only. The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS versus HTTP request, or the type of auction).", "items": { "$ref": "ServingRestriction" }, @@ -3626,7 +3626,7 @@ "type": "string" }, "availableStartTime": { - "description": "Optional. Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (e.g., in milliseconds) will be truncated towards the start of time in seconds.", + "description": "Optional. Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (for example, in milliseconds) will be truncated towards the start of time in seconds.", "format": "google-datetime", "type": "string" }, @@ -3666,7 +3666,7 @@ }, "creativeRestrictions": { "$ref": "CreativeRestrictions", - "description": "Output only. Restricitions about the creatives associated with the deal (i.e., size) This is available for Programmatic Guaranteed/Preferred Deals in Ad Manager.", + "description": "Output only. Restricitions about the creatives associated with the deal (for example, size) This is available for Programmatic Guaranteed/Preferred Deals in Ad Manager.", "readOnly": true }, "creativeSafeFrameCompatibility": { @@ -3841,7 +3841,7 @@ "type": "object" }, "DealTerms": { - "description": "The deal terms specify the details of a Product/deal. They specify things like price per buyer, the type of pricing model (e.g., fixed price, auction) and expected impressions from the publisher.", + "description": "The deal terms specify the details of a Product/deal. They specify things like price per buyer, the type of pricing model (for example, fixed price, auction) and expected impressions from the publisher.", "id": "DealTerms", "properties": { "brandingType": { @@ -4164,13 +4164,13 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, "FilterSet": { - "description": "A set of filters that is applied to a request for data. Within a filter set, an AND operation is performed across the filters represented by each field. An OR operation is performed across the filters represented by the multiple values of a repeated field, e.g., \"format=VIDEO AND deal_id=12 AND (seller_network_id=34 OR seller_network_id=56)\".", + "description": "A set of filters that is applied to a request for data. Within a filter set, an AND operation is performed across the filters represented by each field. An OR operation is performed across the filters represented by the multiple values of a repeated field, for example, \"format=VIDEO AND deal_id=12 AND (seller_network_id=34 OR seller_network_id=56)\".", "id": "FilterSet", "properties": { "absoluteDateRange": { @@ -4193,11 +4193,11 @@ "type": "array" }, "creativeId": { - "description": "The ID of the creative on which to filter; optional. This field may be set only for a filter set that accesses account-level troubleshooting data, i.e., one whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.", + "description": "The ID of the creative on which to filter; optional. This field may be set only for a filter set that accesses account-level troubleshooting data, for example, one whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.", "type": "string" }, "dealId": { - "description": "The ID of the deal on which to filter; optional. This field may be set only for a filter set that accesses account-level troubleshooting data, i.e., one whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.", + "description": "The ID of the deal on which to filter; optional. This field may be set only for a filter set that accesses account-level troubleshooting data, for example, one whose name matches the `bidders/*/accounts/*/filterSets/*` pattern.", "format": "int64", "type": "string" }, @@ -4226,9 +4226,9 @@ ], "enumDescriptions": [ "A placeholder for an undefined format; indicates that no format filter will be applied.", - "The ad impression is a native ad, and display (i.e., image) format.", + "The ad impression is a native ad, and display (for example, image) format.", "The ad impression is a native ad, and video format.", - "The ad impression is not a native ad, and display (i.e., image) format.", + "The ad impression is not a native ad, and display (for example, image) format.", "The ad impression is not a native ad, and video format." ], "type": "string" @@ -4245,9 +4245,9 @@ ], "enumDescriptions": [ "A placeholder for an undefined format; indicates that no format filter will be applied.", - "The ad impression is a native ad, and display (i.e., image) format.", + "The ad impression is a native ad, and display (for example, image) format.", "The ad impression is a native ad, and video format.", - "The ad impression is not a native ad, and display (i.e., image) format.", + "The ad impression is not a native ad, and display (for example, image) format.", "The ad impression is not a native ad, and video format." ], "type": "string" @@ -4259,7 +4259,7 @@ "type": "string" }, "platforms": { - "description": "The list of platforms on which to filter; may be empty. The filters represented by multiple platforms are ORed together (i.e., if non-empty, results must match any one of the platforms).", + "description": "The list of platforms on which to filter; may be empty. The filters represented by multiple platforms are ORed together (for example, if non-empty, results must match any one of the platforms).", "items": { "enum": [ "PLATFORM_UNSPECIFIED", @@ -4293,7 +4293,7 @@ "description": "A relative date range, defined by an offset from today and a duration. Interpreted relative to Pacific time zone." }, "sellerNetworkIds": { - "description": "For Authorized Buyers only. The list of IDs of the seller (publisher) networks on which to filter; may be empty. The filters represented by multiple seller network IDs are ORed together (i.e., if non-empty, results must match any one of the publisher networks). See [seller-network-ids](https://developers.google.com/authorized-buyers/rtb/downloads/seller-network-ids) file for the set of existing seller network IDs.", + "description": "For Authorized Buyers only. The list of IDs of the seller (publisher) networks on which to filter; may be empty. The filters represented by multiple seller network IDs are ORed together (for example, if non-empty, results must match any one of the publisher networks). See [seller-network-ids](https://developers.google.com/authorized-buyers/rtb/downloads/seller-network-ids) file for the set of existing seller network IDs.", "items": { "format": "int32", "type": "integer" @@ -4301,7 +4301,7 @@ "type": "array" }, "timeSeriesGranularity": { - "description": "The granularity of time intervals if a time series breakdown is desired; optional.", + "description": "The granularity of time intervals if a time series breakdown is preferred; optional.", "enum": [ "TIME_SERIES_GRANULARITY_UNSPECIFIED", "HOURLY", @@ -4337,7 +4337,7 @@ "type": "object" }, "FilteredBidDetailRow": { - "description": "The number of filtered bids with the specified dimension values, among those filtered due to the requested filtering reason (i.e. creative status), that have the specified detail.", + "description": "The number of filtered bids with the specified dimension values, among those filtered due to the requested filtering reason (for example, creative status), that have the specified detail.", "id": "FilteredBidDetailRow", "properties": { "bidCount": { @@ -4817,7 +4817,7 @@ "id": "ListFilteredBidsResponse", "properties": { "creativeStatusRows": { - "description": "List of rows, with counts of filtered bids aggregated by filtering reason (i.e. creative status).", + "description": "List of rows, with counts of filtered bids aggregated by filtering reason (for example, creative status).", "items": { "$ref": "CreativeStatusRow" }, @@ -4853,7 +4853,7 @@ "id": "ListLosingBidsResponse", "properties": { "creativeStatusRows": { - "description": "List of rows, with counts of losing bids aggregated by loss reason (i.e. creative status).", + "description": "List of rows, with counts of losing bids aggregated by loss reason (for example, creative status).", "items": { "$ref": "CreativeStatusRow" }, @@ -4943,7 +4943,7 @@ "id": "LocationContext", "properties": { "geoCriteriaIds": { - "description": "IDs representing the geo location for this context. Please refer to the [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv) file for different geo criteria IDs.", + "description": "IDs representing the geo location for this context. Refer to the [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv) file for different geo criteria IDs.", "items": { "format": "int32", "type": "integer" @@ -4967,11 +4967,11 @@ }, "placementTargeting": { "$ref": "PlacementTargeting", - "description": "Placement targeting information, e.g., URL, mobile applications." + "description": "Placement targeting information, for example, URL, mobile applications." }, "technologyTargeting": { "$ref": "TechnologyTargeting", - "description": "Technology targeting information, e.g., operating system, device category." + "description": "Technology targeting information, for example, operating system, device category." }, "videoTargeting": { "$ref": "VideoTargeting", @@ -4981,7 +4981,7 @@ "type": "object" }, "MetricValue": { - "description": "A metric value, with an expected value and a variance; represents a count that may be either exact or estimated (i.e. when sampled).", + "description": "A metric value, with an expected value and a variance; represents a count that may be either exact or estimated (for example, when sampled).", "id": "MetricValue", "properties": { "value": { @@ -4990,7 +4990,7 @@ "type": "string" }, "variance": { - "description": "The variance (i.e. square of the standard deviation) of the metric value. If value is exact, variance is 0. Can be used to calculate margin of error as a percentage of value, using the following formula, where Z is the standard constant that depends on the desired size of the confidence interval (e.g. for 90% confidence interval, use Z = 1.645): marginOfError = 100 * Z * sqrt(variance) / value", + "description": "The variance (for example, square of the standard deviation) of the metric value. If value is exact, variance is 0. Can be used to calculate margin of error as a percentage of value, using the following formula, where Z is the standard constant that depends on the preferred size of the confidence interval (for example, for 90% confidence interval, use Z = 1.645): marginOfError = 100 * Z * sqrt(variance) / value", "format": "int64", "type": "string" } @@ -5242,7 +5242,7 @@ "type": "object" }, "PlacementTargeting": { - "description": "Represents targeting about where the ads can appear, e.g., certain sites or mobile applications. Different placement targeting types will be logically OR'ed.", + "description": "Represents targeting about where the ads can appear, for example, certain sites or mobile applications. Different placement targeting types will be logically OR'ed.", "id": "PlacementTargeting", "properties": { "mobileApplicationTargeting": { @@ -5339,7 +5339,7 @@ "type": "object" }, "Product": { - "description": "A product is a segment of inventory that a seller wishes to sell. It is associated with certain terms and targeting information which helps the buyer know more about the inventory.", + "description": "A product is a segment of inventory that a seller wants to sell. It is associated with certain terms and targeting information which helps the buyer know more about the inventory.", "id": "Product", "properties": { "availableEndTime": { @@ -5722,16 +5722,16 @@ "type": "object" }, "RelativeDateRange": { - "description": "A relative date range, specified by an offset and a duration. The supported range of dates begins 30 days before today and ends today, i.e., the limits for these values are: offset_days >= 0 duration_days >= 1 offset_days + duration_days <= 30", + "description": "A relative date range, specified by an offset and a duration. The supported range of dates begins 30 days before today and ends today, for example, the limits for these values are: offset_days >= 0 duration_days >= 1 offset_days + duration_days <= 30", "id": "RelativeDateRange", "properties": { "durationDays": { - "description": "The number of days in the requested date range, e.g., for a range spanning today: 1. For a range spanning the last 7 days: 7.", + "description": "The number of days in the requested date range, for example, for a range spanning today: 1. For a range spanning the last 7 days: 7.", "format": "int32", "type": "integer" }, "offsetDays": { - "description": "The end date of the filter set, specified as the number of days before today, e.g., for a range where the last date is today: 0.", + "description": "The end date of the filter set, specified as the number of days before today, for example, for a range where the last date is today: 0.", "format": "int32", "type": "integer" } @@ -5860,7 +5860,7 @@ "type": "object" }, "ServingRestriction": { - "description": "Output only. A representation of the status of an ad in a specific context. A context here relates to where something ultimately serves (for example, a user or publisher geo, a platform, an HTTPS vs HTTP request, or the type of auction).", + "description": "Output only. A representation of the status of an ad in a specific context. A context here relates to where something ultimately serves (for example, a user or publisher geo, a platform, an HTTPS versus HTTP request, or the type of auction).", "id": "ServingRestriction", "properties": { "contexts": { @@ -5875,7 +5875,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": { - "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; please use disapproval field instead.", + "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" }, @@ -6034,7 +6034,7 @@ "type": "object" }, "UrlTargeting": { - "description": "Represents a list of targeted and excluded URLs (e.g., google.com). For Private Auction and AdX Preferred Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.", + "description": "Represents a list of targeted and excluded URLs (for example, google.com). For Private Auction and AdX Preferred Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.", "id": "UrlTargeting", "properties": { "excludedUrls": { diff --git a/etc/api/adexperiencereport/v1/adexperiencereport-api.json b/etc/api/adexperiencereport/v1/adexperiencereport-api.json index 9ed130a52a..dc89aaf1b2 100644 --- a/etc/api/adexperiencereport/v1/adexperiencereport-api.json +++ b/etc/api/adexperiencereport/v1/adexperiencereport-api.json @@ -138,7 +138,7 @@ } } }, - "revision": "20220303", + "revision": "20230114", "rootUrl": "https://adexperiencereport.googleapis.com/", "schemas": { "PlatformSummary": { diff --git a/etc/api/admin/datatransfer_v1/admin-api.json b/etc/api/admin/datatransfer_v1/admin-api.json index d0208a3363..f129daf091 100644 --- a/etc/api/admin/datatransfer_v1/admin-api.json +++ b/etc/api/admin/datatransfer_v1/admin-api.json @@ -202,7 +202,7 @@ ] }, "insert": { - "description": "Inserts a data transfer request.", + "description": "Inserts a data transfer request. See the [Transfer parameters](/admin-sdk/data-transfer/v1/parameters) reference for specific application requirements.", "flatPath": "admin/datatransfer/v1/transfers", "httpMethod": "POST", "id": "datatransfer.transfers.insert", @@ -272,11 +272,11 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Application": { - "description": "Applications resources represent applications installed on the domain that support transferring ownership of user data.", + "description": "Application resources represent applications installed on the domain that support transferring ownership of user data.", "id": "Application", "properties": { "etag": { @@ -284,7 +284,7 @@ "type": "string" }, "id": { - "description": "The application's ID.", + "description": "The application's ID. Retrievable by using the [`applications.list()`](/admin-sdk/data-transfer/reference/rest/v1/applications/list) method.", "format": "int64", "type": "string" }, @@ -298,7 +298,7 @@ "type": "string" }, "transferParams": { - "description": "The list of all possible transfer parameters for this application. These parameters can be used to select the data of the user in this application to be transferred.", + "description": "The list of all possible transfer parameters for this application. These parameters select which categories of the user's data to transfer.", "items": { "$ref": "ApplicationTransferParam" }, @@ -317,14 +317,14 @@ "type": "string" }, "applicationTransferParams": { - "description": "The transfer parameters for the application. These parameters are used to select the data which will get transferred in context of this application.", + "description": "The transfer parameters for the application. These parameters are used to select the data which will get transferred in context of this application. For more information about the specific values available for each application, see the [Transfer parameters](/admin-sdk/data-transfer/v1/parameters) reference.", "items": { "$ref": "ApplicationTransferParam" }, "type": "array" }, "applicationTransferStatus": { - "description": "Current status of transfer for this application. (Read-only)", + "description": "Read-only. Current status of transfer for this application.", "type": "string" } }, @@ -335,11 +335,11 @@ "id": "ApplicationTransferParam", "properties": { "key": { - "description": "The type of the transfer parameter. eg: 'PRIVACY_LEVEL'", + "description": "The type of the transfer parameter, such as `PRIVACY_LEVEL`.", "type": "string" }, "value": { - "description": "The value of the corresponding transfer parameter. eg: 'PRIVATE' or 'SHARED'", + "description": "The value of the transfer parameter, such as `PRIVATE` or `SHARED`.", "items": { "type": "string" }, @@ -353,7 +353,7 @@ "id": "ApplicationsListResponse", "properties": { "applications": { - "description": "List of applications that support data transfer and are also installed for the customer.", + "description": "The list of applications that support data transfer and are also installed for the customer.", "items": { "$ref": "Application" }, @@ -369,7 +369,7 @@ "type": "string" }, "nextPageToken": { - "description": "Continuation token which will be used to specify next page in list API.", + "description": "Token to specify the next page in the list.", "type": "string" } }, @@ -380,7 +380,7 @@ "id": "DataTransfer", "properties": { "applicationDataTransfers": { - "description": "List of per application data transfer resources. It contains data transfer details of the applications associated with this transfer resource. Note that this list is also used to specify the applications for which data transfer has to be done at the time of the transfer resource creation.", + "description": "The list of per-application data transfer resources. It contains details of the applications associated with this transfer resource, and also specifies the applications for which data transfer has to be done at the time of the transfer resource creation.", "items": { "$ref": "ApplicationDataTransfer" }, @@ -391,7 +391,7 @@ "type": "string" }, "id": { - "description": "The transfer's ID (Read-only).", + "description": "Read-only. The transfer's ID.", "type": "string" }, "kind": { @@ -408,11 +408,11 @@ "type": "string" }, "overallTransferStatusCode": { - "description": "Overall transfer status (Read-only).", + "description": "Read-only. Overall transfer status.", "type": "string" }, "requestTime": { - "description": "The time at which the data transfer was requested (Read-only).", + "description": "Read-only. The time at which the data transfer was requested.", "format": "date-time", "type": "string" } @@ -440,7 +440,7 @@ "type": "string" }, "nextPageToken": { - "description": "Continuation token which will be used to specify next page in list API.", + "description": "Token to specify the next page in the list.", "type": "string" } }, diff --git a/etc/api/admin/directory_v1/admin-api.json b/etc/api/admin/directory_v1/admin-api.json index 0b6d14faa8..e343fdb34f 100644 --- a/etc/api/admin/directory_v1/admin-api.json +++ b/etc/api/admin/directory_v1/admin-api.json @@ -396,7 +396,7 @@ "type": "string" }, "includeChildOrgunits": { - "description": "Return devices from all child orgunits, as well as the specified org unit. If this is set to true 'orgUnitPath' must be provided.", + "description": "Return devices from all child orgunits, as well as the specified org unit. If this is set to true, 'orgUnitPath' must be provided.", "location": "query", "type": "boolean" }, @@ -416,8 +416,7 @@ "lastSync", "notes", "serialNumber", - "status", - "supportEndDate" + "status" ], "enumDescriptions": [ "Chrome device location as annotated by the administrator.", @@ -425,8 +424,7 @@ "The date and time the Chrome device was last synchronized with the policy settings in the Admin console.", "Chrome device notes as annotated by the administrator.", "The Chrome device serial number entered when the device was enabled.", - "Chrome device status. For more information, see the operator is URL-encoded in the request's query string (%3C%3E): GET...&eventName=CHANGE_CALENDAR_SETTING &filters=NEW_VALUE%3C%3EREAD_ONLY_ACCESS In the following Drive example, the list can be a view or edit event's `doc_id` parameter with a value that is manipulated by an 'equal to' (==) or 'not equal to' (<>) relational operator. In the first example, the report returns each edited document's `doc_id`. In the second example, the report returns each viewed document's `doc_id` that equals the value 12345 and does not return any viewed document's which have a `doc_id` value of 98765. The <> operator is URL-encoded in the request's query string (%3C%3E): GET...&eventName=edit&filters=doc_id GET...&eventName=view&filters=doc_id==12345,doc_id%3C%3E98765 The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. If no parameters are requested, all parameters are returned. ", + "description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", "location": "query", "pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", "type": "string" @@ -336,7 +336,7 @@ "type": "string" }, "filters": { - "description": "The `filters` query string is a comma-separated list. The list is composed of event parameters that are manipulated by relational operators. Event parameters are in the form `parameter1 name[parameter1 value],parameter2 name[parameter2 value],...` These event parameters are associated with a specific `eventName`. An empty report is returned if the filtered request's parameter does not belong to the `eventName`. For more information about `eventName` parameters, see the list of event names for various applications above in `applicationName`. In the following Admin Activity example, the <> operator is URL-encoded in the request's query string (%3C%3E): GET...&eventName=CHANGE_CALENDAR_SETTING &filters=NEW_VALUE%3C%3EREAD_ONLY_ACCESS In the following Drive example, the list can be a view or edit event's `doc_id` parameter with a value that is manipulated by an 'equal to' (==) or 'not equal to' (<>) relational operator. In the first example, the report returns each edited document's `doc_id`. In the second example, the report returns each viewed document's `doc_id` that equals the value 12345 and does not return any viewed document's which have a `doc_id` value of 98765. The <> operator is URL-encoded in the request's query string (%3C%3E): GET...&eventName=edit&filters=doc_id GET...&eventName=view&filters=doc_id==12345,doc_id%3C%3E98765 The relational operators include: - `==` - 'equal to'. - `<>` - 'not equal to'. It is URL-encoded (%3C%3E). - `<` - 'less than'. It is URL-encoded (%3C). - `<=` - 'less than or equal to'. It is URL-encoded (%3C=). - `>` - 'greater than'. It is URL-encoded (%3E). - `>=` - 'greater than or equal to'. It is URL-encoded (%3E=). *Note:* The API doesn't accept multiple values of a parameter. If a particular parameter is supplied more than once in the API request, the API only accepts the last value of that request parameter. In addition, if an invalid request parameter is supplied in the API request, the API ignores that request parameter and returns the response corresponding to the remaining valid request parameters. If no parameters are requested, all parameters are returned. ", + "description": "The `filters` query string is a comma-separated list composed of event parameters manipulated by relational operators. Event parameters are in the form `{parameter1 name}{relational operator}{parameter1 value},{parameter2 name}{relational operator}{parameter2 value},...` These event parameters are associated with a specific `eventName`. An empty report is returned if the request's parameter doesn't belong to the `eventName`. For more information about the available `eventName` fields for each application and their associated parameters, go to the [ApplicationName](#applicationname) table, then click through to the Activity Events page in the Appendix for the application you want. In the following Drive activity examples, the returned list consists of all `edit` events where the `doc_id` parameter value matches the conditions defined by the relational operator. In the first example, the request returns all edited documents with a `doc_id` value equal to `12345`. In the second example, the report returns any edited documents where the `doc_id` value is not equal to `98765`. The `<>` operator is URL-encoded in the request's query string (`%3C%3E`): ``` GET...&eventName=edit&filters=doc_id==12345 GET...&eventName=edit&filters=doc_id%3C%3E98765 ``` A `filters` query supports these relational operators: * `==`\u2014'equal to'. * `<>`\u2014'not equal to'. Must be URL-encoded (%3C%3E). * `<`\u2014'less than'. Must be URL-encoded (%3C). * `<=`\u2014'less than or equal to'. Must be URL-encoded (%3C=). * `>`\u2014'greater than'. Must be URL-encoded (%3E). * `>=`\u2014'greater than or equal to'. Must be URL-encoded (%3E=). **Note:** The API doesn't accept multiple values of the same parameter. If a parameter is supplied more than once in the API request, the API only accepts the last value of that parameter. In addition, if an invalid parameter is supplied in the API request, the API ignores that parameter and returns the response corresponding to the remaining valid parameters. If no parameters are requested, all parameters are returned.", "location": "query", "pattern": "(.+[<,<=,==,>=,>,<>].+,)*(.+[<,<=,==,>=,>,<>].+)", "type": "string" @@ -431,7 +431,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 PST time zone. 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 +560,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 GMT-7: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 +623,7 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Activities": { diff --git a/etc/api/admob/v1/admob-api.json b/etc/api/admob/v1/admob-api.json index d47f5ce645..2bde00187f 100644 --- a/etc/api/admob/v1/admob-api.json +++ b/etc/api/admob/v1/admob-api.json @@ -180,7 +180,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of ad units to return. If unspecified or 0, at most 1000 ad units will be returned. The maximum value is 10,000; values above 10,000 will be coerced to 10,000.", + "description": "The maximum number of ad units to return. If unspecified or 0, at most 10,000 ad units 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" @@ -221,7 +221,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of apps to return. If unspecified or 0, at most 1000 apps will be returned. The maximum value is 10,000; values above 10,000 will be coerced to 10,000.", + "description": "The maximum number of apps to return. If unspecified or 0, at most 10,000 apps 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" @@ -253,7 +253,7 @@ "mediationReport": { "methods": { "generate": { - "description": "Generates an AdMob Mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", + "description": "Generates an AdMob mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", "flatPath": "v1/accounts/{accountsId}/mediationReport:generate", "httpMethod": "POST", "id": "admob.accounts.mediationReport.generate", @@ -321,7 +321,7 @@ } } }, - "revision": "20220303", + "revision": "20230124", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdUnit": { @@ -329,7 +329,7 @@ "id": "AdUnit", "properties": { "adFormat": { - "description": "AdFormat of the ad unit. Possible values are as follows: \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded.", + "description": "AdFormat of the ad unit. Possible values are as follows: \"APP_OPEN\" - App Open ad format. \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded. \"REWARDED_INTERSTITIAL\" - Rewarded Interstitial ad format. Only supports video ad type. See https://support.google.com/admob/answer/9884467.", "type": "string" }, "adTypes": { @@ -362,6 +362,23 @@ "description": "Describes an AdMob app for a specific platform (For example: Android or iOS).", "id": "App", "properties": { + "appApprovalState": { + "description": "Output only. The approval state for the app.", + "enum": [ + "APP_APPROVAL_STATE_UNSPECIFIED", + "ACTION_REQUIRED", + "IN_REVIEW", + "APPROVED" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The app requires additional user action to be approved. Please refer to https://support.google.com/admob/answer/10564477 for details and next steps.", + "The app is pending review.", + "The app is approved and can serve ads." + ], + "readOnly": true, + "type": "string" + }, "appId": { "description": "The externally visible ID of the app which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654~0123456789", "type": "string" @@ -450,7 +467,7 @@ "type": "object" }, "GenerateMediationReportRequest": { - "description": "Request to generate an AdMob Mediation report.", + "description": "Request to generate an AdMob mediation report.", "id": "GenerateMediationReportRequest", "properties": { "reportSpec": { @@ -461,7 +478,7 @@ "type": "object" }, "GenerateMediationReportResponse": { - "description": "The streaming response for the AdMob Mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]", + "description": "The streaming response for the AdMob mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]", "id": "GenerateMediationReportResponse", "properties": { "footer": { diff --git a/etc/api/admob/v1beta/admob-api.json b/etc/api/admob/v1beta/admob-api.json index 1244f0a4b7..6add48e95b 100644 --- a/etc/api/admob/v1beta/admob-api.json +++ b/etc/api/admob/v1beta/admob-api.json @@ -168,6 +168,44 @@ } }, "resources": { + "adSources": { + "methods": { + "list": { + "description": "List the ad sources.", + "flatPath": "v1beta/accounts/{accountsId}/adSources", + "httpMethod": "GET", + "id": "admob.accounts.adSources.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of ad sources to return. If unspecified or 0, at most 10,000 ad sources will be returned. The maximum value is 20,000; values above 10,000 will be coerced to 20,000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListAdSources` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent which owns this collection of ad sources. Format: accounts/{publisher_id}", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/adSources", + "response": { + "$ref": "ListAdSourcesResponse" + }, + "streamingType": "NONE" + } + } + }, "adUnits": { "methods": { "list": { @@ -180,7 +218,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of ad units to return. If unspecified or 0, at most 1000 ad units will be returned. The maximum value is 10,000; values above 10,000 will be coerced to 10,000.", + "description": "The maximum number of ad units to return. If unspecified or 0, at most 10,000 ad units 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" @@ -221,7 +259,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of apps to return. If unspecified or 0, at most 1000 apps will be returned. The maximum value is 10,000; values above 10,000 will be coerced to 10,000.", + "description": "The maximum number of apps to return. If unspecified or 0, at most 10,000 apps 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" @@ -253,7 +291,7 @@ "mediationReport": { "methods": { "generate": { - "description": "Generates an AdMob Mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", + "description": "Generates an AdMob mediation report based on the provided report specification. Returns result of a server-side streaming RPC. The result is returned in a sequence of responses.", "flatPath": "v1beta/accounts/{accountsId}/mediationReport:generate", "httpMethod": "POST", "id": "admob.accounts.mediationReport.generate", @@ -321,15 +359,34 @@ } } }, - "revision": "20220303", + "revision": "20230124", "rootUrl": "https://admob.googleapis.com/", "schemas": { + "AdSource": { + "description": "Definition of a mediation ad source.", + "id": "AdSource", + "properties": { + "adSourceId": { + "description": "ID of this ad source.", + "type": "string" + }, + "name": { + "description": "Resource name of this ad source. Format is: accounts/{publisher_id}/adSources/{ad_source_id}", + "type": "string" + }, + "title": { + "description": "Display name of this ad source.", + "type": "string" + } + }, + "type": "object" + }, "AdUnit": { "description": "Describes an AdMob ad unit.", "id": "AdUnit", "properties": { "adFormat": { - "description": "AdFormat of the ad unit. Possible values are as follows: \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded.", + "description": "AdFormat of the ad unit. Possible values are as follows: \"APP_OPEN\" - App Open ad format. \"BANNER\" - Banner ad format. \"BANNER_INTERSTITIAL\" - Legacy format that can be used as either banner or interstitial. This format can no longer be created but can be targeted by mediation groups. \"INTERSTITIAL\" - A full screen ad. Supported ad types are \"RICH_MEDIA\" and \"VIDEO\". \"NATIVE\" - Native ad format. \"REWARDED\" - An ad that, once viewed, gets a callback verifying the view so that a reward can be given to the user. Supported ad types are \"RICH_MEDIA\" (interactive) and video where video can not be excluded. \"REWARDED_INTERSTITIAL\" - Rewarded Interstitial ad format. Only supports video ad type. See https://support.google.com/admob/answer/9884467.", "type": "string" }, "adTypes": { @@ -362,6 +419,23 @@ "description": "Describes an AdMob app for a specific platform (For example: Android or iOS).", "id": "App", "properties": { + "appApprovalState": { + "description": "Output only. The approval state for the app.", + "enum": [ + "APP_APPROVAL_STATE_UNSPECIFIED", + "ACTION_REQUIRED", + "IN_REVIEW", + "APPROVED" + ], + "enumDescriptions": [ + "Default value for an unset field. Do not use.", + "The app requires additional user action to be approved. Please refer to https://support.google.com/admob/answer/10564477 for details and next steps.", + "The app is pending review.", + "The app is approved and can serve ads." + ], + "readOnly": true, + "type": "string" + }, "appId": { "description": "The externally visible ID of the app which can be used to integrate with the AdMob SDK. This is a read only property. Example: ca-app-pub-9876543210987654~0123456789", "type": "string" @@ -450,7 +524,7 @@ "type": "object" }, "GenerateMediationReportRequest": { - "description": "Request to generate an AdMob Mediation report.", + "description": "Request to generate an AdMob mediation report.", "id": "GenerateMediationReportRequest", "properties": { "reportSpec": { @@ -461,7 +535,7 @@ "type": "object" }, "GenerateMediationReportResponse": { - "description": "The streaming response for the AdMob Mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]", + "description": "The streaming response for the AdMob mediation report where the first response contains the report header, then a stream of row responses, and finally a footer as the last response message. For example: [{ \"header\": { \"date_range\": { \"start_date\": {\"year\": 2018, \"month\": 9, \"day\": 1}, \"end_date\": {\"year\": 2018, \"month\": 9, \"day\": 1} }, \"localization_settings\": { \"currency_code\": \"USD\", \"language_code\": \"en-US\" } } }, { \"row\": { \"dimension_values\": { \"DATE\": {\"value\": \"20180918\"}, \"APP\": { \"value\": \"ca-app-pub-8123415297019784~1001342552\", \"display_label\": \"My app name!\" } }, \"metric_values\": { \"ESTIMATED_EARNINGS\": {\"decimal_value\": \"1324746\"} } } }, { \"footer\": {\"matching_row_count\": 1} }]", "id": "GenerateMediationReportResponse", "properties": { "footer": { @@ -509,6 +583,24 @@ }, "type": "object" }, + "ListAdSourcesResponse": { + "description": "Response for the ListAdSourcesRequest.", + "id": "ListAdSourcesResponse", + "properties": { + "adSources": { + "description": "The ad sources.", + "items": { + "$ref": "AdSource" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Used to set the `page_token` in the `ListAdSourcesRequest` 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", diff --git a/etc/api/adsense/v2/adsense-api.json b/etc/api/adsense/v2/adsense-api.json index 4deeaa8437..ede422e5af 100644 --- a/etc/api/adsense/v2/adsense-api.json +++ b/etc/api/adsense/v2/adsense-api.json @@ -134,6 +134,32 @@ "https://www.googleapis.com/auth/adsense.readonly" ] }, + "getAdBlockingRecoveryTag": { + "description": "Gets the ad blocking recovery tag of an account.", + "flatPath": "v2/accounts/{accountsId}/adBlockingRecoveryTag", + "httpMethod": "GET", + "id": "adsense.accounts.getAdBlockingRecoveryTag", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the account to get the tag for. Format: accounts/{account}", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}/adBlockingRecoveryTag", + "response": { + "$ref": "AdBlockingRecoveryTag" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, "list": { "description": "Lists all accounts available to this user.", "flatPath": "v2/accounts", @@ -203,6 +229,32 @@ "resources": { "adclients": { "methods": { + "get": { + "description": "Gets the ad client from the given resource name.", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}", + "httpMethod": "GET", + "id": "adsense.accounts.adclients.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the ad client to retrieve. Format: accounts/{account}/adclients/{adclient}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "AdClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, "getAdcode": { "description": "Gets the AdSense code for a given ad client. This returns what was previously known as the 'auto ad code'. This is only supported for ad clients with a product_code of AFC. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634).", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adcode", @@ -270,6 +322,34 @@ "resources": { "adunits": { "methods": { + "create": { + "description": "Creates an ad unit. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product. Note that ad units can only be created for ad clients with an \"AFC\" product code. For more info see the [AdClient resource](/adsense/management/reference/rest/v2/accounts.adclients). For now, this method can only be used to create `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits", + "httpMethod": "POST", + "id": "adsense.accounts.adclients.adunits.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Ad client to create an ad unit under. Format: accounts/{account}/adclients/{adclient}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/adunits", + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] + }, "get": { "description": "Gets an ad unit from a specified account and ad client.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}", @@ -297,7 +377,7 @@ ] }, "getAdcode": { - "description": "Gets the AdSense code for a given ad unit.", + "description": "Gets the ad unit code for a given ad unit. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634) and [Where to place the ad code in your HTML](https://support.google.com/adsense/answer/9190028).", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}/adcode", "httpMethod": "GET", "id": "adsense.accounts.adclients.adunits.getAdcode", @@ -395,11 +475,98 @@ "https://www.googleapis.com/auth/adsense", "https://www.googleapis.com/auth/adsense.readonly" ] + }, + "patch": { + "description": "Updates an ad unit. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product. For now, this method can only be used to update `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}", + "httpMethod": "PATCH", + "id": "adsense.accounts.adclients.adunits.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the ad unit. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+/adunits/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to update. If empty, a full update is performed.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "AdUnit" + }, + "response": { + "$ref": "AdUnit" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] } } }, "customchannels": { "methods": { + "create": { + "description": "Creates a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels", + "httpMethod": "POST", + "id": "adsense.accounts.adclients.customchannels.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The ad client to create a custom channel under. Format: accounts/{account}/adclients/{adclient}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/customchannels", + "request": { + "$ref": "CustomChannel" + }, + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] + }, + "delete": { + "description": "Deletes a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", + "httpMethod": "DELETE", + "id": "adsense.accounts.adclients.customchannels.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom channel to delete. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] + }, "get": { "description": "Gets information about the selected custom channel.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", @@ -499,11 +666,71 @@ "https://www.googleapis.com/auth/adsense", "https://www.googleapis.com/auth/adsense.readonly" ] + }, + "patch": { + "description": "Updates a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", + "httpMethod": "PATCH", + "id": "adsense.accounts.adclients.customchannels.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+/customchannels/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to update. If empty, a full update is performed.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "CustomChannel" + }, + "response": { + "$ref": "CustomChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense" + ] } } }, "urlchannels": { "methods": { + "get": { + "description": "Gets information about the selected url channel.", + "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/urlchannels/{urlchannelsId}", + "httpMethod": "GET", + "id": "adsense.accounts.adclients.urlchannels.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the url channel to retrieve. Format: accounts/{account}/adclients/{adclient}/urlchannels/{urlchannel}", + "location": "path", + "pattern": "^accounts/[^/]+/adclients/[^/]+/urlchannels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "UrlChannel" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, "list": { "description": "Lists active url channels.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/urlchannels", @@ -667,6 +894,7 @@ "MONTH", "ACCOUNT_NAME", "AD_CLIENT_ID", + "HOSTED_AD_CLIENT_ID", "PRODUCT_NAME", "PRODUCT_CODE", "AD_UNIT_NAME", @@ -715,6 +943,7 @@ "Month dimension in YYYY-MM format (e.g. \"2010-02\").", "Account name. The members of this dimension match the values from Account.display_name.", "Unique ID of an ad client. The members of this dimension match the values from AdClient.reporting_dimension_id.", + "Unique ID of a sub-account's ad client. The members of this dimension match the values from AdClient.reporting_dimension_id (for the sub-account).", "Localized product name (e.g. \"AdSense for Content\", \"AdSense for Search\").", "Product code (e.g. \"AFC\", \"AFS\"). The members of this dimension match the values from AdClient.product_code.", "Ad unit name (within which an ad was served). The members of this dimension match the values from AdUnit.display_name.", @@ -779,7 +1008,7 @@ "type": "integer" }, "filters": { - "description": "Filters to be run on the report.", + "description": "A list of [filters](/adsense/management/reporting/filtering) to apply to the report. All provided filters must match in order for the data to be included in the report.", "location": "query", "repeated": true, "type": "string" @@ -864,7 +1093,7 @@ "Revenue per thousand individual ad impressions. This is calculated by dividing estimated revenue by the number of individual ad impressions multiplied by 1000.", "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.", + "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." ], "location": "query", @@ -975,6 +1204,7 @@ "MONTH", "ACCOUNT_NAME", "AD_CLIENT_ID", + "HOSTED_AD_CLIENT_ID", "PRODUCT_NAME", "PRODUCT_CODE", "AD_UNIT_NAME", @@ -1023,6 +1253,7 @@ "Month dimension in YYYY-MM format (e.g. \"2010-02\").", "Account name. The members of this dimension match the values from Account.display_name.", "Unique ID of an ad client. The members of this dimension match the values from AdClient.reporting_dimension_id.", + "Unique ID of a sub-account's ad client. The members of this dimension match the values from AdClient.reporting_dimension_id (for the sub-account).", "Localized product name (e.g. \"AdSense for Content\", \"AdSense for Search\").", "Product code (e.g. \"AFC\", \"AFS\"). The members of this dimension match the values from AdClient.product_code.", "Ad unit name (within which an ad was served). The members of this dimension match the values from AdUnit.display_name.", @@ -1087,7 +1318,7 @@ "type": "integer" }, "filters": { - "description": "Filters to be run on the report.", + "description": "A list of [filters](/adsense/management/reporting/filtering) to apply to the report. All provided filters must match in order for the data to be included in the report.", "location": "query", "repeated": true, "type": "string" @@ -1172,7 +1403,7 @@ "Revenue per thousand individual ad impressions. This is calculated by dividing estimated revenue by the number of individual ad impressions multiplied by 1000.", "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.", + "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." ], "location": "query", @@ -1227,6 +1458,32 @@ "https://www.googleapis.com/auth/adsense", "https://www.googleapis.com/auth/adsense.readonly" ] + }, + "getSaved": { + "description": "Gets the saved report from the given resource name.", + "flatPath": "v2/accounts/{accountsId}/reports/{reportsId}/saved", + "httpMethod": "GET", + "id": "adsense.accounts.reports.getSaved", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the saved report to retrieve. Format: accounts/{account}/reports/{report}", + "location": "path", + "pattern": "^accounts/[^/]+/reports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}/saved", + "response": { + "$ref": "SavedReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] } }, "resources": { @@ -1567,7 +1824,7 @@ } } }, - "revision": "20220304", + "revision": "20230124", "rootUrl": "https://adsense.googleapis.com/", "schemas": { "Account": { @@ -1586,7 +1843,8 @@ "type": "string" }, "name": { - "description": "Resource name of the account. Format: accounts/pub-[0-9]+", + "description": "Output only. Resource name of the account. Format: accounts/pub-[0-9]+", + "readOnly": true, "type": "string" }, "pendingTasks": { @@ -1602,6 +1860,23 @@ "readOnly": true, "type": "boolean" }, + "state": { + "description": "Output only. State of the account.", + "enum": [ + "STATE_UNSPECIFIED", + "READY", + "NEEDS_ATTENTION", + "CLOSED" + ], + "enumDescriptions": [ + "State unspecified.", + "The account is open and ready to serve ads.", + "There are some issues with this account. Publishers should visit AdSense in order to fix the account.", + "The account is closed and can't serve ads." + ], + "readOnly": true, + "type": "string" + }, "timeZone": { "$ref": "TimeZone", "description": "The account time zone, as used by reporting. For more information, see [changing the time zone of your reports](https://support.google.com/adsense/answer/9830725)." @@ -1609,16 +1884,32 @@ }, "type": "object" }, + "AdBlockingRecoveryTag": { + "description": "Representation of an ad blocking recovery tag. See https://support.google.com/adsense/answer/11575177.", + "id": "AdBlockingRecoveryTag", + "properties": { + "errorProtectionCode": { + "description": "Error protection code that can be used in conjunction with the tag. It'll display a message to users if an [ad blocking extension blocks their access to your site](https://support.google.com/adsense/answer/11575480).", + "type": "string" + }, + "tag": { + "description": "The ad blocking recovery tag. Note that the message generated by the tag can be blocked by an ad blocking extension. If this is not your desired outcome, then you'll need to use it in conjunction with the error protection code.", + "type": "string" + } + }, + "type": "object" + }, "AdClient": { "description": "Representation of an ad client. An ad client represents a user's subscription with a specific AdSense product.", "id": "AdClient", "properties": { "name": { - "description": "Resource name of the ad client. Format: accounts/{account}/adclients/{adclient}", + "description": "Output only. Resource name of the ad client. Format: accounts/{account}/adclients/{adclient}", + "readOnly": true, "type": "string" }, "productCode": { - "description": "Output only. Product code of the ad client. For example, \"AFC\" for AdSense for Content.", + "description": "Output only. Reporting product code of the ad client. For example, \"AFC\" for AdSense for Content. Corresponds to the `PRODUCT_CODE` dimension, and present only if the ad client supports reporting.", "readOnly": true, "type": "string" }, @@ -1626,6 +1917,23 @@ "description": "Output only. Unique ID of the ad client as used in the `AD_CLIENT_ID` reporting dimension. Present only if the ad client supports reporting.", "readOnly": true, "type": "string" + }, + "state": { + "description": "Output only. State of the ad client.", + "enum": [ + "STATE_UNSPECIFIED", + "READY", + "GETTING_READY", + "REQUIRES_REVIEW" + ], + "enumDescriptions": [ + "State unspecified.", + "The ad client is ready to show ads.", + "Running some checks on the ad client before it is ready to serve ads.", + "The ad client hasn't been checked yet. There are tasks pending before AdSense will start the review." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1658,14 +1966,15 @@ "properties": { "contentAdsSettings": { "$ref": "ContentAdsSettings", - "description": "Settings specific to content ads (AFC)." + "description": "Required. Settings specific to content ads (AFC)." }, "displayName": { - "description": "Display name of the ad unit, as provided when the ad unit was created.", + "description": "Required. Display name of the ad unit, as provided when the ad unit was created.", "type": "string" }, "name": { - "description": "Resource name of the ad unit. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", + "description": "Output only. Resource name of the ad unit. Format: accounts/{account}/adclients/{adclient}/adunits/{adunit}", + "readOnly": true, "type": "string" }, "reportingDimensionId": { @@ -1691,11 +2000,11 @@ "type": "object" }, "AdUnitAdCode": { - "description": "Representation of the AdSense code for a given ad unit.", + "description": "Representation of the ad unit code for a given ad unit. For more information, see [About the AdSense code](https://support.google.com/adsense/answer/9274634) and [Where to place the ad code in your HTML](https://support.google.com/adsense/answer/9190028).", "id": "AdUnitAdCode", "properties": { "adCode": { - "description": "Output only. The AdSense code snippet to add to the body of an HTML page.", + "description": "Output only. The code snippet to add to the body of an HTML page.", "readOnly": true, "type": "string" } @@ -1712,7 +2021,8 @@ "type": "string" }, "name": { - "description": "Resource name of the alert. Format: accounts/{account}/alerts/{alert}", + "description": "Output only. Resource name of the alert. Format: accounts/{account}/alerts/{alert}", + "readOnly": true, "type": "string" }, "severity": { @@ -1756,11 +2066,11 @@ "id": "ContentAdsSettings", "properties": { "size": { - "description": "Size of the ad unit. e.g. \"728x90\", \"1x3\" (for responsive ad units).", + "description": "Required. Size of the ad unit. e.g. \"728x90\", \"1x3\" (for responsive ad units).", "type": "string" }, "type": { - "description": "Type of the ad unit.", + "description": "Required. Type of the ad unit.", "enum": [ "TYPE_UNSPECIFIED", "DISPLAY", @@ -1786,12 +2096,17 @@ "description": "Representation of a custom channel.", "id": "CustomChannel", "properties": { + "active": { + "description": "Whether the custom channel is active and collecting data. See https://support.google.com/adsense/answer/10077192.", + "type": "boolean" + }, "displayName": { - "description": "Display name of the custom channel.", + "description": "Required. Display name of the custom channel.", "type": "string" }, "name": { - "description": "Resource name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", + "description": "Output only. Resource name of the custom channel. Format: accounts/{account}/adclients/{adclient}/customchannels/{customchannel}", + "readOnly": true, "type": "string" }, "reportingDimensionId": { @@ -1824,6 +2139,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" + }, "Header": { "description": "The header information of the columns requested in the report.", "id": "Header", @@ -2111,7 +2432,8 @@ "readOnly": true }, "name": { - "description": "Resource name of the payment. Format: - accounts/{account}/payments/unpaid for unpaid (current) AdSense earnings. - accounts/{account}/payments/youtube-unpaid for unpaid (current) YouTube earnings. - accounts/{account}/payments/yyyy-MM-dd for paid AdSense earnings. - accounts/{account}/payments/youtube-yyyy-MM-dd for paid YouTube earnings. ", + "description": "Output only. Resource name of the payment. Format: - accounts/{account}/payments/unpaid for unpaid (current) AdSense earnings. - accounts/{account}/payments/youtube-unpaid for unpaid (current) YouTube earnings. - accounts/{account}/payments/yyyy-MM-dd for paid AdSense earnings. - accounts/{account}/payments/youtube-yyyy-MM-dd for paid YouTube earnings.", + "readOnly": true, "type": "string" } }, @@ -2185,7 +2507,8 @@ "id": "SavedReport", "properties": { "name": { - "description": "Resource name of the report. Format: accounts/{account}/reports/{report}", + "description": "Output only. Resource name of the report. Format: accounts/{account}/reports/{report}", + "readOnly": true, "type": "string" }, "title": { @@ -2208,7 +2531,8 @@ "type": "string" }, "name": { - "description": "Resource name of a site. Format: accounts/{account}/sites/{site}", + "description": "Output only. Resource name of a site. Format: accounts/{account}/sites/{site}", + "readOnly": true, "type": "string" }, "reportingDimensionId": { @@ -2227,10 +2551,10 @@ ], "enumDescriptions": [ "State unspecified.", - "The site hasn't been checked yet.", - "Running some checks on the site. This usually takes a few days, but in some cases can take up to 2 weeks.", - "The site is ready to show ads.", - "Publisher needs to fix some issues before the site is ready to show ads." + "Either: * The site hasn't been checked yet. * The site is inactive and needs another review before it can show ads again. Learn how to [request a review for an inactive site](https://support.google.com/adsense/answer/9393996).", + "Google is running some checks on the site. This usually takes a few days, but in some cases it can take two to four weeks.", + "The site is ready to show ads. Learn how to [set up ads on the site](https://support.google.com/adsense/answer/7037624).", + "Publisher needs to fix some issues before the site is ready to show ads. Learn what to do [if a new site isn't ready](https://support.google.com/adsense/answer/9061852)." ], "readOnly": true, "type": "string" @@ -2258,7 +2582,8 @@ "id": "UrlChannel", "properties": { "name": { - "description": "Resource name of the URL channel. Format: accounts/{account}/adclients/{adclient}/urlchannels/{urlchannel}", + "description": "Output only. Resource name of the URL channel. Format: accounts/{account}/adclients/{adclient}/urlchannels/{urlchannel}", + "readOnly": true, "type": "string" }, "reportingDimensionId": { diff --git a/etc/api/alertcenter/v1beta1/alertcenter-api.json b/etc/api/alertcenter/v1beta1/alertcenter-api.json index 3e2f1705eb..5e3e899358 100644 --- a/etc/api/alertcenter/v1beta1/alertcenter-api.json +++ b/etc/api/alertcenter/v1beta1/alertcenter-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://alertcenter.googleapis.com/", "batchPath": "batch", "canonicalName": "AlertCenter", - "description": "Manages alerts on issues affecting your domain.", + "description": "Manages alerts on issues affecting your domain. Note: The current version of this API (v1beta1) is available to all Google Workspace customers. ", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/admin-sdk/alertcenter/", "fullyEncodeReservedExpansion": true, @@ -159,7 +159,7 @@ "type": "string" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert is associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -188,7 +188,7 @@ "type": "string" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert is associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -217,7 +217,7 @@ "type": "string" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert metadata is associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert metadata is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -238,7 +238,7 @@ "parameterOrder": [], "parameters": { "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alerts are associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" }, @@ -319,7 +319,7 @@ "type": "string" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert is associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -351,7 +351,7 @@ "type": "string" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert feedback are associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" }, @@ -383,7 +383,7 @@ "parameterOrder": [], "parameters": { "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert settings are associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert settings are associated with. The `customer_id` must/ have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -404,7 +404,7 @@ "parameterOrder": [], "parameters": { "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert settings are associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert settings are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "location": "query", "type": "string" } @@ -423,9 +423,40 @@ } } }, - "revision": "20220221", + "revision": "20230123", "rootUrl": "https://alertcenter.googleapis.com/", "schemas": { + "AbuseDetected": { + "description": "A generic alert for abusive user activity occurring with a customer.", + "id": "AbuseDetected", + "properties": { + "additionalDetails": { + "$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.", + "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.", + "type": "string" + } + }, + "type": "object" + }, "AccountSuspensionDetails": { "description": "Details about why an account is receiving an account suspension warning.", "id": "AccountSuspensionDetails", @@ -599,7 +630,7 @@ "type": "string" }, "customerId": { - "description": "Output only. The unique identifier of the Google account of the customer.", + "description": "Output only. The unique identifier of the Google Workspace account of the customer.", "type": "string" }, "data": { @@ -666,7 +697,7 @@ "type": "string" }, "customerId": { - "description": "Output only. The unique identifier of the Google account of the customer.", + "description": "Output only. The unique identifier of the Google Workspace account of the customer.", "type": "string" }, "email": { @@ -709,7 +740,7 @@ "type": "string" }, "customerId": { - "description": "Output only. The unique identifier of the Google account of the customer.", + "description": "Output only. The unique identifier of the Google Workspace account of the customer.", "type": "string" }, "etag": { @@ -732,6 +763,26 @@ }, "type": "object" }, + "ApnsCertificateExpirationInfo": { + "description": "The explanation message associated with ApnsCertificationExpiring and ApnsCertificationExpired alerts.", + "id": "ApnsCertificateExpirationInfo", + "properties": { + "appleId": { + "description": "The Apple ID used for the certificate may be blank if admins didn't enter it.", + "type": "string" + }, + "expirationTime": { + "description": "The expiration date of the APNS Certificate.", + "format": "google-datetime", + "type": "string" + }, + "uid": { + "description": "The UID for the certificate.", + "type": "string" + } + }, + "type": "object" + }, "AppMakerSqlSetupNotification": { "description": "Alerts from App Maker to notify admins to set up default SQL instance.", "id": "AppMakerSqlSetupNotification", @@ -864,14 +915,14 @@ "id": "BatchDeleteAlertsRequest", "properties": { "alertId": { - "description": "Required. list of alert IDs.", + "description": "Required. The list of alert IDs to delete.", "items": { "type": "string" }, "type": "array" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alerts are associated with.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "type": "string" } }, @@ -885,7 +936,7 @@ "additionalProperties": { "$ref": "Status" }, - "description": "The status details for each failed alert_id.", + "description": "The status details for each failed `alert_id`.", "type": "object" }, "successAlertIds": { @@ -903,14 +954,14 @@ "id": "BatchUndeleteAlertsRequest", "properties": { "alertId": { - "description": "Required. list of alert IDs.", + "description": "Required. The list of alert IDs to undelete.", "items": { "type": "string" }, "type": "array" }, "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alerts are associated with.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alerts are associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "type": "string" } }, @@ -924,7 +975,7 @@ "additionalProperties": { "$ref": "Status" }, - "description": "The status details for each failed alert_id.", + "description": "The status details for each failed `alert_id`.", "type": "object" }, "successAlertIds": { @@ -1086,11 +1137,58 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "Entity": { + "description": "Individual entity affected by, or related to, an alert.", + "id": "Entity", + "properties": { + "link": { + "description": "Link to a Security Investigation Tool search based on this entity, if available.", + "type": "string" + }, + "name": { + "description": "Human-readable name of this entity, such as an email address, file ID, or device name.", + "type": "string" + }, + "values": { + "description": "Extra values beyond name. The order of values should align with headers in EntityList.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntityList": { + "description": "EntityList stores entities in a format that can be translated to a table in the Alert Center UI.", + "id": "EntityList", + "properties": { + "entities": { + "description": "List of entities affected by the alert.", + "items": { + "$ref": "Entity" + }, + "type": "array" + }, + "headers": { + "description": "Headers of the values in entities. If no value is defined in Entity, this field should be empty.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of the key detail used to display this entity list.", + "type": "string" + } + }, + "type": "object" + }, "GmailMessageInfo": { "description": "Details of a message in phishing spike alert.", "id": "GmailMessageInfo", @@ -1275,6 +1373,21 @@ }, "type": "object" }, + "MandatoryServiceAnnouncement": { + "description": "Alert Created by the MSA team for communications necessary for continued use of Google Workspace Products.", + "id": "MandatoryServiceAnnouncement", + "properties": { + "description": { + "description": "Detailed, freeform text describing the announcement", + "type": "string" + }, + "title": { + "description": "One line summary of the announcement", + "type": "string" + } + }, + "type": "object" + }, "MatchInfo": { "description": "Proto that contains match information from the condition part of the rule.", "id": "MatchInfo", @@ -1353,6 +1466,25 @@ }, "type": "object" }, + "PrimaryAdminChangedEvent": { + "description": "Event occurred when primary admin changed in customer's account. The event are being received from insight forwarder", + "id": "PrimaryAdminChangedEvent", + "properties": { + "domain": { + "description": "domain in which actioned occurred", + "type": "string" + }, + "previousAdminEmail": { + "description": "Email of person who was the primary admin before the action", + "type": "string" + }, + "updatedAdminEmail": { + "description": "Email of person who is the primary admin after the action", + "type": "string" + } + }, + "type": "object" + }, "ReportingRule": { "description": "Alerts from Reporting Rules configured by Admin.", "id": "ReportingRule", @@ -1472,6 +1604,7 @@ "ACTION_TYPE_UNSPECIFIED", "DRIVE_BLOCK_EXTERNAL_SHARING", "DRIVE_WARN_ON_EXTERNAL_SHARING", + "DELETE_WEBPROTECT_EVIDENCE", "ALERT", "RULE_ACTIVATE", "RULE_DEACTIVATE" @@ -1480,6 +1613,7 @@ "Action type is unspecified.", "Block sharing a file externally.", "Show a warning message when sharing a file externally.", + "Delete web protect evidence file", "Send alert.", "Activate Rule Action", "Deactivate Rule Action" @@ -1514,6 +1648,7 @@ "ACTION_TYPE_UNSPECIFIED", "DRIVE_BLOCK_EXTERNAL_SHARING", "DRIVE_WARN_ON_EXTERNAL_SHARING", + "DELETE_WEBPROTECT_EVIDENCE", "ALERT", "RULE_ACTIVATE", "RULE_DEACTIVATE" @@ -1522,6 +1657,7 @@ "Action type is unspecified.", "Block sharing a file externally.", "Show a warning message when sharing a file externally.", + "Delete web protect evidence file", "Send alert.", "Activate Rule Action", "Deactivate Rule Action" @@ -1537,6 +1673,79 @@ }, "type": "object" }, + "SSOProfileCreatedEvent": { + "description": "Event occurred when SSO Profile created in customer's account. The event are being received from insight forwarder", + "id": "SSOProfileCreatedEvent", + "properties": { + "inboundSsoProfileName": { + "description": "sso profile name which got created", + "type": "string" + } + }, + "type": "object" + }, + "SSOProfileDeletedEvent": { + "description": "Event occurred when SSO Profile deleted in customer's account. The event are being received from insight forwarder", + "id": "SSOProfileDeletedEvent", + "properties": { + "inboundSsoProfileName": { + "description": "sso profile name which got deleted", + "type": "string" + } + }, + "type": "object" + }, + "SSOProfileUpdatedEvent": { + "description": "Event occurred when SSO Profile updated in customer's account. The event are being received from insight forwarder", + "id": "SSOProfileUpdatedEvent", + "properties": { + "inboundSsoProfileChanges": { + "description": "changes made to sso profile", + "type": "string" + }, + "inboundSsoProfileName": { + "description": "sso profile name which got updated", + "type": "string" + } + }, + "type": "object" + }, + "SensitiveAdminAction": { + "description": "Alert that is triggered when Sensitive Admin Action occur in customer account.", + "id": "SensitiveAdminAction", + "properties": { + "actorEmail": { + "description": "Email of person who performed the action", + "type": "string" + }, + "eventTime": { + "description": "The time at which event occurred", + "format": "google-datetime", + "type": "string" + }, + "primaryAdminChangedEvent": { + "$ref": "PrimaryAdminChangedEvent", + "description": "Event occurred when primary admin changed in customer's account" + }, + "ssoProfileCreatedEvent": { + "$ref": "SSOProfileCreatedEvent", + "description": "Event occurred when SSO Profile created in customer's account" + }, + "ssoProfileDeletedEvent": { + "$ref": "SSOProfileDeletedEvent", + "description": "Event occurred when SSO Profile deleted in customer's account" + }, + "ssoProfileUpdatedEvent": { + "$ref": "SSOProfileUpdatedEvent", + "description": "Event occurred when SSO Profile updated in customer's account" + }, + "superAdminPasswordResetEvent": { + "$ref": "SuperAdminPasswordResetEvent", + "description": "Event occurred when password was reset for super admin in customer's account" + } + }, + "type": "object" + }, "Settings": { "description": "Customer-level settings.", "id": "Settings", @@ -1589,6 +1798,17 @@ }, "type": "object" }, + "SuperAdminPasswordResetEvent": { + "description": "Event occurred when password was reset for super admin in customer's account. The event are being received from insight forwarder", + "id": "SuperAdminPasswordResetEvent", + "properties": { + "userEmail": { + "description": "email of person whose password was reset", + "type": "string" + } + }, + "type": "object" + }, "SuspiciousActivity": { "description": "A mobile suspicious activity alert. Derived from audit logs.", "id": "SuspiciousActivity", @@ -1650,12 +1870,79 @@ }, "type": "object" }, + "TransferError": { + "description": "Details for an invalid transfer or forward.", + "id": "TransferError", + "properties": { + "email": { + "description": "User's email address. This may be unavailable if the entity was deleted.", + "type": "string" + }, + "entityType": { + "description": "Type of entity being transferred to. For ring group members, this should always be USER.", + "enum": [ + "TRANSFER_ENTITY_TYPE_UNSPECIFIED", + "TRANSFER_AUTO_ATTENDANT", + "TRANSFER_RING_GROUP", + "TRANSFER_USER" + ], + "enumDescriptions": [ + "Entity type wasn't set.", + "Transfer to auto attendant.", + "Transfer to ring group.", + "Transfer to user." + ], + "type": "string" + }, + "id": { + "description": "Ring group or auto attendant ID. Not set for users.", + "type": "string" + }, + "invalidReason": { + "description": "Reason for the error.", + "enum": [ + "TRANSFER_INVALID_REASON_UNSPECIFIED", + "TRANSFER_TARGET_DELETED", + "UNLICENSED", + "SUSPENDED", + "NO_PHONE_NUMBER" + ], + "enumDescriptions": [ + "Reason wasn't specified.", + "The transfer target can't be found\u2014most likely it was deleted.", + "The user's Google Voice license was removed.", + "The user's Google Workspace account was suspended.", + "The transfer target no longer has a phone number. This reason should become deprecated once we support numberless transfer." + ], + "type": "string" + }, + "name": { + "description": "User's full name, or the ring group / auto attendant name. This may be unavailable if the entity was deleted.", + "type": "string" + } + }, + "type": "object" + }, + "TransferMisconfiguration": { + "description": "Error related to transferring or forwarding a phone call.", + "id": "TransferMisconfiguration", + "properties": { + "errors": { + "description": "Details for each invalid transfer or forward.", + "items": { + "$ref": "TransferError" + }, + "type": "array" + } + }, + "type": "object" + }, "UndeleteAlertRequest": { "description": "A request to undelete a specific alert that was marked for deletion.", "id": "UndeleteAlertRequest", "properties": { "customerId": { - "description": "Optional. The unique identifier of the Google Workspace organization account of the customer the alert is associated with. Inferred from the caller identity if not provided.", + "description": "Optional. The unique identifier of the Google Workspace account of the customer the alert is associated with. The `customer_id` must have the initial \"C\" stripped (for example, `046psxkn`). Inferred from the caller identity if not provided. [Find your customer ID](https://support.google.com/cloudidentity/answer/10070793).", "type": "string" } }, @@ -1701,6 +1988,86 @@ } }, "type": "object" + }, + "VoiceMisconfiguration": { + "description": "An alert triggered when Google Voice configuration becomes invalid, generally due to an external entity being modified or deleted.", + "id": "VoiceMisconfiguration", + "properties": { + "entityName": { + "description": "Name of the entity whose configuration is now invalid.", + "type": "string" + }, + "entityType": { + "description": "Type of the entity whose configuration is now invalid.", + "enum": [ + "ENTITY_TYPE_UNSPECIFIED", + "AUTO_ATTENDANT", + "RING_GROUP" + ], + "enumDescriptions": [ + "Entity type wasn't set.", + "Invalid auto attendant.", + "Invalid ring group." + ], + "type": "string" + }, + "fixUri": { + "description": "Link that the admin can follow to fix the issue.", + "type": "string" + }, + "membersMisconfiguration": { + "$ref": "TransferMisconfiguration", + "description": "Issue(s) with members of a ring group." + }, + "transferMisconfiguration": { + "$ref": "TransferMisconfiguration", + "description": "Issue(s) with transferring or forwarding to an external entity." + }, + "voicemailMisconfiguration": { + "$ref": "VoicemailMisconfiguration", + "description": "Issue(s) with sending to voicemail." + } + }, + "type": "object" + }, + "VoicemailMisconfiguration": { + "description": "Issue(s) with sending to voicemail.", + "id": "VoicemailMisconfiguration", + "properties": { + "errors": { + "description": "Issue(s) with voicemail recipients.", + "items": { + "$ref": "VoicemailRecipientError" + }, + "type": "array" + } + }, + "type": "object" + }, + "VoicemailRecipientError": { + "description": "Issue(s) with a voicemail recipient.", + "id": "VoicemailRecipientError", + "properties": { + "email": { + "description": "Email address of the invalid recipient. This may be unavailable if the recipient was deleted.", + "type": "string" + }, + "invalidReason": { + "description": "Reason for the error.", + "enum": [ + "EMAIL_INVALID_REASON_UNSPECIFIED", + "OUT_OF_QUOTA", + "RECIPIENT_DELETED" + ], + "enumDescriptions": [ + "Reason wasn't specified.", + "User can't receive emails due to insufficient quota.", + "All recipients were deleted." + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/analyticsdata/v1beta/analyticsdata-api.json b/etc/api/analyticsdata/v1beta/analyticsdata-api.json index c96dbb6225..22858ee4c4 100644 --- a/etc/api/analyticsdata/v1beta/analyticsdata-api.json +++ b/etc/api/analyticsdata/v1beta/analyticsdata-api.json @@ -178,7 +178,7 @@ ], "parameters": { "property": { - "description": "A Google Analytics GA4 property identifier whose events are tracked. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). `property` should be the same value as in your `runReport` request. Example: properties/1234 Set the Property ID to 0 for compatibility checking on dimensions and metrics common to all properties. In this special mode, this method will not return custom dimensions and metrics.", + "description": "A Google Analytics GA4 property identifier whose events are tracked. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). `property` should be the same value as in your `runReport` request. Example: properties/1234", "location": "path", "pattern": "^properties/[^/]+$", "required": true, @@ -253,7 +253,7 @@ ] }, "runRealtimeReport": { - "description": "The Google Analytics Realtime API returns a customized report of realtime event data for your property. These reports show events and usage from the last 30 minutes.", + "description": "Returns a customized report of realtime event data for your property. Events appear in realtime reports seconds after they have been sent to the Google Analytics. Realtime reports show events and usage data for the periods of time ranging from the present moment to 30 minutes ago (up to 60 minutes for Google Analytics 360 properties). For a guide to constructing realtime requests & understanding responses, see [Creating a Realtime Report](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-basics).", "flatPath": "v1beta/properties/{propertiesId}:runRealtimeReport", "httpMethod": "POST", "id": "analyticsdata.properties.runRealtimeReport", @@ -282,7 +282,7 @@ ] }, "runReport": { - "description": "Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name.", + "description": "Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name. For a guide to constructing requests & understanding responses, see [Creating a Report](https://developers.google.com/analytics/devguides/reporting/data/v1/basics).", "flatPath": "v1beta/properties/{propertiesId}:runReport", "httpMethod": "POST", "id": "analyticsdata.properties.runReport", @@ -313,7 +313,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://analyticsdata.googleapis.com/", "schemas": { "ActiveMetricRestriction": { @@ -771,7 +771,7 @@ "description": "A filter for two values." }, "fieldName": { - "description": "The dimension name or metric name. Must be a name defined in dimensions or metrics.", + "description": "The dimension name or metric name. In most methods, dimensions & metrics can be used for the first time in this field. However in a RunPivotReportRequest, this field must be additionally specified by name in the RunPivotReportRequest's dimensions or metrics.", "type": "string" }, "inListFilter": { @@ -1139,7 +1139,7 @@ "type": "object" }, "OrderBy": { - "description": "The sort options.", + "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", "properties": { "desc": { @@ -1301,7 +1301,11 @@ }, "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 both the hourly and daily quotas." + "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." + }, + "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." } }, "type": "object" @@ -1498,7 +1502,7 @@ "properties": { "dimensionFilter": { "$ref": "FilterExpression", - "description": "The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter." + "description": "The filter clause of dimensions. Metrics cannot be used in this filter." }, "dimensions": { "description": "The dimensions requested and displayed.", @@ -1535,7 +1539,7 @@ }, "metricFilter": { "$ref": "FilterExpression", - "description": "The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter." + "description": "The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Dimensions cannot be used in this filter." }, "metrics": { "description": "The metrics requested and displayed.", diff --git a/etc/api/analyticsreporting/v4/analyticsreporting-api.json b/etc/api/analyticsreporting/v4/analyticsreporting-api.json index 18edfdac6c..f16c4b2301 100644 --- a/etc/api/analyticsreporting/v4/analyticsreporting-api.json +++ b/etc/api/analyticsreporting/v4/analyticsreporting-api.json @@ -155,7 +155,7 @@ } } }, - "revision": "20220215", + "revision": "20221104", "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 9216b5ac74..f3a3b03440 100644 --- a/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json +++ b/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json @@ -632,7 +632,7 @@ } }, "metadata": { - "description": "Updates reseller metadata associated with the device.", + "description": "Updates reseller metadata associated with the device. Android devices only.", "flatPath": "v1/partners/{partnersId}/devices/{devicesId}/metadata", "httpMethod": "POST", "id": "androiddeviceprovisioning.partners.devices.metadata", @@ -719,7 +719,7 @@ } }, "updateMetadataAsync": { - "description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations).", + "description": "Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long\u2011running batch operations](/zero-touch/guides/how-it-works#operations). Android Devices only.", "flatPath": "v1/partners/{partnersId}/devices:updateMetadataAsync", "httpMethod": "POST", "id": "androiddeviceprovisioning.partners.devices.updateMetadataAsync", @@ -825,7 +825,7 @@ } } }, - "revision": "20220305", + "revision": "20230115", "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", "schemas": { "ClaimDeviceRequest": { @@ -833,7 +833,7 @@ "id": "ClaimDeviceRequest", "properties": { "customerId": { - "description": "Required. The ID of the customer for whom the device is being claimed.", + "description": "The ID of the customer for whom the device is being claimed.", "format": "int64", "type": "string" }, @@ -845,6 +845,14 @@ "$ref": "DeviceMetadata", "description": "Optional. The metadata to attach to the device." }, + "googleWorkspaceCustomerId": { + "description": "The Google Workspace customer ID.", + "type": "string" + }, + "preProvisioningToken": { + "description": "Optional. Must and can only be set for Chrome OS devices.", + "type": "string" + }, "sectionType": { "description": "Required. The section type of the device's provisioning record.", "enum": [ @@ -858,6 +866,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 (go/simlock/profiles).", + "format": "int64", + "type": "string" } }, "type": "object" @@ -913,6 +926,11 @@ "description": "Required. The name of the company. For example _XYZ Corp_. Displayed to the company's employees in the zero-touch enrollment portal.", "type": "string" }, + "googleWorkspaceAccount": { + "$ref": "GoogleWorkspaceAccount", + "description": "Output only. The Google Workspace account associated with this customer. Only used for customer Companies.", + "readOnly": true + }, "languageCode": { "description": "Input only. The preferred locale of the customer represented as a BCP47 language code. This field is validated on input and requests containing unsupported language codes will be rejected. Supported language codes: Arabic (ar) Chinese (Hong Kong) (zh-HK) Chinese (Simplified) (zh-CN) Chinese (Traditional) (zh-TW) Czech (cs) Danish (da) Dutch (nl) English (UK) (en-GB) English (US) (en-US) Filipino (fil) Finnish (fi) French (fr) German (de) Hebrew (iw) Hindi (hi) Hungarian (hu) Indonesian (id) Italian (it) Japanese (ja) Korean (ko) Norwegian (Bokmal) (no) Polish (pl) Portuguese (Brazil) (pt-BR) Portuguese (Portugal) (pt-PT) Russian (ru) Spanish (es) Spanish (Latin America) (es-419) Swedish (sv) Thai (th) Turkish (tr) Ukrainian (uk) Vietnamese (vi)", "type": "string" @@ -1116,7 +1134,7 @@ "type": "object" }, "Device": { - "description": "An Android device registered for zero-touch enrollment.", + "description": "An Android or Chrome OS device registered for zero-touch enrollment.", "id": "Device", "properties": { "claims": { @@ -1169,6 +1187,10 @@ ], "type": "string" }, + "googleWorkspaceCustomerId": { + "description": "The ID of the Google Workspace account that owns the Chrome OS device.", + "type": "string" + }, "ownerCompanyId": { "description": "The ID of the Customer that purchased the device.", "format": "int64", @@ -1211,12 +1233,30 @@ "description": "Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).", "id": "DeviceIdentifier", "properties": { + "chromeOsAttestedDeviceId": { + "description": "An identifier provided by OEMs, carried through the production and sales process. Only applicable to Chrome OS devices.", + "type": "string" + }, + "deviceType": { + "description": "The type of the device", + "enum": [ + "DEVICE_TYPE_UNSPECIFIED", + "DEVICE_TYPE_ANDROID", + "DEVICE_TYPE_CHROME_OS" + ], + "enumDescriptions": [ + "Device type is not specified.", + "Android device", + "Chrome OS device" + ], + "type": "string" + }, "imei": { "description": "The device\u2019s IMEI number. Validated on input.", "type": "string" }, "manufacturer": { - "description": "The device manufacturer\u2019s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).", + "description": "The device manufacturer\u2019s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [Android manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).", "type": "string" }, "meid": { @@ -1224,7 +1264,7 @@ "type": "string" }, "model": { - "description": "The device model's name. Matches the device's built-in value returned from `android.os.Build.MODEL`. Allowed values are listed in [models](/zero-touch/resources/manufacturer-names#model-names).", + "description": "The device model's name. Allowed values are listed in [Android models](/zero-touch/resources/manufacturer-names#model-names) and [Chrome OS models](https://support.google.com/chrome/a/answer/10130175#identify_compatible).", "type": "string" }, "serialNumber": { @@ -1290,7 +1330,7 @@ "type": "string" }, "progress": { - "description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesnt always mean the operation completed\u2014check for the inclusion of a `done` field.", + "description": "The processing progress of the operation. Measured as a number from 0 to 100. A value of 10O doesn't always mean the operation completed\u2014check for the inclusion of a `done` field.", "format": "int32", "type": "integer" } @@ -1339,7 +1379,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1392,13 +1432,20 @@ "id": "FindDevicesByOwnerRequest", "properties": { "customerId": { - "description": "Required. The list of customer IDs to search for.", + "description": "The list of customer IDs to search for.", "items": { "format": "int64", "type": "string" }, "type": "array" }, + "googleWorkspaceCustomerId": { + "description": "The list of IDs of Google Workspace accounts to search for.", + "items": { + "type": "string" + }, + "type": "array" + }, "limit": { "description": "Required. The maximum number of devices to show in a page of results. Must be between 1 and 100 inclusive.", "format": "int64", @@ -1448,6 +1495,25 @@ }, "type": "object" }, + "GoogleWorkspaceAccount": { + "description": "A Google Workspace customer.", + "id": "GoogleWorkspaceAccount", + "properties": { + "customerId": { + "description": "Required. The customer ID.", + "type": "string" + }, + "preProvisioningTokens": { + "description": "Output only. The pre-provisioning tokens previously used to claim devices.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListCustomersResponse": { "description": "Response message of all customers related to this partner.", "id": "ListCustomersResponse", @@ -1580,7 +1646,7 @@ "id": "PartnerClaim", "properties": { "customerId": { - "description": "Required. The ID of the customer for whom the device is being claimed.", + "description": "The ID of the customer for whom the device is being claimed.", "format": "int64", "type": "string" }, @@ -1592,6 +1658,14 @@ "$ref": "DeviceMetadata", "description": "Required. The metadata to attach to the device at claim." }, + "googleWorkspaceCustomerId": { + "description": "The Google Workspace customer ID.", + "type": "string" + }, + "preProvisioningToken": { + "description": "Optional. Must and can only be set for Chrome OS devices.", + "type": "string" + }, "sectionType": { "description": "Required. The section type of the device's provisioning record.", "enum": [ @@ -1676,7 +1750,9 @@ "SINGLE_DEVICE_STATUS_PERMISSION_DENIED", "SINGLE_DEVICE_STATUS_INVALID_DEVICE_IDENTIFIER", "SINGLE_DEVICE_STATUS_INVALID_SECTION_TYPE", - "SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS" + "SINGLE_DEVICE_STATUS_SECTION_NOT_YOURS", + "SINGLE_DEVICE_STATUS_INVALID_TOKEN", + "SINGLE_DEVICE_STATUS_REVOKED_TOKEN" ], "enumDescriptions": [ "Invalid code. Shouldn't be used.", @@ -1686,7 +1762,9 @@ "Permission denied.", "Invalid device identifier.", "Invalid section type.", - "This section is claimed by another company." + "This section is claimed by another company.", + "Invalid pre-provisioning token.", + "Revoked pre-provisioning token." ], "type": "string" } diff --git a/etc/api/androidenterprise/v1/androidenterprise-api.json b/etc/api/androidenterprise/v1/androidenterprise-api.json index 583d46a411..1d99e81f45 100644 --- a/etc/api/androidenterprise/v1/androidenterprise-api.json +++ b/etc/api/androidenterprise/v1/androidenterprise-api.json @@ -383,6 +383,45 @@ "https://www.googleapis.com/auth/androidenterprise" ] }, + "createEnrollmentToken": { + "description": "Returns a token for device enrollment. The DPC can encode this token within the QR/NFC/zero-touch enrollment payload or fetch it before calling the on-device API to authenticate the user. The token can be generated for each device or reused across multiple devices.", + "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/createEnrollmentToken", + "httpMethod": "POST", + "id": "androidenterprise.enterprises.createEnrollmentToken", + "parameterOrder": [ + "enterpriseId" + ], + "parameters": { + "deviceType": { + "description": "Whether it\u2019s a dedicated device or a knowledge worker device.", + "enum": [ + "unknown", + "dedicatedDevice", + "knowledgeWorker" + ], + "enumDescriptions": [ + "This value is unused", + "This device is a dedicated device.", + "This device is required to have an authenticated user." + ], + "location": "query", + "type": "string" + }, + "enterpriseId": { + "description": "The ID of the enterprise.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidenterprise/v1/enterprises/{enterpriseId}/createEnrollmentToken", + "response": { + "$ref": "CreateEnrollmentTokenResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidenterprise" + ] + }, "createWebToken": { "description": "Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/createWebToken", @@ -575,7 +614,7 @@ "parameterOrder": [], "parameters": { "requestMode": { - "description": "The request mode for pulling notifications. Specifying waitForNotifications will cause the request to block and wait until one or more notifications are present, or return an empty notification list if no notifications are present after some time. Speciying returnImmediately will cause the request to immediately return the pending notifications, or an empty list if no notifications are present. If omitted, defaults to waitForNotifications.", + "description": "The request mode for pulling notifications. Specifying waitForNotifications will cause the request to block and wait until one or more notifications are present, or return an empty notification list if no notifications are present after some time. Specifying returnImmediately will cause the request to immediately return the pending notifications, or an empty list if no notifications are present. If omitted, defaults to waitForNotifications.", "enum": [ "waitForNotifications", "returnImmediately" @@ -700,7 +739,7 @@ "entitlements": { "methods": { "delete": { - "description": "Removes an entitlement to an app for a user.", + "description": "Removes an entitlement to an app for a user. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/entitlements/{entitlementId}", "httpMethod": "DELETE", "id": "androidenterprise.entitlements.delete", @@ -735,7 +774,7 @@ ] }, "get": { - "description": "Retrieves details of an entitlement.", + "description": "Retrieves details of an entitlement. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/entitlements/{entitlementId}", "httpMethod": "GET", "id": "androidenterprise.entitlements.get", @@ -773,7 +812,7 @@ ] }, "list": { - "description": "Lists all entitlements for the specified user. Only the ID is set.", + "description": "Lists all entitlements for the specified user. Only the ID is set. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/entitlements", "httpMethod": "GET", "id": "androidenterprise.entitlements.list", @@ -804,7 +843,7 @@ ] }, "update": { - "description": "Adds or updates an entitlement to an app for a user.", + "description": "Adds or updates an entitlement to an app for a user. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/entitlements/{entitlementId}", "httpMethod": "PUT", "id": "androidenterprise.entitlements.update", @@ -854,7 +893,7 @@ "grouplicenses": { "methods": { "get": { - "description": "Retrieves details of an enterprise's group license for a product.", + "description": "Retrieves details of an enterprise's group license for a product. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/groupLicenses/{groupLicenseId}", "httpMethod": "GET", "id": "androidenterprise.grouplicenses.get", @@ -885,7 +924,7 @@ ] }, "list": { - "description": "Retrieves IDs of all products for which the enterprise has a group license.", + "description": "Retrieves IDs of all products for which the enterprise has a group license. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/groupLicenses", "httpMethod": "GET", "id": "androidenterprise.grouplicenses.list", @@ -913,7 +952,7 @@ "grouplicenseusers": { "methods": { "list": { - "description": "Retrieves the IDs of the users who have been granted entitlements under the license.", + "description": "Retrieves the IDs of the users who have been granted entitlements under the license. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/groupLicenses/{groupLicenseId}/users", "httpMethod": "GET", "id": "androidenterprise.grouplicenseusers.list", @@ -1519,7 +1558,7 @@ "products": { "methods": { "approve": { - "description": " Approves the specified product and the relevant app permissions, if any. The maximum number of products that you can approve per enterprise customer is 1,000. To learn how to use managed Google Play to design and create a store layout to display approved products to your users, see Store Layout Design. ", + "description": " Approves the specified product and the relevant app permissions, if any. The maximum number of products that you can approve per enterprise customer is 1,000. To learn how to use managed Google Play to design and create a store layout to display approved products to your users, see Store Layout Design. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations. ", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/products/{productId}/approve", "httpMethod": "POST", "id": "androidenterprise.products.approve", @@ -1550,7 +1589,7 @@ ] }, "generateApprovalUrl": { - "description": "Generates a URL that can be rendered in an iframe to display the permissions (if any) of a product. An enterprise admin must view these permissions and accept them on behalf of their organization in order to approve that product. Admins should accept the displayed permissions by interacting with a separate UI element in the EMM console, which in turn should trigger the use of this URL as the approvalUrlInfo.approvalUrl property in a Products.approve call to approve the product. This URL can only be used to display permissions for up to 1 day.", + "description": "Generates a URL that can be rendered in an iframe to display the permissions (if any) of a product. An enterprise admin must view these permissions and accept them on behalf of their organization in order to approve that product. Admins should accept the displayed permissions by interacting with a separate UI element in the EMM console, which in turn should trigger the use of this URL as the approvalUrlInfo.approvalUrl property in a Products.approve call to approve the product. This URL can only be used to display permissions for up to 1 day. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations. ", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/products/{productId}/generateApprovalUrl", "httpMethod": "POST", "id": "androidenterprise.products.generateApprovalUrl", @@ -1689,7 +1728,7 @@ ] }, "list": { - "description": "Finds approved products that match a query, or all approved products if there is no query.", + "description": "Finds approved products that match a query, or all approved products if there is no query. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations. ", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/products", "httpMethod": "GET", "id": "androidenterprise.products.list", @@ -1739,7 +1778,7 @@ ] }, "unapprove": { - "description": "Unapproves the specified product (and the relevant app permissions, if any)", + "description": "Unapproves the specified product (and the relevant app permissions, if any) **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/products/{productId}/unapprove", "httpMethod": "POST", "id": "androidenterprise.products.unapprove", @@ -2275,7 +2314,7 @@ ] }, "getAvailableProductSet": { - "description": "Retrieves the set of products a user is entitled to access.", + "description": "Retrieves the set of products a user is entitled to access. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/availableProductSet", "httpMethod": "GET", "id": "androidenterprise.users.getAvailableProductSet", @@ -2392,7 +2431,7 @@ ] }, "setAvailableProductSet": { - "description": "Modifies the set of products that a user is entitled to access (referred to as *whitelisted* products). Only products that are approved or products that were previously approved (products with revoked approval) can be whitelisted.", + "description": "Modifies the set of products that a user is entitled to access (referred to as *whitelisted* products). Only products that are approved or products that were previously approved (products with revoked approval) can be whitelisted. **Note:** This item has been deprecated. New integrations cannot use this method and can refer to our new recommendations.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/users/{userId}/availableProductSet", "httpMethod": "PUT", "id": "androidenterprise.users.setAvailableProductSet", @@ -2610,7 +2649,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://androidenterprise.googleapis.com/", "schemas": { "Administrator": { @@ -3099,6 +3138,17 @@ }, "type": "object" }, + "CreateEnrollmentTokenResponse": { + "description": "Response message for create enrollment token.", + "id": "CreateEnrollmentTokenResponse", + "properties": { + "enrollmentToken": { + "description": "Enrollment token.", + "type": "string" + } + }, + "type": "object" + }, "Device": { "description": "A Devices resource represents a mobile device managed by the EMM and belonging to a specific enterprise user.", "id": "Device", @@ -3215,6 +3265,11 @@ }, "type": "array" }, + "googleAuthenticationSettings": { + "$ref": "GoogleAuthenticationSettings", + "description": "Output only. Settings for Google-provided user authentication.", + "readOnly": true + }, "id": { "description": "The unique ID for the enterprise.", "type": "string" @@ -3241,6 +3296,17 @@ }, "type": "object" }, + "EnterpriseAuthenticationAppLinkConfig": { + "description": "An authentication URL configuration for the authenticator app of an identity provider.", + "id": "EnterpriseAuthenticationAppLinkConfig", + "properties": { + "uri": { + "description": "An authentication url.", + "type": "string" + } + }, + "type": "object" + }, "EnterprisesListResponse": { "id": "EnterprisesListResponse", "properties": { @@ -3306,6 +3372,41 @@ }, "type": "object" }, + "GoogleAuthenticationSettings": { + "description": "Contains settings for Google-provided user authentication.", + "id": "GoogleAuthenticationSettings", + "properties": { + "dedicatedDevicesAllowed": { + "description": "Whether dedicated devices are allowed.", + "enum": [ + "dedicatedDevicesAllowedUnspecified", + "disallowed", + "allowed" + ], + "enumDescriptions": [ + "This value is unused.", + "Dedicated devices are not allowed.", + "Dedicated devices are allowed." + ], + "type": "string" + }, + "googleAuthenticationRequired": { + "description": "Whether Google authentication is required.", + "enum": [ + "googleAuthenticationRequiredUnspecified", + "notRequired", + "required" + ], + "enumDescriptions": [ + "This value is unused.", + "Google authentication is not required.", + "User is required to be successfully authenticated by Google." + ], + "type": "string" + } + }, + "type": "object" + }, "GroupLicense": { "description": "Group license objects allow you to keep track of licenses (called entitlements) for both free and paid apps. For a free app, a group license is created when an enterprise admin first approves the product in Google Play or when the first entitlement for the product is created for a user via the API. For a paid app, a group license object is only created when an enterprise admin purchases the product in Google Play for the first time. Use the API to query group licenses. A Grouplicenses resource includes the total number of licenses purchased (paid apps only) and the total number of licenses currently in use. In other words, the total number of Entitlements that exist for the product. Only one group license object is created per product and group license objects are never deleted. If a product is unapproved, its group license remains. This allows enterprise admins to keep track of any remaining entitlements for the product.", "id": "GroupLicense", @@ -3874,7 +3975,7 @@ "id": "Policy", "properties": { "autoUpdatePolicy": { - "description": "Deprecated. Use autoUpdateMode instead. 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.", + "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.", "enum": [ "autoUpdatePolicyUnspecified", "choiceToTheUser", @@ -3937,6 +4038,10 @@ "description": "A Products resource represents an app in the Google Play store that is available to at least some users in the enterprise. (Some apps are restricted to a single enterprise, and no information about them is made available outside that enterprise.) The information provided for each product (localized name, icon, link to the full Google Play details page) is intended to allow a basic representation of the product within an EMM user interface.", "id": "Product", "properties": { + "appRestrictionsSchema": { + "$ref": "AppRestrictionsSchema", + "description": "The app restriction schema" + }, "appTracks": { "description": "The tracks visible to the enterprise.", "items": { @@ -4232,6 +4337,13 @@ ], "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.", + "items": { + "$ref": "EnterpriseAuthenticationAppLinkConfig" + }, + "type": "array" + }, "managedConfiguration": { "$ref": "ManagedConfiguration", "description": "The managed configuration for the product." diff --git a/etc/api/androidmanagement/v1/androidmanagement-api.json b/etc/api/androidmanagement/v1/androidmanagement-api.json index 5dd58c4806..42da249bec 100644 --- a/etc/api/androidmanagement/v1/androidmanagement-api.json +++ b/etc/api/androidmanagement/v1/androidmanagement-api.json @@ -115,12 +115,12 @@ "parameterOrder": [], "parameters": { "agreementAccepted": { - "description": "Whether the enterprise admin has seen and agreed to the managed Google Play Agreement (https://www.android.com/enterprise/terms/). Always set this to true when creating an EMM-managed enterprise. Do not create the enterprise until the admin has viewed and accepted the agreement.", + "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" }, "enterpriseToken": { - "description": "The enterprise token appended to the callback URL. Only set this when creating a customer-managed enterprise.", + "description": "The enterprise token appended to the callback URL. Set this when creating a customer-managed enterprise (https://developers.google.com/android/management/create-enterprise#customer-managed_enterprises) and not when creating a deprecated EMM-managed enterprise (https://developers.google.com/android/management/create-enterprise#emm-managed_enterprises).", "location": "query", "type": "string" }, @@ -130,7 +130,7 @@ "type": "string" }, "signupUrlName": { - "description": "The name of the SignupUrl used to sign up for the enterprise. Only set this when creating a customer-managed enterprise.", + "description": "The name of the SignupUrl used to sign up for the enterprise. Set this when creating a customer-managed enterprise (https://developers.google.com/android/management/create-enterprise#customer-managed_enterprises) and not when creating a deprecated EMM-managed enterprise (https://developers.google.com/android/management/create-enterprise#emm-managed_enterprises).", "location": "query", "type": "string" } @@ -314,7 +314,7 @@ "devices": { "methods": { "delete": { - "description": "Deletes a device. This operation wipes the device.", + "description": "Deletes a device. This operation wipes the device. Deleted devices do not show up in enterprises.devices.list calls and a 404 is returned from enterprises.devices.get.", "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}", "httpMethod": "DELETE", "id": "androidmanagement.enterprises.devices.delete", @@ -360,7 +360,7 @@ ] }, "get": { - "description": "Gets a device.", + "description": "Gets a device. Deleted devices will respond with a 404 error.", "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}", "httpMethod": "GET", "id": "androidmanagement.enterprises.devices.get", @@ -413,7 +413,7 @@ ] }, "list": { - "description": "Lists devices for a given enterprise.", + "description": "Lists devices for a given enterprise. Deleted devices are not returned in the response.", "flatPath": "v1/enterprises/{enterprisesId}/devices", "httpMethod": "GET", "id": "androidmanagement.enterprises.devices.list", @@ -609,7 +609,7 @@ "enrollmentTokens": { "methods": { "create": { - "description": "Creates an enrollment token for a given enterprise.", + "description": "Creates an enrollment token for a given enterprise. It's up to the caller's responsibility to manage the lifecycle of newly created tokens and deleting them when they're not intended to be used anymore. Once an enrollment token has been created, it's not possible to retrieve the token's content anymore using AM API. It is recommended for EMMs to securely store the token if it's intended to be reused.", "flatPath": "v1/enterprises/{enterprisesId}/enrollmentTokens", "httpMethod": "POST", "id": "androidmanagement.enterprises.enrollmentTokens.create", @@ -660,6 +660,67 @@ "scopes": [ "https://www.googleapis.com/auth/androidmanagement" ] + }, + "get": { + "description": "Gets an active, unexpired enrollment token. Only a partial view of EnrollmentToken is returned: all the fields but name and expiration_timestamp are empty. This method is meant to help manage active enrollment tokens lifecycle. For security reasons, it's recommended to delete active enrollment tokens as soon as they're not intended to be used anymore.", + "flatPath": "v1/enterprises/{enterprisesId}/enrollmentTokens/{enrollmentTokensId}", + "httpMethod": "GET", + "id": "androidmanagement.enterprises.enrollmentTokens.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the enrollment token in the form enterprises/{enterpriseId}/enrollmentTokens/{enrollmentTokenId}.", + "location": "path", + "pattern": "^enterprises/[^/]+/enrollmentTokens/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EnrollmentToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] + }, + "list": { + "description": "Lists active, unexpired enrollment tokens for a given enterprise. The list items contain only a partial view of EnrollmentToken: all the fields but name and expiration_timestamp are empty. This method is meant to help manage active enrollment tokens lifecycle. For security reasons, it's recommended to delete active enrollment tokens as soon as they're not intended to be used anymore.", + "flatPath": "v1/enterprises/{enterprisesId}/enrollmentTokens", + "httpMethod": "GET", + "id": "androidmanagement.enterprises.enrollmentTokens.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The requested page size. The service may return fewer than this value. If unspecified, at most 10 items 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 token identifying a page of results returned by the server.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the enterprise in the form enterprises/{enterpriseId}.", + "location": "path", + "pattern": "^enterprises/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/enrollmentTokens", + "response": { + "$ref": "ListEnrollmentTokensResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] } } }, @@ -1004,9 +1065,26 @@ } } }, - "revision": "20220302", + "revision": "20230119", "rootUrl": "https://androidmanagement.googleapis.com/", "schemas": { + "AdbShellCommandEvent": { + "description": "A shell command was issued over ADB via \u201cadb shell command\u201d.", + "id": "AdbShellCommandEvent", + "properties": { + "shellCmd": { + "description": "Shell command that was issued over ADB via \"adb shell command\". Redacted to empty string on organization-owned managed profile devices.", + "type": "string" + } + }, + "type": "object" + }, + "AdbShellInteractiveEvent": { + "description": "An ADB interactive shell was opened via \u201cadb shell\u201d. Intentionally empty.", + "id": "AdbShellInteractiveEvent", + "properties": {}, + "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.", "id": "AdvancedSecurityOverrides", @@ -1106,6 +1184,58 @@ }, "type": "object" }, + "AppProcessInfo": { + "description": "Information about a process. It contains process name, start time, app Uid, app Pid, seinfo tag, hash of the base APK.", + "id": "AppProcessInfo", + "properties": { + "apkSha256Hash": { + "description": "SHA-256 hash of the base APK, in hexadecimal format.", + "type": "string" + }, + "packageNames": { + "description": "Package names of all packages that are associated with the particular user ID. In most cases, this will be a single package name, the package that has been assigned that user ID. If multiple application share a UID then all packages sharing UID will be included.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pid": { + "description": "Process ID.", + "format": "int32", + "type": "integer" + }, + "processName": { + "description": "Process name.", + "type": "string" + }, + "seinfo": { + "description": "SELinux policy info.", + "type": "string" + }, + "startTime": { + "description": "Process start time.", + "format": "google-datetime", + "type": "string" + }, + "uid": { + "description": "UID of the package.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AppProcessStartEvent": { + "description": "An app process was started. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "AppProcessStartEvent", + "properties": { + "processInfo": { + "$ref": "AppProcessInfo", + "description": "Information about a process." + } + }, + "type": "object" + }, "AppTrackInfo": { "description": "Id to name association of a app track.", "id": "AppTrackInfo", @@ -1126,11 +1256,11 @@ "id": "AppVersion", "properties": { "production": { - "description": "True if this version is a production track.", + "description": "If the value is True, it indicates that this version is a production track.", "type": "boolean" }, "trackIds": { - "description": "Track ids that the app version is published in. This doesn't include the production track (see production instead).", + "description": "Track identifiers that the app version is published in. This does not include the production track (see production instead).", "items": { "type": "string" }, @@ -1257,7 +1387,7 @@ "type": "string" }, "iconUrl": { - "description": "A link to an image that can be used as an icon for the app. This image is suitable for use at up to 512px x 512px", + "description": "A link to an image that can be used as an icon for the app. This image is suitable for use up to a pixel size of 512 x 512.", "type": "string" }, "managedProperties": { @@ -1299,7 +1429,7 @@ "type": "array" }, "smallIconUrl": { - "description": "A link to a smaller image that can be used as an icon for the app. This image is suitable for use at up to 128px x 128px.", + "description": "A link to a smaller image that can be used as an icon for the app. This image is suitable for use up to a pixel size of 128 x 128.", "type": "string" }, "title": { @@ -1383,6 +1513,20 @@ }, "type": "array" }, + "alwaysOnVpnLockdownExemption": { + "description": "Specifies whether the app is allowed networking when the VPN is not connected and alwaysOnVpnPackage.lockdownEnabled is enabled. If set to VPN_LOCKDOWN_ENFORCED, the app is not allowed networking, and if set to VPN_LOCKDOWN_EXEMPTION, the app is allowed networking. Only supported on devices running Android 10 and above. If this is not supported by the device, the device will contain a NonComplianceDetail with non_compliance_reason set to API_LEVEL and a fieldPath. If this is not applicable to the app, the device will contain a NonComplianceDetail with non_compliance_reason set to UNSUPPORTED and a fieldPath. The fieldPath is set to applications[i].alwaysOnVpnLockdownExemption, where i is the index of the package in the applications policy.", + "enum": [ + "ALWAYS_ON_VPN_LOCKDOWN_EXEMPTION_UNSPECIFIED", + "VPN_LOCKDOWN_ENFORCED", + "VPN_LOCKDOWN_EXEMPTION" + ], + "enumDescriptions": [ + "Unspecified. Defaults to VPN_LOCKDOWN_ENFORCED.", + "The app respects the always-on VPN lockdown setting.", + "The app is exempt from the always-on VPN lockdown setting." + ], + "type": "string" + }, "autoUpdateMode": { "description": "Controls the auto-update mode for the app.", "enum": [ @@ -1439,7 +1583,9 @@ "BLOCK_UNINSTALL", "PERMISSION_GRANT", "PACKAGE_ACCESS", - "ENABLE_SYSTEM_APP" + "ENABLE_SYSTEM_APP", + "NETWORK_ACTIVITY_LOGS", + "SECURITY_LOGS" ], "enumDescriptions": [ "No delegation scope specified.", @@ -1448,7 +1594,9 @@ "Grants access to blocking uninstallation.", "Grants access to permission policy and permission grant state.", "Grants access to package access state.", - "Grants access for enabling system apps." + "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." ], "type": "string" }, @@ -1485,7 +1633,7 @@ "type": "string" }, "lockTaskAllowed": { - "description": "Whether the app is allowed to lock itself in full-screen mode. DEPRECATED. Use InstallType KIOSK or kioskCustomLauncherEnabled to to configure a dedicated device.", + "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" }, "managedConfiguration": { @@ -1515,6 +1663,20 @@ "$ref": "PermissionGrant" }, "type": "array" + }, + "workProfileWidgets": { + "description": "Specifies whether the app installed in the work profile is allowed to add widgets to the home screen.", + "enum": [ + "WORK_PROFILE_WIDGETS_UNSPECIFIED", + "WORK_PROFILE_WIDGETS_ALLOWED", + "WORK_PROFILE_WIDGETS_DISALLOWED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to work_profile_widgets_default", + "Work profile widgets are allowed. This means the application will be able to add widgets to the home screen.", + "Work profile widgets are disallowed. This means the application will not be able to add widgets to the home screen." + ], + "type": "string" } }, "type": "object" @@ -1544,7 +1706,7 @@ "type": "string" }, "events": { - "description": "List of app events. The most recent 20 events are stored in the list.", + "description": "The list of app events which have occurred in the last 30 hours.", "items": { "$ref": "ApplicationEvent" }, @@ -1613,6 +1775,33 @@ }, "type": "object" }, + "BatchUsageLogEvents": { + "description": "Batched event logs of events from the device.", + "id": "BatchUsageLogEvents", + "properties": { + "device": { + "description": "The name of the device in the form \u2018enterprises/{enterpriseId}/devices/{deviceId}\u2019", + "type": "string" + }, + "retrievalTime": { + "description": "The device timestamp when the batch of events were collected from the device.", + "format": "google-datetime", + "type": "string" + }, + "usageLogEvents": { + "description": "The list of UsageLogEvent that were reported by the device, sorted chronologically by the event time.", + "items": { + "$ref": "UsageLogEvent" + }, + "type": "array" + }, + "user": { + "description": "The resource name of the user that owns this device in the form \u2018enterprises/{enterpriseId}/users/{userId}\u2019.", + "type": "string" + } + }, + "type": "object" + }, "BlockAction": { "description": "An action to block access to apps and data on a fully managed device or in a work profile. This action also triggers a device or work profile to displays a user-facing notification with information (where possible) on how to correct the compliance issue. Note: wipeAction must also be specified.", "id": "BlockAction", @@ -1639,6 +1828,57 @@ }, "type": "object" }, + "CertAuthorityInstalledEvent": { + "description": "A new root certificate was installed into the system's trusted credential storage. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "CertAuthorityInstalledEvent", + "properties": { + "certificate": { + "description": "Subject of the certificate.", + "type": "string" + }, + "success": { + "description": "Whether the installation event succeeded.", + "type": "boolean" + }, + "userId": { + "description": "The user in which the certificate install event happened. Only available for devices running Android 11 and above.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CertAuthorityRemovedEvent": { + "description": "A root certificate was removed from the system's trusted credential storage. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "CertAuthorityRemovedEvent", + "properties": { + "certificate": { + "description": "Subject of the certificate.", + "type": "string" + }, + "success": { + "description": "Whether the removal succeeded.", + "type": "boolean" + }, + "userId": { + "description": "The user in which the certificate removal event occurred. Only available for devices running Android 11 and above.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CertValidationFailureEvent": { + "description": "An X.509v3 certificate failed to validate, currently this validation is performed on the Wi-FI access point and failure may be due to a mismatch upon server certificate validation. However it may in the future include other validation events of an X.509v3 certificate.", + "id": "CertValidationFailureEvent", + "properties": { + "failureReason": { + "description": "The reason why certification validation failed.", + "type": "string" + } + }, + "type": "object" + }, "ChoosePrivateKeyRule": { "description": "Controls apps' access to private keys. The rule determines which private key, if any, Android Device Policy grants to the specified app. Access is granted either when the app calls KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) (or any overloads) to request a private key alias for a given URL, or for rules that are not URL-specific (that is, if urlPattern is not set, or set to the empty string or .*) on Android 11 and above, directly so that the app can call KeyChain.getPrivateKey (https://developer.android.com/reference/android/security/KeyChain#getPrivateKey%28android.content.Context,%20java.lang.String%29), without first having to call KeyChain.choosePrivateKeyAlias.When an app calls KeyChain.choosePrivateKeyAlias if more than one choosePrivateKeyRules matches, the last matching rule defines which key alias to return.", "id": "ChoosePrivateKeyRule", @@ -1661,10 +1901,47 @@ }, "type": "object" }, + "ClearAppsDataParams": { + "description": "Parameters associated with the CLEAR_APP_DATA command to clear the data of specified apps from the device.", + "id": "ClearAppsDataParams", + "properties": { + "packageNames": { + "description": "The package names of the apps whose data will be cleared when the command is executed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClearAppsDataStatus": { + "description": "Status of the CLEAR_APP_DATA command to clear the data of specified apps from the device.", + "id": "ClearAppsDataStatus", + "properties": { + "results": { + "additionalProperties": { + "$ref": "PerAppResult" + }, + "description": "The per-app results, a mapping from package names to the respective clearing result.", + "type": "object" + } + }, + "type": "object" + }, "Command": { "description": "A command.", "id": "Command", "properties": { + "clearAppsDataParams": { + "$ref": "ClearAppsDataParams", + "description": "Parameters for the CLEAR_APP_DATA command to clear the data of specified apps from the device. See ClearAppsDataParams. If this is set, then it is suggested that type should not be set. In this case, the server automatically sets it to CLEAR_APP_DATA. It is also acceptable to explicitly set type to CLEAR_APP_DATA." + }, + "clearAppsDataStatus": { + "$ref": "ClearAppsDataStatus", + "description": "Output only. Status of the CLEAR_APP_DATA command to clear the data of specified apps from the device. See ClearAppsDataStatus.", + "readOnly": true + }, "createTime": { "description": "The timestamp at which the command was created. The timestamp is automatically generated by the server.", "format": "google-datetime", @@ -1725,14 +2002,16 @@ "LOCK", "RESET_PASSWORD", "REBOOT", - "RELINQUISH_OWNERSHIP" + "RELINQUISH_OWNERSHIP", + "CLEAR_APP_DATA" ], "enumDescriptions": [ "This value is disallowed.", "Lock the device, as if the lock screen timeout had expired.", "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." + "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." ], "type": "string" }, @@ -1790,6 +2069,26 @@ }, "type": "object" }, + "ConnectEvent": { + "description": "A TCP connect event was initiated through the standard network stack.", + "id": "ConnectEvent", + "properties": { + "destinationIpAddress": { + "description": "The destination IP address of the connect call.", + "type": "string" + }, + "destinationPort": { + "description": "The destination port of the connect call.", + "format": "int32", + "type": "integer" + }, + "packageName": { + "description": "The package name of the UID that performed the connect call.", + "type": "string" + } + }, + "type": "object" + }, "ContactInfo": { "description": "Contact details for managed Google Play enterprises.", "id": "ContactInfo", @@ -1894,12 +2193,37 @@ "Default. Allows work profile contacts to appear in personal profile contact searches and incoming calls" ], "type": "string" + }, + "workProfileWidgetsDefault": { + "description": "Specifies the default behaviour for work profile widgets. If the policy does not specify work_profile_widgets for a specific application, it will behave according to the value specified here.", + "enum": [ + "WORK_PROFILE_WIDGETS_DEFAULT_UNSPECIFIED", + "WORK_PROFILE_WIDGETS_DEFAULT_ALLOWED", + "WORK_PROFILE_WIDGETS_DEFAULT_DISALLOWED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to WORK_PROFILE_WIDGETS_DEFAULT_DISALLOWED.", + "Work profile widgets are allowed by default. This means that if the policy does not specify work_profile_widgets as WORK_PROFILE_WIDGETS_DISALLOWED for the application, it will be able to add widgets to the home screen.", + "Work profile widgets are disallowed by default. This means that if the policy does not specify work_profile_widgets as WORK_PROFILE_WIDGETS_ALLOWED for the application, it will be unable to add widgets to the home screen." + ], + "type": "string" + } + }, + "type": "object" + }, + "CryptoSelfTestCompletedEvent": { + "description": "Validates whether Android\u2019s built-in cryptographic library (BoringSSL) is valid. Should always succeed on device boot, if it fails, the device should be considered untrusted.", + "id": "CryptoSelfTestCompletedEvent", + "properties": { + "success": { + "description": "Whether the test succeeded.", + "type": "boolean" } }, "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 (e.g., an anniversary) A year on its own, with a zero month and a zero day A year and month, with a zero day (e.g., a credit card expiration date)Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -2255,8 +2579,35 @@ }, "type": "object" }, + "DnsEvent": { + "description": "A DNS lookup event was initiated through the standard network stack.", + "id": "DnsEvent", + "properties": { + "hostname": { + "description": "The hostname that was looked up.", + "type": "string" + }, + "ipAddresses": { + "description": "The (possibly truncated) list of the IP addresses returned for DNS lookup (max 10 IPv4 or IPv6 addresses).", + "items": { + "type": "string" + }, + "type": "array" + }, + "packageName": { + "description": "The package name of the UID that performed the DNS lookup.", + "type": "string" + }, + "totalIpAddressesReturned": { + "description": "The number of IP addresses returned from the DNS lookup event. May be higher than the amount of ip_addresses if there were too many addresses to log.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" @@ -2284,7 +2635,7 @@ "type": "string" }, "duration": { - "description": "The length of time the enrollment token is valid, ranging from 1 minute to 90 days. If not specified, the default duration is 1 hour.", + "description": "The length of time the enrollment token is valid, ranging from 1 minute to Durations.MAX_VALUE (https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/Durations.html#MAX_VALUE), approximately 10,000 years. If not specified, the default duration is 1 hour. Please note that if requested duration causes the resulting expiration_timestamp to exceed Timestamps.MAX_VALUE (https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/util/Timestamps.html#MAX_VALUE), then expiration_timestamp is coerced to Timestamps.MAX_VALUE.", "format": "google-duration", "type": "string" }, @@ -2340,14 +2691,16 @@ "ENROLLMENT", "COMPLIANCE_REPORT", "STATUS_REPORT", - "COMMAND" + "COMMAND", + "USAGE_LOGS" ], "enumDescriptions": [ "This value is ignored.", "A notification sent when a device enrolls.", "Deprecated.", "A notification sent when a device issues a status report.", - "A notification sent when a device command has completed." + "A notification sent when a device command has completed.", + "A notification sent when device sends BatchUsageLogEvents." ], "type": "string" }, @@ -2371,7 +2724,7 @@ "type": "integer" }, "pubsubTopic": { - "description": "The topic that Cloud Pub/Sub notifications are published to, in the form projects/{project}/topics/{topic}. This field is only required if Pub/Sub notifications are enabled.", + "description": "The topic which Pub/Sub notifications are published to, in the form projects/{project}/topics/{topic}. This field is only required if Pub/Sub notifications are enabled.", "type": "string" }, "signinDetails": { @@ -2392,7 +2745,7 @@ "type": "object" }, "ExtensionConfig": { - "description": "Configuration to enable an app as an extension app, with the capability of interacting with Android Device Policy offline.", + "description": "Configuration to enable an app as an extension app, with the capability of interacting with Android Device Policy offline. For Android versions 13 and above, extension apps are exempt from battery restrictions so will not be placed into the restricted App Standby Bucket (https://developer.android.com/topic/performance/appstandby#restricted-bucket). Extensions apps are also protected against users clearing their data or force-closing the application, although admins can continue to use the clear app data command (https://developer.android.com/management/reference/rest/v1/enterprises.devices/issueCommand#CommandType) on extension apps if needed for Android 13 and above.", "id": "ExtensionConfig", "properties": { "notificationReceiver": { @@ -2400,7 +2753,7 @@ "type": "string" }, "signingKeyFingerprintsSha256": { - "description": "Hex-encoded SHA256 hash of the signing certificate of the extension app. Only hexadecimal string representations of 64 characters are valid.If not specified, the signature for the corresponding package name is obtained from the Play Store instead.If this list is empty, the signature of the extension app on the device must match the signature obtained from the Play Store for the app to be able to communicate with Android Device Policy.If this list is not empty, the signature of the extension app on the device must match one of the entries in this list for the app to be able to communicate with Android Device Policy.In production use cases, it is recommended to leave this empty.", + "description": "Hex-encoded SHA-256 hash of the signing certificate of the extension app. Only hexadecimal string representations of 64 characters are valid.If not specified, the signature for the corresponding package name is obtained from the Play Store instead.If this list is empty, the signature of the extension app on the device must match the signature obtained from the Play Store for the app to be able to communicate with Android Device Policy.If this list is not empty, the signature of the extension app on the device must match one of the entries in this list for the app to be able to communicate with Android Device Policy.In production use cases, it is recommended to leave this empty.", "items": { "type": "string" }, @@ -2424,8 +2777,30 @@ }, "type": "object" }, + "FilePulledEvent": { + "description": "A file was downloaded from the device.", + "id": "FilePulledEvent", + "properties": { + "filePath": { + "description": "The path of the file being pulled.", + "type": "string" + } + }, + "type": "object" + }, + "FilePushedEvent": { + "description": "A file was uploaded onto the device.", + "id": "FilePushedEvent", + "properties": { + "filePath": { + "description": "The path of the file being pushed.", + "type": "string" + } + }, + "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.", + "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.", "id": "FreezePeriod", "properties": { "endDate": { @@ -2605,6 +2980,82 @@ "properties": {}, "type": "object" }, + "KeyDestructionEvent": { + "description": "A cryptographic key including user installed, admin installed and system maintained private key is removed from the device either by the user or management. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "KeyDestructionEvent", + "properties": { + "applicationUid": { + "description": "UID of the application which owns the key.", + "format": "int32", + "type": "integer" + }, + "keyAlias": { + "description": "Alias of the key.", + "type": "string" + }, + "success": { + "description": "Whether the operation was successful.", + "type": "boolean" + } + }, + "type": "object" + }, + "KeyGeneratedEvent": { + "description": "A cryptographic key including user installed, admin installed and system maintained private key is installed on the device either by the user or management.This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "KeyGeneratedEvent", + "properties": { + "applicationUid": { + "description": "UID of the application which generated the key.", + "format": "int32", + "type": "integer" + }, + "keyAlias": { + "description": "Alias of the key.", + "type": "string" + }, + "success": { + "description": "Whether the operation was successful.", + "type": "boolean" + } + }, + "type": "object" + }, + "KeyImportEvent": { + "description": "A cryptographic key including user installed, admin installed and system maintained private key is imported on the device either by the user or management. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "KeyImportEvent", + "properties": { + "applicationUid": { + "description": "UID of the application which imported the key", + "format": "int32", + "type": "integer" + }, + "keyAlias": { + "description": "Alias of the key.", + "type": "string" + }, + "success": { + "description": "Whether the operation was successful.", + "type": "boolean" + } + }, + "type": "object" + }, + "KeyIntegrityViolationEvent": { + "description": "A cryptographic key including user installed, admin installed and system maintained private key is determined to be corrupted due to storage corruption, hardware failure or some OS issue. This is available device-wide on fully managed devices and within the work profile on organization-owned devices with a work profile.", + "id": "KeyIntegrityViolationEvent", + "properties": { + "applicationUid": { + "description": "UID of the application which owns the key", + "format": "int32", + "type": "integer" + }, + "keyAlias": { + "description": "Alias of the key.", + "type": "string" + } + }, + "type": "object" + }, "KeyedAppState": { "description": "Keyed app state reported by the app.", "id": "KeyedAppState", @@ -2648,6 +3099,33 @@ }, "type": "object" }, + "KeyguardDismissAuthAttemptEvent": { + "description": "An attempt was made to unlock the device.", + "id": "KeyguardDismissAuthAttemptEvent", + "properties": { + "strongAuthMethodUsed": { + "description": "Whether a strong form of authentication (password, PIN, or pattern) was used to unlock device.", + "type": "boolean" + }, + "success": { + "description": "Whether the unlock attempt was successful.", + "type": "boolean" + } + }, + "type": "object" + }, + "KeyguardDismissedEvent": { + "description": "The keyguard was dismissed. Intentionally empty.", + "id": "KeyguardDismissedEvent", + "properties": {}, + "type": "object" + }, + "KeyguardSecuredEvent": { + "description": "The device was locked either by user or timeout. Intentionally empty.", + "id": "KeyguardSecuredEvent", + "properties": {}, + "type": "object" + }, "KioskCustomization": { "description": "Settings controlling the behavior of a device in kiosk mode. To enable kiosk mode, set kioskCustomLauncherEnabled to true or specify an app in the policy with installType KIOSK.", "id": "KioskCustomization", @@ -2758,6 +3236,24 @@ }, "type": "object" }, + "ListEnrollmentTokensResponse": { + "description": "Response to a request to list enrollment tokens for a given enterprise.", + "id": "ListEnrollmentTokensResponse", + "properties": { + "enrollmentTokens": { + "description": "The list of enrollment tokens.", + "items": { + "$ref": "EnrollmentToken" + }, + "type": "array" + }, + "nextPageToken": { + "description": "If there are more results, a token to retrieve next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListEnterprisesResponse": { "description": "Response to a request to list enterprises.", "id": "ListEnterprisesResponse", @@ -2830,6 +3326,24 @@ }, "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", + "properties": {}, + "type": "object" + }, + "LoggingStartedEvent": { + "description": "usageLog policy has been enabled. Intentionally empty.", + "id": "LoggingStartedEvent", + "properties": {}, + "type": "object" + }, + "LoggingStoppedEvent": { + "description": "usageLog policy has been disabled. Intentionally empty.", + "id": "LoggingStoppedEvent", + "properties": {}, + "type": "object" + }, "ManagedConfigurationTemplate": { "description": "The managed configurations template for the app, saved from the managed configurations iframe.", "id": "ManagedConfigurationTemplate", @@ -2926,6 +3440,36 @@ }, "type": "object" }, + "MediaMountEvent": { + "description": "Removable media was mounted.", + "id": "MediaMountEvent", + "properties": { + "mountPoint": { + "description": "Mount point.", + "type": "string" + }, + "volumeLabel": { + "description": "Volume label. Redacted to empty string on organization-owned managed profile devices.", + "type": "string" + } + }, + "type": "object" + }, + "MediaUnmountEvent": { + "description": "Removable media was unmounted.", + "id": "MediaUnmountEvent", + "properties": { + "mountPoint": { + "description": "Mount point.", + "type": "string" + }, + "volumeLabel": { + "description": "Volume label. Redacted to empty string on organization-owned managed profile devices.", + "type": "string" + } + }, + "type": "object" + }, "MemoryEvent": { "description": "An event related to memory and storage measurements.", "id": "MemoryEvent", @@ -3089,6 +3633,30 @@ "settingName": { "description": "The name of the policy setting. This is the JSON field name of a top-level Policy field.", "type": "string" + }, + "specificNonComplianceContext": { + "$ref": "SpecificNonComplianceContext", + "description": "Additional context for specific_non_compliance_reason." + }, + "specificNonComplianceReason": { + "description": "The policy-specific reason the device is not in compliance with the setting.", + "enum": [ + "SPECIFIC_NON_COMPLIANCE_REASON_UNSPECIFIED", + "PASSWORD_POLICIES_USER_CREDENTIALS_CONFIRMATION_REQUIRED", + "PASSWORD_POLICIES_PASSWORD_EXPIRED", + "PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT", + "ONC_WIFI_INVALID_VALUE", + "ONC_WIFI_API_LEVEL" + ], + "enumDescriptions": [ + "Specific non-compliance reason is not specified. Fields in specific_non_compliance_context are not set.", + "User needs to confirm credentials by entering the screen lock. Fields in specific_non_compliance_context are not set. nonComplianceReason is set to USER_ACTION.", + "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." + ], + "type": "string" } }, "type": "object" @@ -3156,6 +3724,17 @@ }, "type": "object" }, + "OncWifiContext": { + "description": "Additional context for non-compliance related to Wi-Fi configuration.", + "id": "OncWifiContext", + "properties": { + "wifiGuid": { + "description": "The GUID of non-compliant Wi-Fi configuration.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -3191,6 +3770,51 @@ }, "type": "object" }, + "OsShutdownEvent": { + "description": "Device was shutdown. Intentionally empty.", + "id": "OsShutdownEvent", + "properties": {}, + "type": "object" + }, + "OsStartupEvent": { + "description": "Device was started.", + "id": "OsStartupEvent", + "properties": { + "verifiedBootState": { + "description": "Verified Boot state.", + "enum": [ + "VERIFIED_BOOT_STATE_UNSPECIFIED", + "GREEN", + "YELLOW", + "ORANGE" + ], + "enumDescriptions": [ + "Unknown value.", + "Indicates that there is a full chain of trust extending from the bootloader to verified partitions including the bootloader, boot partition, and all verified partitions.", + "Indicates that the boot partition has been verified using the embedded certificate and the signature is valid.", + "Indicates that the device may be freely modified. Device integrity is left to the user to verify out-of-band." + ], + "type": "string" + }, + "verityMode": { + "description": "dm-verity mode.", + "enum": [ + "DM_VERITY_MODE_UNSPECIFIED", + "ENFORCING", + "IO_ERROR", + "DISABLED" + ], + "enumDescriptions": [ + "Unknown value.", + "Indicates that the device will be restarted when corruption is detected.", + "Indicates that an I/O error will be returned for an attempt to read corrupted data blocks (also known as eio boot state).", + "Indicates that dm-verity is disabled on device." + ], + "type": "string" + } + }, + "type": "object" + }, "PackageNameList": { "description": "A list of package names.", "id": "PackageNameList", @@ -3205,6 +3829,27 @@ }, "type": "object" }, + "PasswordPoliciesContext": { + "description": "Additional context for non-compliance related to password policies.", + "id": "PasswordPoliciesContext", + "properties": { + "passwordPolicyScope": { + "description": "The scope of non-compliant password.", + "enum": [ + "SCOPE_UNSPECIFIED", + "SCOPE_DEVICE", + "SCOPE_PROFILE" + ], + "enumDescriptions": [ + "The scope is unspecified. The password requirements are applied to the work profile for work profile devices and the whole device for fully managed or dedicated devices.", + "The password requirements are only applied to the device.", + "The password requirements are only applied to the work profile." + ], + "type": "string" + } + }, + "type": "object" + }, "PasswordRequirements": { "description": "Requirements for the password used to unlock a device.", "id": "PasswordRequirements", @@ -3318,7 +3963,7 @@ "type": "string" }, "unifiedLockSettings": { - "description": "Controls whether a unified lock is allowed for the device and the work profile, on devices running Android 9 and above with a work profile. This has no effect on other devices. This can be set only if password_scope is set to SCOPE_PROFILE, the policy will be rejected otherwise. If user has not set a separate work lock and this field is set to REQUIRE_SEPARATE_WORK_LOCK, a NonComplianceDetail is reported with nonComplianceReason set to USER_ACTION.", + "description": "Controls whether a unified lock is allowed for the device and the work profile, on devices running Android 9 and above with a work profile. This can be set only if password_scope is set to SCOPE_PROFILE, the policy will be rejected otherwise. If user has not set a separate work lock and this field is set to REQUIRE_SEPARATE_WORK_LOCK, a NonComplianceDetail is reported with nonComplianceReason set to USER_ACTION.", "enum": [ "UNIFIED_LOCK_SETTINGS_UNSPECIFIED", "ALLOW_UNIFIED_WORK_AND_PERSONAL_LOCK", @@ -3334,6 +3979,31 @@ }, "type": "object" }, + "PerAppResult": { + "description": "The result of an attempt to clear the data of a single app.", + "id": "PerAppResult", + "properties": { + "clearingResult": { + "description": "The result of an attempt to clear the data of a single app.", + "enum": [ + "CLEARING_RESULT_UNSPECIFIED", + "SUCCESS", + "APP_NOT_FOUND", + "APP_PROTECTED", + "API_LEVEL" + ], + "enumDescriptions": [ + "Unspecified result.", + "This app\u2019s data was successfully cleared.", + "This app\u2019s data could not be cleared because the app was not found.", + "This app\u2019s data could not be cleared because the app is protected. For example, this may apply to apps critical to the functioning of the device, such as Google Play Store.", + "This app\u2019s data could not be cleared because the device API level does not support this command." + ], + "type": "string" + } + }, + "type": "object" + }, "PermissionGrant": { "description": "Configuration for an Android permission and its grant state.", "id": "PermissionGrant", @@ -3423,7 +4093,7 @@ "type": "array" }, "cameraDisabled": { - "description": "Whether camera is disabled.", + "description": "If true, the camera is disabled on the personal profile.", "type": "boolean" }, "maxDaysWithWorkOff": { @@ -3455,7 +4125,7 @@ "type": "string" }, "screenCaptureDisabled": { - "description": "Whether screen capture is disabled.", + "description": "If true, screen capture is disabled for all users.", "type": "boolean" } }, @@ -3684,7 +4354,7 @@ "type": "boolean" }, "keyguardDisabled": { - "description": "Whether the keyguard is disabled.", + "description": "If true, this disables the Lock Screen (https://source.android.com/docs/core/display/multi_display/lock-screen) for primary and/or secondary displays.", "type": "boolean" }, "keyguardDisabledFeatures": { @@ -3838,7 +4508,7 @@ }, "passwordRequirements": { "$ref": "PasswordRequirements", - "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" + "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": { "description": "Explicit permission or group grants or denials for all apps. These values override the default_permission_policy.", @@ -3849,7 +4519,7 @@ }, "permittedAccessibilityServices": { "$ref": "PackageNameList", - "description": "Specifies permitted accessibility services. If the field is not set, any accessibility service can be used. If the field is set, only the accessibility services in this list and the system's built-in accessibility service can be used. In particular, if the field is set to empty, only the system's built-in accessibility servicess can be used." + "description": "Specifies permitted accessibility services. If the field is not set, any accessibility service can be used. If the field is set, only the accessibility services in this list and the system's built-in accessibility service can be used. In particular, if the field is set to empty, only the system's built-in accessibility servicess can be used. This can be set on fully managed devices and on work profiles. When applied to a work profile, this affects both the personal profile and the work profile." }, "permittedInputMethods": { "$ref": "PackageNameList", @@ -3937,7 +4607,7 @@ "type": "array" }, "shareLocationDisabled": { - "description": "Whether location sharing is disabled.", + "description": "Whether location sharing is disabled. share_location_disabled is supported for both fully managed devices and personally owned work profiles.", "type": "boolean" }, "shortSupportMessage": { @@ -3988,15 +4658,19 @@ "type": "boolean" }, "uninstallAppsDisabled": { - "description": "Whether user uninstallation of applications is disabled.", + "description": "Whether user uninstallation of applications is disabled. This prevents apps from being uninstalled, even those removed using applications", "type": "boolean" }, "unmuteMicrophoneDisabled": { "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" }, + "usageLog": { + "$ref": "UsageLog", + "description": "Configuration of device activity logging." + }, "usbFileTransferDisabled": { - "description": "Whether transferring files over USB is disabled.", + "description": "Whether transferring files over USB is disabled. This is supported only on company-owned devices.", "type": "boolean" }, "usbMassStorageEnabled": { @@ -4013,7 +4687,7 @@ "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).", + "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).", "type": "boolean" }, "wifiConfigsLockdownEnabled": { @@ -4029,7 +4703,7 @@ "properties": { "blockAction": { "$ref": "BlockAction", - "description": "An action to block access to apps and data on a fully managed device or in a work profile. This action also triggers a user-facing notification with information (where possible) on how to correct the compliance issue. Note: wipeAction must also be specified." + "description": "An action to block access to apps and data on a company owned device or in a work profile. This action also triggers a user-facing notification with information (where possible) on how to correct the compliance issue. Note: wipeAction must also be specified." }, "settingName": { "description": "The top-level policy to enforce. For example, applications or passwordPolicies.", @@ -4037,7 +4711,7 @@ }, "wipeAction": { "$ref": "WipeAction", - "description": "An action to reset a fully managed device or delete a work profile. Note: blockAction must also be specified." + "description": "An action to reset a company owned device or delete a work profile. Note: blockAction must also be specified." } }, "type": "object" @@ -4058,12 +4732,14 @@ "enum": [ "SECURITY_RISK_UNSPECIFIED", "UNKNOWN_OS", - "COMPROMISED_OS" + "COMPROMISED_OS", + "HARDWARE_BACKED_EVALUATION_FAILED" ], "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 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)." ], "type": "string" } @@ -4138,6 +4814,27 @@ }, "type": "object" }, + "RemoteLockEvent": { + "description": "The device or profile has been remotely locked via the LOCK command.", + "id": "RemoteLockEvent", + "properties": { + "adminPackageName": { + "description": "Package name of the admin app requesting the change.", + "type": "string" + }, + "adminUserId": { + "description": "User ID of the admin app from the which the change was requested.", + "format": "int32", + "type": "integer" + }, + "targetUserId": { + "description": "User ID in which the change was requested in.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "SecurityPosture": { "description": "The security posture of the device, as determined by the current device state and the policies applied.", "id": "SecurityPosture", @@ -4178,7 +4875,7 @@ }, "launchApp": { "$ref": "LaunchAppAction", - "description": "An action to launch an app. The app will be launched with an intent containing an extra with key com.google.android.apps.work.clouddpc.EXTRA_LAUNCHED_AS_SETUP_ACTION set to the boolean value true to indicate that this is a setup action flow." + "description": "An action to launch an app. The app will be launched with an intent containing an extra with key com.google.android.apps.work.clouddpc.EXTRA_LAUNCHED_AS_SETUP_ACTION set to the boolean value true to indicate that this is a setup action flow. If SetupAction references an app, the corresponding installType in the application policy must be set as REQUIRED_FOR_SETUP or said setup will fail." }, "title": { "$ref": "UserFacingMessage", @@ -4288,6 +4985,21 @@ }, "type": "object" }, + "SpecificNonComplianceContext": { + "description": "Additional context for SpecificNonComplianceReason.", + "id": "SpecificNonComplianceContext", + "properties": { + "oncWifiContext": { + "$ref": "OncWifiContext", + "description": "Additional context for non-compliance related to Wi-Fi configuration. See ONC_WIFI_INVALID_VALUE and ONC_WIFI_API_LEVEL" + }, + "passwordPoliciesContext": { + "$ref": "PasswordPoliciesContext", + "description": "Additional context for non-compliance related to password policies. See PASSWORD_POLICIES_PASSWORD_EXPIRED and PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT." + } + }, + "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", @@ -4466,6 +5178,236 @@ }, "type": "object" }, + "UsageLog": { + "description": "Controls types of device activity logs collected from the device and reported via Pub/Sub notification (https://developers.google.com/android/management/notifications).", + "id": "UsageLog", + "properties": { + "enabledLogTypes": { + "description": "Specifies which log types are enabled. Note that users will receive on-device messaging when usage logging is enabled.", + "items": { + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "SECURITY_LOGS", + "NETWORK_ACTIVITY_LOGS" + ], + "enumDescriptions": [ + "This value is not used.", + "Enable logging of on-device security events, like when the device password is incorrectly entered or removable storage is mounted. See UsageLogEvent for a complete description of the logged security events. Supported for fully managed devices on Android 7 and above. Supported for company-owned devices with a work profile on Android 12 and above, on which only security events from the work profile are logged. Can be overridden by the application delegated scope SECURITY_LOGS", + "Enable logging of on-device network events, like DNS lookups and TCP connections. See UsageLogEvent for a complete description of the logged network events. Supported for fully managed devices on Android 8 and above. Supported for company-owned devices with a work profile on Android 12 and above, on which only network events from the work profile are logged. Can be overridden by the application delegated scope NETWORK_ACTIVITY_LOGS" + ], + "type": "string" + }, + "type": "array" + }, + "uploadOnCellularAllowed": { + "description": "Specifies which of the enabled log types can be uploaded over mobile data. By default logs are queued for upload when the device connects to WiFi.", + "items": { + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "SECURITY_LOGS", + "NETWORK_ACTIVITY_LOGS" + ], + "enumDescriptions": [ + "This value is not used.", + "Enable logging of on-device security events, like when the device password is incorrectly entered or removable storage is mounted. See UsageLogEvent for a complete description of the logged security events. Supported for fully managed devices on Android 7 and above. Supported for company-owned devices with a work profile on Android 12 and above, on which only security events from the work profile are logged. Can be overridden by the application delegated scope SECURITY_LOGS", + "Enable logging of on-device network events, like DNS lookups and TCP connections. See UsageLogEvent for a complete description of the logged network events. Supported for fully managed devices on Android 8 and above. Supported for company-owned devices with a work profile on Android 12 and above, on which only network events from the work profile are logged. Can be overridden by the application delegated scope NETWORK_ACTIVITY_LOGS" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UsageLogEvent": { + "description": "An event logged on the device.", + "id": "UsageLogEvent", + "properties": { + "adbShellCommandEvent": { + "$ref": "AdbShellCommandEvent", + "description": "A shell command was issued over ADB via \u201cadb shell command\u201d. Part of SECURITY_LOGS." + }, + "adbShellInteractiveEvent": { + "$ref": "AdbShellInteractiveEvent", + "description": "An ADB interactive shell was opened via \u201cadb shell\u201d. Part of SECURITY_LOGS." + }, + "appProcessStartEvent": { + "$ref": "AppProcessStartEvent", + "description": "An app process was started. Part of SECURITY_LOGS." + }, + "certAuthorityInstalledEvent": { + "$ref": "CertAuthorityInstalledEvent", + "description": "A new root certificate was installed into the system's trusted credential storage. Part of SECURITY_LOGS." + }, + "certAuthorityRemovedEvent": { + "$ref": "CertAuthorityRemovedEvent", + "description": "A root certificate was removed from the system's trusted credential storage. Part of SECURITY_LOGS." + }, + "certValidationFailureEvent": { + "$ref": "CertValidationFailureEvent", + "description": "An X.509v3 certificate failed to validate, currently this validation is performed on the Wi-FI access point and failure may be due to a mismatch upon server certificate validation. However it may in the future include other validation events of an X.509v3 certificate. Part of SECURITY_LOGS." + }, + "connectEvent": { + "$ref": "ConnectEvent", + "description": "A TCP connect event was initiated through the standard network stack. Part of NETWORK_ACTIVITY_LOGS." + }, + "cryptoSelfTestCompletedEvent": { + "$ref": "CryptoSelfTestCompletedEvent", + "description": "Validates whether Android\u2019s built-in cryptographic library (BoringSSL) is valid. Should always succeed on device boot, if it fails, the device should be considered untrusted. Part of SECURITY_LOGS." + }, + "dnsEvent": { + "$ref": "DnsEvent", + "description": "A DNS lookup event was initiated through the standard network stack. Part of NETWORK_ACTIVITY_LOGS." + }, + "eventId": { + "description": "Unique id of the event.", + "format": "int64", + "type": "string" + }, + "eventTime": { + "description": "Device timestamp when the event was logged.", + "format": "google-datetime", + "type": "string" + }, + "eventType": { + "description": "The particular usage log event type that was reported on the device. Use this to determine which event field to access.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "ADB_SHELL_COMMAND", + "ADB_SHELL_INTERACTIVE", + "APP_PROCESS_START", + "KEYGUARD_DISMISSED", + "KEYGUARD_DISMISS_AUTH_ATTEMPT", + "KEYGUARD_SECURED", + "FILE_PULLED", + "FILE_PUSHED", + "CERT_AUTHORITY_INSTALLED", + "CERT_AUTHORITY_REMOVED", + "CERT_VALIDATION_FAILURE", + "CRYPTO_SELF_TEST_COMPLETED", + "KEY_DESTRUCTION", + "KEY_GENERATED", + "KEY_IMPORT", + "KEY_INTEGRITY_VIOLATION", + "LOGGING_STARTED", + "LOGGING_STOPPED", + "LOG_BUFFER_SIZE_CRITICAL", + "MEDIA_MOUNT", + "MEDIA_UNMOUNT", + "OS_SHUTDOWN", + "OS_STARTUP", + "REMOTE_LOCK", + "WIPE_FAILURE", + "CONNECT", + "DNS" + ], + "enumDescriptions": [ + "This value is not used", + "Indicates adb_shell_command_event has been set.", + "Indicates adb_shell_interactive_event has been set.", + "Indicates app_process_start_event has been set.", + "Indicates keyguard_dismissed_event has been set.", + "Indicates keyguard_dismiss_auth_attempt_event has been set.", + "Indicates keyguard_secured_event has been set.", + "Indicates file_pulled_event has been set.", + "Indicates file_pushed_event has been set.", + "Indicates cert_authority_installed_event has been set.", + "Indicates cert_authority_removed_event has been set.", + "Indicates cert_validation_failure_event has been set.", + "Indicates crypto_self_test_completed_event has been set.", + "Indicates key_destruction_event has been set.", + "Indicates key_generated_event has been set.", + "Indicates key_import_event has been set.", + "Indicates key_integrity_violation_event has been set.", + "Indicates logging_started_event has been set.", + "Indicates logging_stopped_event has been set.", + "Indicates log_buffer_size_critical_event has been set.", + "Indicates media_mount_event has been set.", + "Indicates media_unmount_event has been set.", + "Indicates os_shutdown_event has been set.", + "Indicates os_startup_event has been set.", + "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." + ], + "type": "string" + }, + "filePulledEvent": { + "$ref": "FilePulledEvent", + "description": "A file was downloaded from the device. Part of SECURITY_LOGS." + }, + "filePushedEvent": { + "$ref": "FilePushedEvent", + "description": "A file was uploaded onto the device. Part of SECURITY_LOGS." + }, + "keyDestructionEvent": { + "$ref": "KeyDestructionEvent", + "description": "A cryptographic key including user installed, admin installed and system maintained private key is removed from the device either by the user or management. Part of SECURITY_LOGS." + }, + "keyGeneratedEvent": { + "$ref": "KeyGeneratedEvent", + "description": "A cryptographic key including user installed, admin installed and system maintained private key is installed on the device either by the user or management. Part of SECURITY_LOGS." + }, + "keyImportEvent": { + "$ref": "KeyImportEvent", + "description": "A cryptographic key including user installed, admin installed and system maintained private key is imported on the device either by the user or management. Part of SECURITY_LOGS." + }, + "keyIntegrityViolationEvent": { + "$ref": "KeyIntegrityViolationEvent", + "description": "A cryptographic key including user installed, admin installed and system maintained private key is determined to be corrupted due to storage corruption, hardware failure or some OS issue. Part of SECURITY_LOGS." + }, + "keyguardDismissAuthAttemptEvent": { + "$ref": "KeyguardDismissAuthAttemptEvent", + "description": "An attempt was made to unlock the device. Part of SECURITY_LOGS." + }, + "keyguardDismissedEvent": { + "$ref": "KeyguardDismissedEvent", + "description": "The keyguard was dismissed. Part of SECURITY_LOGS." + }, + "keyguardSecuredEvent": { + "$ref": "KeyguardSecuredEvent", + "description": "The device was locked either by user or timeout. Part of SECURITY_LOGS." + }, + "logBufferSizeCriticalEvent": { + "$ref": "LogBufferSizeCriticalEvent", + "description": "The audit log buffer has reached 90% of its capacity, therefore older events may be dropped. Part of SECURITY_LOGS." + }, + "loggingStartedEvent": { + "$ref": "LoggingStartedEvent", + "description": "usageLog policy has been enabled. Part of SECURITY_LOGS." + }, + "loggingStoppedEvent": { + "$ref": "LoggingStoppedEvent", + "description": "usageLog policy has been disabled. Part of SECURITY_LOGS." + }, + "mediaMountEvent": { + "$ref": "MediaMountEvent", + "description": "Removable media was mounted. Part of SECURITY_LOGS." + }, + "mediaUnmountEvent": { + "$ref": "MediaUnmountEvent", + "description": "Removable media was unmounted. Part of SECURITY_LOGS." + }, + "osShutdownEvent": { + "$ref": "OsShutdownEvent", + "description": "Device was shutdown. Part of SECURITY_LOGS." + }, + "osStartupEvent": { + "$ref": "OsStartupEvent", + "description": "Device was started. Part of SECURITY_LOGS." + }, + "remoteLockEvent": { + "$ref": "RemoteLockEvent", + "description": "The device or profile has been remotely locked via the LOCK command. Part of SECURITY_LOGS." + }, + "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." + } + }, + "type": "object" + }, "User": { "description": "A user belonging to an enterprise.", "id": "User", @@ -4613,7 +5555,7 @@ "type": "object" }, "WipeAction": { - "description": "An action to reset a fully managed device or delete a work profile. Note: blockAction must also be specified.", + "description": "An action to reset a company owned device or delete a work profile. Note: blockAction must also be specified.", "id": "WipeAction", "properties": { "preserveFrp": { @@ -4627,6 +5569,12 @@ } }, "type": "object" + }, + "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. Intentionally empty.", + "id": "WipeFailureEvent", + "properties": {}, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/androidpublisher/v3/androidpublisher-api.json b/etc/api/androidpublisher/v3/androidpublisher-api.json index db2aea7cac..ee7e750461 100644 --- a/etc/api/androidpublisher/v3/androidpublisher-api.json +++ b/etc/api/androidpublisher/v3/androidpublisher-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://androidpublisher.googleapis.com/", "batchPath": "batch", "canonicalName": "Android Publisher", - "description": "Lets Android application developers access their Google Play accounts.", + "description": "Lets Android application developers access their Google Play accounts. At a high level, the expected workflow is to \"insert\" an Edit, make changes as necessary, and then \"commit\" it. ", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/android-publisher", "icons": { @@ -104,6 +104,113 @@ }, "protocol": "rest", "resources": { + "applications": { + "resources": { + "deviceTierConfigs": { + "methods": { + "create": { + "description": "Creates a new device tier config for an app.", + "flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", + "httpMethod": "POST", + "id": "androidpublisher.applications.deviceTierConfigs.create", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "allowUnknownDevices": { + "description": "Whether the service should accept device IDs that are unknown to Play's device catalog.", + "location": "query", + "type": "boolean" + }, + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", + "request": { + "$ref": "DeviceTierConfig" + }, + "response": { + "$ref": "DeviceTierConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "description": "Returns a particular device tier config.", + "flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}", + "httpMethod": "GET", + "id": "androidpublisher.applications.deviceTierConfigs.get", + "parameterOrder": [ + "packageName", + "deviceTierConfigId" + ], + "parameters": { + "deviceTierConfigId": { + "description": "Required. Id of an existing device tier config.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}", + "response": { + "$ref": "DeviceTierConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "description": "Returns created device tier configs, ordered by descending creation time.", + "flatPath": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", + "httpMethod": "GET", + "id": "androidpublisher.applications.deviceTierConfigs.list", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of device tier configs to return. The service may return fewer than this value. If unspecified, at most 10 device tier configs will be returned. The maximum value for this field is 100; values above 100 will be coerced to 100. Device tier configs will be ordered by descending creation time.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDeviceTierConfigs` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/deviceTierConfigs", + "response": { + "$ref": "ListDeviceTierConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } + }, "edits": { "methods": { "commit": { @@ -443,6 +550,11 @@ "location": "query", "type": "boolean" }, + "deviceTierConfigId": { + "description": "Device tier config (DTC) to be used for generating deliverables (APKs). Contains id of the DTC or \"LATEST\" for last uploaded DTC.", + "location": "query", + "type": "string" + }, "editId": { "description": "Identifier of the edit.", "location": "path", @@ -520,7 +632,7 @@ "accept": [ "application/octet-stream" ], - "maxSize": "629145600", + "maxSize": "838860800", "protocols": { "resumable": { "multipart": true, @@ -1454,7 +1566,7 @@ "testers": { "methods": { "get": { - "description": "Gets testers.", + "description": "Gets testers. Note: Testers resource does not support email lists.", "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", "httpMethod": "GET", "id": "androidpublisher.edits.testers.get", @@ -1492,7 +1604,7 @@ ] }, "patch": { - "description": "Patches testers.", + "description": "Patches testers. Note: Testers resource does not support email lists.", "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", "httpMethod": "PATCH", "id": "androidpublisher.edits.testers.patch", @@ -1533,7 +1645,7 @@ ] }, "update": { - "description": "Updates testers.", + "description": "Updates testers. Note: Testers resource does not support email lists.", "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}", "httpMethod": "PUT", "id": "androidpublisher.edits.testers.update", @@ -1868,7 +1980,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\".", + "description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\". If this grant is for a draft app, the app ID will be used in this resource name instead of the package name.", "location": "path", "pattern": "^developers/[^/]+/users/[^/]+/grants/[^/]+$", "required": true, @@ -2229,6 +2341,739 @@ "https://www.googleapis.com/auth/androidpublisher" ] } + }, + "resources": { + "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.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archive", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.archive", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) of the app of the subscription to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The unique product ID of the subscription to delete.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archive", + "request": { + "$ref": "ArchiveSubscriptionRequest" + }, + "response": { + "$ref": "Subscription" + }, + "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", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.create", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) for which the subscription should be created. Must be equal to the package_name field on the Subscription resource.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The ID to use for the subscription. For the requirements on this format, see the documentation of the product_id field on the Subscription resource.", + "location": "query", + "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.", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "delete": { + "description": "Deletes a subscription. A subscription can only be deleted if it has never had a base plan published.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "httpMethod": "DELETE", + "id": "androidpublisher.monetization.subscriptions.delete", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) of the app of the subscription to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The unique product ID of the subscription to delete.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "description": "Reads a single subscription.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "httpMethod": "GET", + "id": "androidpublisher.monetization.subscriptions.get", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) of the subscription to get.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The unique product ID of the subscription to get.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "description": "Lists all subscriptions under a given app.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions", + "httpMethod": "GET", + "id": "androidpublisher.monetization.subscriptions.list", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be read.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of subscriptions to return. The service may return fewer than this value. If unspecified, at most 50 subscriptions 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 `ListSubscriptions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscriptions` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "showArchived": { + "description": "Whether archived subscriptions should be included in the response. Defaults to false.", + "location": "query", + "type": "boolean" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions", + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "description": "Updates an existing subscription.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "httpMethod": "PATCH", + "id": "androidpublisher.monetization.subscriptions.patch", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Immutable. Package name of the parent app.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Immutable. Unique product ID of the product. Unique within the parent app. Product IDs must be composed of lower-case letters (a-z), numbers (0-9), underscores (_) and dots (.). It must start with a lower-case letter or number, and be between 1 and 40 (inclusive) characters in length.", + "location": "path", + "required": true, + "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.", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + }, + "resources": { + "basePlans": { + "methods": { + "activate": { + "description": "Activates a base plan. Once activated, base plans will be available to new subscribers.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:activate", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.activate", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to activate.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the base plan to activate.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the base plan to activate.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:activate", + "request": { + "$ref": "ActivateBasePlanRequest" + }, + "response": { + "$ref": "Subscription" + }, + "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", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.deactivate", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to deactivate.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the base plan to deactivate.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the base plan to deactivate.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:deactivate", + "request": { + "$ref": "DeactivateBasePlanRequest" + }, + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "delete": { + "description": "Deletes a base plan. Can only be done for draft base plans. This action is irreversible.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}", + "httpMethod": "DELETE", + "id": "androidpublisher.monetization.subscriptions.basePlans.delete", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The unique offer ID of the base plan to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the base plan to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the base plan to delete.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}", + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "migratePrices": { + "description": "Migrates subscribers who are receiving an historical subscription price to the currently-offered price for the specified region. Requests will cause price change notifications to be sent to users who are currently receiving an historical price older than the supplied timestamp. Subscribers who do not agree to the new price will have their subscription ended at the next renewal.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:migratePrices", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.migratePrices", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to update prices on.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the parent app. Must be equal to the package_name field on the Subscription resource.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The ID of the subscription to update. Must be equal to the product_id field on the Subscription resource.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:migratePrices", + "request": { + "$ref": "MigrateBasePlanPricesRequest" + }, + "response": { + "$ref": "MigrateBasePlanPricesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + }, + "resources": { + "offers": { + "methods": { + "activate": { + "description": "Activates a subscription offer. Once activated, subscription offers will be available to new subscribers.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:activate", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.activate", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId", + "offerId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to activate.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to activate.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to activate.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to activate.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:activate", + "request": { + "$ref": "ActivateSubscriptionOfferRequest" + }, + "response": { + "$ref": "SubscriptionOffer" + }, + "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", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.create", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) for which the offer should be created. Must be equal to the base_plan_id field on the SubscriptionOffer resource.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. The ID to use for the offer. For the requirements on this format, see the documentation of the offer_id field on the SubscriptionOffer resource.", + "location": "query", + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) for which the offer should be created. Must be equal to the package_name field on the Subscription resource.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) for which the offer should be created. Must be equal to the product_id field on the SubscriptionOffer resource.", + "location": "path", + "required": true, + "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.", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", + "request": { + "$ref": "SubscriptionOffer" + }, + "response": { + "$ref": "SubscriptionOffer" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "deactivate": { + "description": "Deactivates a subscription offer. Once deactivated, existing subscribers will maintain their subscription, but the offer will become unavailable to new subscribers.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:deactivate", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.deactivate", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId", + "offerId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to deactivate.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to deactivate.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to deactivate.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to deactivate.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}:deactivate", + "request": { + "$ref": "DeactivateSubscriptionOfferRequest" + }, + "response": { + "$ref": "SubscriptionOffer" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "delete": { + "description": "Deletes a subscription offer. Can only be done for draft offers. This action is irreversible.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "httpMethod": "DELETE", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.delete", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId", + "offerId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to delete.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "get": { + "description": "Reads a single offer", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "httpMethod": "GET", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.get", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId", + "offerId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to get.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to get.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to get.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to get.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "response": { + "$ref": "SubscriptionOffer" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "list": { + "description": "Lists all offers under a given subscription.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", + "httpMethod": "GET", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.list", + "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 all offers under a subscription.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be read.", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of subscriptions to return. The service may return fewer than this value. If unspecified, at most 50 subscriptions 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 `ListSubscriptionsOffers` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListSubscriptionOffers` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) for which the offers should be read.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", + "response": { + "$ref": "ListSubscriptionOffersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "patch": { + "description": "Updates an existing subscription offer.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "httpMethod": "PATCH", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.patch", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId", + "offerId" + ], + "parameters": { + "basePlanId": { + "description": "Required. Immutable. The ID of the base plan to which this offer is an extension.", + "location": "path", + "required": true, + "type": "string" + }, + "offerId": { + "description": "Required. Immutable. Unique ID of this subscription offer. Must be unique within the base plan.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Immutable. The package name of the app the parent subscription belongs to.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. Immutable. The ID of the parent subscription this offer belongs to.", + "location": "path", + "required": true, + "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.", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers/{offerId}", + "request": { + "$ref": "SubscriptionOffer" + }, + "response": { + "$ref": "SubscriptionOffer" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + } + } + } + } + } } }, "orders": { @@ -2576,6 +3421,41 @@ } } }, + "subscriptionsv2": { + "methods": { + "get": { + "description": "Get metadata about a subscription", + "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}", + "httpMethod": "GET", + "id": "androidpublisher.purchases.subscriptionsv2.get", + "parameterOrder": [ + "packageName", + "token" + ], + "parameters": { + "packageName": { + "description": "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}", + "response": { + "$ref": "SubscriptionPurchaseV2" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, "voidedpurchases": { "methods": { "list": { @@ -3040,9 +3920,32 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://androidpublisher.googleapis.com/", "schemas": { + "AcquisitionTargetingRule": { + "description": "Represents a targeting rule of the form: User never had {scope} before.", + "id": "AcquisitionTargetingRule", + "properties": { + "scope": { + "$ref": "TargetingRuleScope", + "description": "Required. The scope of subscriptions this rule considers. Only allows \"this subscription\" and \"any subscription in app\"." + } + }, + "type": "object" + }, + "ActivateBasePlanRequest": { + "description": "Request message for ActivateBasePlan.", + "id": "ActivateBasePlanRequest", + "properties": {}, + "type": "object" + }, + "ActivateSubscriptionOfferRequest": { + "description": "Request message for ActivateSubscriptionOffer.", + "id": "ActivateSubscriptionOfferRequest", + "properties": {}, + "type": "object" + }, "Apk": { "description": "Information about an APK. The resource for ApksService.", "id": "Apk", @@ -3154,6 +4057,132 @@ }, "type": "object" }, + "ArchiveSubscriptionRequest": { + "description": "Request message for ArchiveSubscription.", + "id": "ArchiveSubscriptionRequest", + "properties": {}, + "type": "object" + }, + "AutoRenewingBasePlanType": { + "description": "Represents a base plan that automatically renews at the end of its subscription period.", + "id": "AutoRenewingBasePlanType", + "properties": { + "billingPeriodDuration": { + "description": "Required. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center.", + "type": "string" + }, + "gracePeriodDuration": { + "description": "Grace period of the subscription, specified in ISO 8601 format. Acceptable values are P0D (zero days), P3D (3 days), P7D (7 days), P14D (14 days), and P30D (30 days). If not specified, a default value will be used based on the recurring period duration.", + "type": "string" + }, + "legacyCompatible": { + "description": "Whether the renewing base plan is backward compatible. The backward compatible base plan is returned by the Google Play Billing Library deprecated method querySkuDetailsAsync(). Only one renewing base plan can be marked as legacy compatible for a given subscription.", + "type": "boolean" + }, + "legacyCompatibleSubscriptionOfferId": { + "description": "Subscription offer id which is legacy compatible. The backward compatible subscription offer is returned by the Google Play Billing Library deprecated method querySkuDetailsAsync(). Only one subscription offer can be marked as legacy compatible for a given renewing base plan. To have no Subscription offer as legacy compatible set this field as empty string.", + "type": "string" + }, + "prorationMode": { + "description": "The proration mode for the base plan determines what happens when a user switches to this plan from another base plan. If unspecified, defaults to CHARGE_ON_NEXT_BILLING_DATE.", + "enum": [ + "SUBSCRIPTION_PRORATION_MODE_UNSPECIFIED", + "SUBSCRIPTION_PRORATION_MODE_CHARGE_ON_NEXT_BILLING_DATE", + "SUBSCRIPTION_PRORATION_MODE_CHARGE_FULL_PRICE_IMMEDIATELY" + ], + "enumDescriptions": [ + "Unspecified mode.", + "Users will be charged for their new base plan at the end of their current billing period.", + "Users will be charged for their new base plan immediately and in full. Any remaining period of their existing subscription will be used to extend the duration of the new billing plan." + ], + "type": "string" + }, + "resubscribeState": { + "description": "Whether users should be able to resubscribe to this base plan in Google Play surfaces. Defaults to RESUBSCRIBE_STATE_ACTIVE if not specified.", + "enum": [ + "RESUBSCRIBE_STATE_UNSPECIFIED", + "RESUBSCRIBE_STATE_ACTIVE", + "RESUBSCRIBE_STATE_INACTIVE" + ], + "enumDescriptions": [ + "Unspecified state.", + "Resubscribe is active.", + "Resubscribe is inactive." + ], + "type": "string" + } + }, + "type": "object" + }, + "AutoRenewingPlan": { + "description": "Information related to an auto renewing plan.", + "id": "AutoRenewingPlan", + "properties": { + "autoRenewEnabled": { + "description": "If the subscription is currently set to auto-renew, e.g. the user has not canceled the subscription", + "type": "boolean" + }, + "priceChangeDetails": { + "$ref": "SubscriptionItemPriceChangeDetails", + "description": "The information of the last price change for the item since subscription signup." + } + }, + "type": "object" + }, + "BasePlan": { + "description": "A single base plan for a subscription.", + "id": "BasePlan", + "properties": { + "autoRenewingBasePlanType": { + "$ref": "AutoRenewingBasePlanType", + "description": "Set when the base plan automatically renews at a regular interval." + }, + "basePlanId": { + "description": "Required. Immutable. The unique identifier of this base plan. Must be unique within the subscription, and conform with RFC-1034. That is, this ID can only contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at most 63 characters.", + "type": "string" + }, + "offerTags": { + "description": "List of up to 20 custom tags specified for this base plan, and returned to the app through the billing library. Subscription offers for this base plan will also receive these offer tags in the billing library.", + "items": { + "$ref": "OfferTag" + }, + "type": "array" + }, + "otherRegionsConfig": { + "$ref": "OtherRegionsBasePlanConfig", + "description": "Pricing information for any new locations Play may launch in the future. If omitted, the BasePlan will not be automatically available any new locations Play may launch in the future." + }, + "prepaidBasePlanType": { + "$ref": "PrepaidBasePlanType", + "description": "Set when the base plan does not automatically renew at the end of the billing period." + }, + "regionalConfigs": { + "description": "Region-specific information for this base plan.", + "items": { + "$ref": "RegionalBasePlanConfig" + }, + "type": "array" + }, + "state": { + "description": "Output only. The state of the base plan, i.e. whether it's active. Draft and inactive base plans can be activated or deleted. Active base plans can be made inactive. Inactive base plans can be canceled. This field cannot be changed by updating the resource. Use the dedicated endpoints instead.", + "enum": [ + "STATE_UNSPECIFIED", + "DRAFT", + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Unspecified state.", + "The base plan is currently in a draft state, and hasn't been activated. It can be safely deleted at this point.", + "The base plan is active and available for new subscribers.", + "The base plan is inactive and only available for existing subscribers." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Bundle": { "description": "Information about an app bundle. The resource for BundlesService.", "id": "Bundle", @@ -3192,6 +4221,60 @@ }, "type": "object" }, + "CancelSurveyResult": { + "description": "Result of the cancel survey when the subscription was canceled by the user.", + "id": "CancelSurveyResult", + "properties": { + "reason": { + "description": "The reason the user selected in the cancel survey.", + "enum": [ + "CANCEL_SURVEY_REASON_UNSPECIFIED", + "CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE", + "CANCEL_SURVEY_REASON_TECHNICAL_ISSUES", + "CANCEL_SURVEY_REASON_COST_RELATED", + "CANCEL_SURVEY_REASON_FOUND_BETTER_APP", + "CANCEL_SURVEY_REASON_OTHERS" + ], + "enumDescriptions": [ + "Unspecified cancel survey reason.", + "Not enough usage of the subscription.", + "Technical issues while using the app.", + "Cost related issues.", + "The user found a better app.", + "Other reasons." + ], + "type": "string" + }, + "reasonUserInput": { + "description": "Only set for CANCEL_SURVEY_REASON_OTHERS. This is the user's freeform response to the survey.", + "type": "string" + } + }, + "type": "object" + }, + "CanceledStateContext": { + "description": "Information specific to a subscription in canceled state.", + "id": "CanceledStateContext", + "properties": { + "developerInitiatedCancellation": { + "$ref": "DeveloperInitiatedCancellation", + "description": "Subscription was canceled by the developer." + }, + "replacementCancellation": { + "$ref": "ReplacementCancellation", + "description": "Subscription was replaced by a new subscription." + }, + "systemInitiatedCancellation": { + "$ref": "SystemInitiatedCancellation", + "description": "Subscription was canceled by the system, for example because of a billing problem." + }, + "userInitiatedCancellation": { + "$ref": "UserInitiatedCancellation", + "description": "Subscription was canceled by user." + } + }, + "type": "object" + }, "Comment": { "description": "An entry of conversation between user and developer.", "id": "Comment", @@ -3288,6 +4371,18 @@ }, "type": "object" }, + "DeactivateBasePlanRequest": { + "description": "Request message for DeactivateBasePlan.", + "id": "DeactivateBasePlanRequest", + "properties": {}, + "type": "object" + }, + "DeactivateSubscriptionOfferRequest": { + "description": "Request message for DeactivateSubscriptionOffer.", + "id": "DeactivateSubscriptionOfferRequest", + "properties": {}, + "type": "object" + }, "DeobfuscationFile": { "description": "Represents a deobfuscation file.", "id": "DeobfuscationFile", @@ -3335,6 +4430,45 @@ }, "type": "object" }, + "DeveloperInitiatedCancellation": { + "description": "Information specific to cancellations initiated by developers.", + "id": "DeveloperInitiatedCancellation", + "properties": {}, + "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).", + "id": "DeviceGroup", + "properties": { + "deviceSelectors": { + "description": "Device selectors for this group. A device matching any of the selectors is included in this group.", + "items": { + "$ref": "DeviceSelector" + }, + "type": "array" + }, + "name": { + "description": "The name of the group.", + "type": "string" + } + }, + "type": "object" + }, + "DeviceId": { + "description": "Identifier of a device.", + "id": "DeviceId", + "properties": { + "buildBrand": { + "description": "Value of Build.BRAND.", + "type": "string" + }, + "buildDevice": { + "description": "Value of Build.DEVICE.", + "type": "string" + } + }, + "type": "object" + }, "DeviceMetadata": { "description": "Characteristics of the user's device.", "id": "DeviceMetadata", @@ -3391,6 +4525,62 @@ }, "type": "object" }, + "DeviceRam": { + "description": "Conditions about a device's RAM capabilities.", + "id": "DeviceRam", + "properties": { + "maxBytes": { + "description": "Maximum RAM in bytes (bound excluded).", + "format": "int64", + "type": "string" + }, + "minBytes": { + "description": "Minimum RAM in bytes (bound included).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "DeviceSelector": { + "description": "Selector for a device group. A selector consists of a set of conditions on the device that should all match (logical AND) to determine a device group eligibility. For instance, if a selector specifies RAM conditions, device model inclusion and device model exclusion, a device is considered to match if: device matches RAM conditions AND device matches one of the included device models AND device doesn't match excluded device models", + "id": "DeviceSelector", + "properties": { + "deviceRam": { + "$ref": "DeviceRam", + "description": "Conditions on the device's RAM." + }, + "excludedDeviceIds": { + "description": "Device models excluded by this selector, even if they match all other conditions.", + "items": { + "$ref": "DeviceId" + }, + "type": "array" + }, + "forbiddenSystemFeatures": { + "description": "A device that has any of these system features is excluded by this selector, even if it matches all other conditions.", + "items": { + "$ref": "SystemFeature" + }, + "type": "array" + }, + "includedDeviceIds": { + "description": "Device models included by this selector.", + "items": { + "$ref": "DeviceId" + }, + "type": "array" + }, + "requiredSystemFeatures": { + "description": "A device needs to have all these system features to be included by the selector.", + "items": { + "$ref": "SystemFeature" + }, + "type": "array" + } + }, + "type": "object" + }, "DeviceSpec": { "description": "The device spec used to generate a system APK.", "id": "DeviceSpec", @@ -3417,6 +4607,63 @@ }, "type": "object" }, + "DeviceTier": { + "description": "A single device tier. Devices matching any of the device groups in device_group_names are considered to match the tier.", + "id": "DeviceTier", + "properties": { + "deviceGroupNames": { + "description": "Groups of devices included in this tier. These groups must be defined explicitly under device_groups in this configuration.", + "items": { + "type": "string" + }, + "type": "array" + }, + "level": { + "description": "The priority level of the tier. Tiers are evaluated in descending order of level: the highest level tier has the highest priority. The highest tier matching a given device is selected for that device. You should use a contiguous range of levels for your tiers in a tier set; tier levels in a tier set must be unique. For instance, if your tier set has 4 tiers (including the global fallback), you should define tiers 1, 2 and 3 in this configuration. Note: tier 0 is implicitly defined as a global fallback and selected for devices that don't match any of the tiers explicitly defined here. You mustn't define level 0 explicitly in this configuration.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DeviceTierConfig": { + "description": "LINT.IfChange Configuration describing device targeting criteria for the content of an app.", + "id": "DeviceTierConfig", + "properties": { + "deviceGroups": { + "description": "Definition of device groups for the app.", + "items": { + "$ref": "DeviceGroup" + }, + "type": "array" + }, + "deviceTierConfigId": { + "description": "Output only. The device tier config ID.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "deviceTierSet": { + "$ref": "DeviceTierSet", + "description": "Definition of the set of device tiers for the app." + } + }, + "type": "object" + }, + "DeviceTierSet": { + "description": "A set of device tiers. A tier set determines what variation of app content gets served to a specific device, for device-targeted content. You should assign a priority level to each tier, which determines the ordering by which they are evaluated by Play. See the documentation of DeviceTier.level for more details.", + "id": "DeviceTierSet", + "properties": { + "deviceTiers": { + "description": "Device tiers belonging to the set.", + "items": { + "$ref": "DeviceTier" + }, + "type": "array" + } + }, + "type": "object" + }, "ExpansionFile": { "description": "An expansion file. The resource for ExpansionFilesService.", "id": "ExpansionFile", @@ -3445,6 +4692,25 @@ }, "type": "object" }, + "ExternalAccountIdentifiers": { + "description": "User account identifier in the third-party service.", + "id": "ExternalAccountIdentifiers", + "properties": { + "externalAccountId": { + "description": "User account identifier in the third-party service. Only present if account linking happened as part of the subscription purchase flow.", + "type": "string" + }, + "obfuscatedExternalAccountId": { + "description": "An obfuscated version of the id that is uniquely associated with the user's account in your app. Present for the following purchases: * If account linking happened as part of the subscription purchase flow. * It was specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid when the purchase was made.", + "type": "string" + }, + "obfuscatedExternalProfileId": { + "description": "An obfuscated version of the id that is uniquely associated with the user's profile in your app. Only present if specified using https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid when the purchase was made.", + "type": "string" + } + }, + "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", @@ -3691,11 +4957,11 @@ "type": "array" }, "name": { - "description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\".", + "description": "Required. Resource name for this grant, following the pattern \"developers/{developer}/users/{email}/grants/{package_name}\". If this grant is for a draft app, the app ID will be used in this resource name instead of the package name.", "type": "string" }, "packageName": { - "description": "Immutable. The package name of the app.", + "description": "Immutable. The package name of the app. This will be empty for draft apps.", "type": "string" } }, @@ -3940,6 +5206,60 @@ }, "type": "object" }, + "ListDeviceTierConfigsResponse": { + "description": "Response listing existing device tier configs.", + "id": "ListDeviceTierConfigsResponse", + "properties": { + "deviceTierConfigs": { + "description": "Device tier configs created by the developer.", + "items": { + "$ref": "DeviceTierConfig" + }, + "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" + }, + "ListSubscriptionOffersResponse": { + "description": "Response message for ListSubscriptionOffers.", + "id": "ListSubscriptionOffersResponse", + "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" + }, + "subscriptionOffers": { + "description": "The subscription offers from the specified subscription.", + "items": { + "$ref": "SubscriptionOffer" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListSubscriptionsResponse": { + "description": "Response message for ListSubscriptions.", + "id": "ListSubscriptionsResponse", + "properties": { + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "subscriptions": { + "description": "The subscriptions from the specified app.", + "items": { + "$ref": "Subscription" + }, + "type": "array" + } + }, + "type": "object" + }, "ListUsersResponse": { "description": "A response containing one or more users with access to an account.", "id": "ListUsersResponse", @@ -4046,6 +5366,30 @@ }, "type": "object" }, + "MigrateBasePlanPricesRequest": { + "description": "Request message for MigrateBasePlanPrices.", + "id": "MigrateBasePlanPricesRequest", + "properties": { + "regionalPriceMigrations": { + "description": "Required. The regional prices to update.", + "items": { + "$ref": "RegionalPriceMigrationConfig" + }, + "type": "array" + }, + "regionsVersion": { + "$ref": "RegionsVersion", + "description": "Required. The version of the available regions being used for the regional_price_migrations." + } + }, + "type": "object" + }, + "MigrateBasePlanPricesResponse": { + "description": "Response message for MigrateBasePlanPrices.", + "id": "MigrateBasePlanPricesResponse", + "properties": {}, + "type": "object" + }, "Money": { "description": "Represents an amount of money with its currency type.", "id": "Money", @@ -4067,6 +5411,104 @@ }, "type": "object" }, + "OfferDetails": { + "description": "Offer details information related to a purchase line item.", + "id": "OfferDetails", + "properties": { + "basePlanId": { + "description": "The base plan ID. Present for all base plan and offers.", + "type": "string" + }, + "offerId": { + "description": "The offer ID. Only present for discounted offers.", + "type": "string" + }, + "offerTags": { + "description": "The latest offer tags associated with the offer. It includes tags inherited from the base plan.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "OfferTag": { + "description": "Represents a custom tag specified for base plans and subscription offers.", + "id": "OfferTag", + "properties": { + "tag": { + "description": "Must conform with RFC-1034. That is, this string can only contain lower-case letters (a-z), numbers (0-9), and hyphens (-), and be at most 20 characters.", + "type": "string" + } + }, + "type": "object" + }, + "OtherRegionsBasePlanConfig": { + "description": "Pricing information for any new locations Play may launch in.", + "id": "OtherRegionsBasePlanConfig", + "properties": { + "eurPrice": { + "$ref": "Money", + "description": "Required. Price in EUR to use for any new locations Play may launch in." + }, + "newSubscriberAvailability": { + "description": "Whether the base plan is available for new subscribers in any new locations Play may launch in. If not specified, this will default to false.", + "type": "boolean" + }, + "usdPrice": { + "$ref": "Money", + "description": "Required. Price in USD to use for any new locations Play may launch in." + } + }, + "type": "object" + }, + "OtherRegionsSubscriptionOfferConfig": { + "description": "Configuration for any new locations Play may launch in specified on a subscription offer.", + "id": "OtherRegionsSubscriptionOfferConfig", + "properties": { + "otherRegionsNewSubscriberAvailability": { + "description": "Whether the subscription offer in any new locations Play may launch in the future. If not specified, this will default to false.", + "type": "boolean" + } + }, + "type": "object" + }, + "OtherRegionsSubscriptionOfferPhaseConfig": { + "description": "Configuration for any new locations Play may launch in for a single offer phase.", + "id": "OtherRegionsSubscriptionOfferPhaseConfig", + "properties": { + "absoluteDiscounts": { + "$ref": "OtherRegionsSubscriptionOfferPhasePrices", + "description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for any new locations Play may launch in." + }, + "otherRegionsPrices": { + "$ref": "OtherRegionsSubscriptionOfferPhasePrices", + "description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for any new locations Play may launch in." + }, + "relativeDiscount": { + "description": "The fraction of the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a 50% discount for a phase of a duration of 3 months would correspond to a price of $1.50. The discount must be specified as a fraction strictly larger than 0 and strictly smaller than 1. The resulting price will be rounded to the nearest billable unit (e.g. cents for USD). The relative discount is considered invalid if the discounted price ends up being smaller than the minimum price allowed in any new locations Play may launch in.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "OtherRegionsSubscriptionOfferPhasePrices": { + "description": "Pricing information for any new locations Play may launch in.", + "id": "OtherRegionsSubscriptionOfferPhasePrices", + "properties": { + "eurPrice": { + "$ref": "Money", + "description": "Required. Price in EUR to use for any new locations Play may launch in." + }, + "usdPrice": { + "$ref": "Money", + "description": "Required. Price in USD to use for any new locations Play may launch in." + } + }, + "type": "object" + }, "PageInfo": { "description": "Information about the current page. List operations that supports paging return only one \"page\" of results. This protocol buffer message describes the page that has been returned.", "id": "PageInfo", @@ -4089,6 +5531,55 @@ }, "type": "object" }, + "PausedStateContext": { + "description": "Information specific to a subscription in paused state.", + "id": "PausedStateContext", + "properties": { + "autoResumeTime": { + "description": "Time at which the subscription will be automatically resumed.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "PrepaidBasePlanType": { + "description": "Represents a base plan that does not automatically renew at the end of the base plan, and must be manually renewed by the user.", + "id": "PrepaidBasePlanType", + "properties": { + "billingPeriodDuration": { + "description": "Required. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center.", + "type": "string" + }, + "timeExtension": { + "description": "Whether users should be able to extend this prepaid base plan in Google Play surfaces. Defaults to TIME_EXTENSION_ACTIVE if not specified.", + "enum": [ + "TIME_EXTENSION_UNSPECIFIED", + "TIME_EXTENSION_ACTIVE", + "TIME_EXTENSION_INACTIVE" + ], + "enumDescriptions": [ + "Unspecified state.", + "Time extension is active. Users are allowed to top-up or extend their prepaid plan.", + "Time extension is inactive. Users cannot top-up or extend their prepaid plan." + ], + "type": "string" + } + }, + "type": "object" + }, + "PrepaidPlan": { + "description": "Information related to a prepaid plan.", + "id": "PrepaidPlan", + "properties": { + "allowExtendAfterTime": { + "description": "If present, this is the time after which top up purchases are allowed for the prepaid plan. Will not be present for expired prepaid plans.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Price": { "description": "Definition of a price, i.e. currency and units.", "id": "Price", @@ -4139,7 +5630,7 @@ "type": "string" }, "productId": { - "description": "The inapp product SKU.", + "description": "The inapp product SKU. May not be present.", "type": "string" }, "purchaseState": { @@ -4153,7 +5644,7 @@ "type": "string" }, "purchaseToken": { - "description": "The purchase token generated to identify this purchase.", + "description": "The purchase token generated to identify this purchase. May not be present.", "type": "string" }, "purchaseType": { @@ -4162,7 +5653,7 @@ "type": "integer" }, "quantity": { - "description": "The quantity associated with the purchase of the inapp product.", + "description": "The quantity associated with the purchase of the inapp product. If not present, the quantity is 1.", "format": "int32", "type": "integer" }, @@ -4184,6 +5675,80 @@ }, "type": "object" }, + "RegionalBasePlanConfig": { + "description": "Configuration for a base plan specific to a region.", + "id": "RegionalBasePlanConfig", + "properties": { + "newSubscriberAvailability": { + "description": "Whether the base plan in the specified region is available for new subscribers. Existing subscribers will not have their subscription canceled if this value is set to false. If not specified, this will default to false.", + "type": "boolean" + }, + "price": { + "$ref": "Money", + "description": "The price of the base plan in the specified region. Must be set if the base plan is available to new subscribers. Must be set in the currency that is linked to the specified region." + }, + "regionCode": { + "description": "Required. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", + "type": "string" + } + }, + "type": "object" + }, + "RegionalPriceMigrationConfig": { + "description": "Configuration for a price migration.", + "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.", + "format": "google-datetime", + "type": "string" + }, + "regionCode": { + "description": "Required. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", + "type": "string" + } + }, + "type": "object" + }, + "RegionalSubscriptionOfferConfig": { + "description": "Configuration for a subscription offer in a single region.", + "id": "RegionalSubscriptionOfferConfig", + "properties": { + "newSubscriberAvailability": { + "description": "Whether the subscription offer in the specified region is available for new subscribers. Existing subscribers will not have their subscription cancelled if this value is set to false. If not specified, this will default to false.", + "type": "boolean" + }, + "regionCode": { + "description": "Required. Immutable. Region code this configuration applies to, as defined by ISO 3166-2, e.g. \"US\".", + "type": "string" + } + }, + "type": "object" + }, + "RegionalSubscriptionOfferPhaseConfig": { + "description": "Configuration for a single phase of a subscription offer in a single region.", + "id": "RegionalSubscriptionOfferPhaseConfig", + "properties": { + "absoluteDiscount": { + "$ref": "Money", + "description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for this region." + }, + "price": { + "$ref": "Money", + "description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for this region." + }, + "regionCode": { + "description": "Required. Immutable. The region to which this config applies.", + "type": "string" + }, + "relativeDiscount": { + "description": "The fraction of the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a 50% discount for a phase of a duration of 3 months would correspond to a price of $1.50. The discount must be specified as a fraction strictly larger than 0 and strictly smaller than 1. The resulting price will be rounded to the nearest billable unit (e.g. cents for USD). The relative discount is considered invalid if the discounted price ends up being smaller than the minimum price allowed in this region.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "RegionalTaxRateInfo": { "description": "Specified details about taxation in a given geographical region.", "id": "RegionalTaxRateInfo", @@ -4192,6 +5757,28 @@ "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.", "type": "boolean" }, + "streamingTaxType": { + "description": "To collect communications or amusement taxes in the United States, choose the appropriate tax category. [Learn more](https://support.google.com/googleplay/android-developer/answer/10463498#streaming_tax).", + "enum": [ + "STREAMING_TAX_TYPE_UNSPECIFIED", + "STREAMING_TAX_TYPE_TELCO_VIDEO_RENTAL", + "STREAMING_TAX_TYPE_TELCO_VIDEO_SALES", + "STREAMING_TAX_TYPE_TELCO_VIDEO_MULTI_CHANNEL", + "STREAMING_TAX_TYPE_TELCO_AUDIO_RENTAL", + "STREAMING_TAX_TYPE_TELCO_AUDIO_SALES", + "STREAMING_TAX_TYPE_TELCO_AUDIO_MULTI_CHANNEL" + ], + "enumDescriptions": [ + "No telecommunications tax collected.", + "US-specific telecommunications tax tier for video streaming, on demand, rentals / subscriptions / pay-per-view.", + "US-specific telecommunications tax tier for video streaming of pre-recorded content like movies, tv shows.", + "US-specific telecommunications tax tier for video streaming of multi-channel programming.", + "US-specific telecommunications tax tier for audio streaming, rental / subscription.", + "US-specific telecommunications tax tier for audio streaming, sale / permanent download.", + "US-specific telecommunications tax tier for multi channel audio streaming like radio." + ], + "type": "string" + }, "taxTier": { "description": "Tax tier to specify reduced tax rate. Developers who sell digital news, magazines, newspapers, books, or audiobooks in various regions may be eligible for reduced tax rates. [Learn more](https://support.google.com/googleplay/android-developer/answer/10463498).", "enum": [ @@ -4215,6 +5802,23 @@ }, "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.", + "type": "string" + } + }, + "type": "object" + }, + "ReplacementCancellation": { + "description": "Information specific to cancellations caused by subscription replacement.", + "id": "ReplacementCancellation", + "properties": {}, + "type": "object" + }, "Review": { "description": "An Android app review.", "id": "Review", @@ -4296,6 +5900,71 @@ }, "type": "object" }, + "SubscribeWithGoogleInfo": { + "description": "Information associated with purchases made with 'Subscribe with Google'.", + "id": "SubscribeWithGoogleInfo", + "properties": { + "emailAddress": { + "description": "The email address of the user when the subscription was purchased.", + "type": "string" + }, + "familyName": { + "description": "The family name of the user when the subscription was purchased.", + "type": "string" + }, + "givenName": { + "description": "The given name of the user when the subscription was purchased.", + "type": "string" + }, + "profileId": { + "description": "The Google profile id of the user when the subscription was purchased.", + "type": "string" + }, + "profileName": { + "description": "The profile name of the user when the subscription was purchased.", + "type": "string" + } + }, + "type": "object" + }, + "Subscription": { + "description": "A single subscription for an app.", + "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.", + "readOnly": true, + "type": "boolean" + }, + "basePlans": { + "description": "The set of base plans for this subscription. Represents the prices and duration of the subscription if no other offers apply.", + "items": { + "$ref": "BasePlan" + }, + "type": "array" + }, + "listings": { + "description": "Required. List of localized listings for this subscription. Must contain at least an entry for the default language of the parent app.", + "items": { + "$ref": "SubscriptionListing" + }, + "type": "array" + }, + "packageName": { + "description": "Immutable. Package name of the parent app.", + "type": "string" + }, + "productId": { + "description": "Immutable. Unique product ID of the product. Unique within the parent app. Product IDs must be composed of lower-case letters (a-z), numbers (0-9), underscores (_) and dots (.). It must start with a lower-case letter or number, and be between 1 and 40 (inclusive) characters in length.", + "type": "string" + }, + "taxAndComplianceSettings": { + "$ref": "SubscriptionTaxAndComplianceSettings", + "description": "Details about taxes and legal compliance." + } + }, + "type": "object" + }, "SubscriptionCancelSurveyResult": { "description": "Information provided by the user when they complete the subscription cancellation flow (cancellation reason survey).", "id": "SubscriptionCancelSurveyResult", @@ -4329,6 +5998,189 @@ }, "type": "object" }, + "SubscriptionItemPriceChangeDetails": { + "description": "Price change related information of a subscription item.", + "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.", + "format": "google-datetime", + "type": "string" + }, + "newPrice": { + "$ref": "Money", + "description": "New recurring price for the subscription item." + }, + "priceChangeMode": { + "description": "Price change mode specifies how the subscription item price is changing.", + "enum": [ + "PRICE_CHANGE_MODE_UNSPECIFIED", + "PRICE_DECREASE", + "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." + ], + "type": "string" + }, + "priceChangeState": { + "description": "State the price change is currently in.", + "enum": [ + "PRICE_CHANGE_STATE_UNSPECIFIED", + "OUTSTANDING", + "CONFIRMED", + "APPLIED" + ], + "enumDescriptions": [ + "Price change state unspecified. This value should not be used.", + "Waiting for the user to agree for the price change.", + "The price change is confirmed to happen for the user.", + "The price change is applied, i.e. the user has started being charged the new price." + ], + "type": "string" + } + }, + "type": "object" + }, + "SubscriptionListing": { + "description": "The consumer-visible metadata of a subscription.", + "id": "SubscriptionListing", + "properties": { + "benefits": { + "description": "A list of benefits shown to the user on platforms such as the Play Store and in restoration flows in the language of this listing. Plain text. Ordered list of at most four benefits.", + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "description": "The description of this subscription in the language of this listing. Maximum length - 80 characters. Plain text.", + "type": "string" + }, + "languageCode": { + "description": "Required. The language of this listing, as defined by BCP-47, e.g. \"en-US\".", + "type": "string" + }, + "title": { + "description": "Required. The title of this subscription in the language of this listing. Plain text.", + "type": "string" + } + }, + "type": "object" + }, + "SubscriptionOffer": { + "description": "A single, temporary offer", + "id": "SubscriptionOffer", + "properties": { + "basePlanId": { + "description": "Required. Immutable. The ID of the base plan to which this offer is an extension.", + "type": "string" + }, + "offerId": { + "description": "Required. Immutable. Unique ID of this subscription offer. Must be unique within the base plan.", + "type": "string" + }, + "offerTags": { + "description": "List of up to 20 custom tags specified for this offer, and returned to the app through the billing library.", + "items": { + "$ref": "OfferTag" + }, + "type": "array" + }, + "otherRegionsConfig": { + "$ref": "OtherRegionsSubscriptionOfferConfig", + "description": "The configuration for any new locations Play may launch in the future." + }, + "packageName": { + "description": "Required. Immutable. The package name of the app the parent subscription belongs to.", + "type": "string" + }, + "phases": { + "description": "Required. The phases of this subscription offer. Must contain at least one entry, and may contain at most five. Users will always receive all these phases in the specified order. Phases may not be added, removed, or reordered after initial creation.", + "items": { + "$ref": "SubscriptionOfferPhase" + }, + "type": "array" + }, + "productId": { + "description": "Required. Immutable. The ID of the parent subscription this offer belongs to.", + "type": "string" + }, + "regionalConfigs": { + "description": "Required. The region-specific configuration of this offer. Must contain at least one entry.", + "items": { + "$ref": "RegionalSubscriptionOfferConfig" + }, + "type": "array" + }, + "state": { + "description": "Output only. The current state of this offer. Can be changed using Activate and Deactivate actions. NB: the base plan state supersedes this state, so an active offer may not be available if the base plan is not active.", + "enum": [ + "STATE_UNSPECIFIED", + "DRAFT", + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Default value, should never be used.", + "The subscription offer is not and has never been available to users.", + "The subscription offer is available to new and existing users.", + "The subscription offer is not available to new users. Existing users retain access." + ], + "readOnly": true, + "type": "string" + }, + "targeting": { + "$ref": "SubscriptionOfferTargeting", + "description": "The requirements that users need to fulfil to be eligible for this offer. Represents the requirements that Play will evaluate to decide whether an offer should be returned. Developers may further filter these offers themselves." + } + }, + "type": "object" + }, + "SubscriptionOfferPhase": { + "description": "A single phase of a subscription offer.", + "id": "SubscriptionOfferPhase", + "properties": { + "duration": { + "description": "Required. The duration of a single recurrence of this phase. Specified in ISO 8601 format.", + "type": "string" + }, + "otherRegionsConfig": { + "$ref": "OtherRegionsSubscriptionOfferPhaseConfig", + "description": "Pricing information for any new locations Play may launch in." + }, + "recurrenceCount": { + "description": "Required. The number of times this phase repeats. If this offer phase is not free, each recurrence charges the user the price of this offer phase.", + "format": "int32", + "type": "integer" + }, + "regionalConfigs": { + "description": "Required. The region-specific configuration of this offer phase. This list must contain exactly one entry for each region for which the subscription offer has a regional config.", + "items": { + "$ref": "RegionalSubscriptionOfferPhaseConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "SubscriptionOfferTargeting": { + "description": "Defines the rule a user needs to satisfy to receive this offer.", + "id": "SubscriptionOfferTargeting", + "properties": { + "acquisitionRule": { + "$ref": "AcquisitionTargetingRule", + "description": "Offer targeting rule for new user acquisition." + }, + "upgradeRule": { + "$ref": "UpgradeTargetingRule", + "description": "Offer targeting rule for upgrading users' existing plans." + } + }, + "type": "object" + }, "SubscriptionPriceChange": { "description": "Contains the price change information for a subscription that can be used to control the user journey for the price change in the app. This can be in the form of seeking confirmation from the user or tailoring the experience for a successful conversion.", "id": "SubscriptionPriceChange", @@ -4478,6 +6330,127 @@ }, "type": "object" }, + "SubscriptionPurchaseLineItem": { + "description": "Item-level info for a subscription purchase.", + "id": "SubscriptionPurchaseLineItem", + "properties": { + "autoRenewingPlan": { + "$ref": "AutoRenewingPlan", + "description": "The item is auto renewing." + }, + "expiryTime": { + "description": "Time at which the subscription expired or will expire unless the access is extended (ex. renews).", + "format": "google-datetime", + "type": "string" + }, + "offerDetails": { + "$ref": "OfferDetails", + "description": "The offer details for this item." + }, + "prepaidPlan": { + "$ref": "PrepaidPlan", + "description": "The item is prepaid." + }, + "productId": { + "description": "The purchased product ID (for example, 'monthly001').", + "type": "string" + } + }, + "type": "object" + }, + "SubscriptionPurchaseV2": { + "description": "Indicates the status of a user's subscription purchase.", + "id": "SubscriptionPurchaseV2", + "properties": { + "acknowledgementState": { + "description": "The acknowledgement state of the subscription.", + "enum": [ + "ACKNOWLEDGEMENT_STATE_UNSPECIFIED", + "ACKNOWLEDGEMENT_STATE_PENDING", + "ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED" + ], + "enumDescriptions": [ + "Unspecified acknowledgement state.", + "The subscription is not acknowledged yet.", + "The subscription is acknowledged." + ], + "type": "string" + }, + "canceledStateContext": { + "$ref": "CanceledStateContext", + "description": "Additional context around canceled subscriptions. Only present if the subscription currently has subscription_state SUBSCRIPTION_STATE_CANCELED." + }, + "externalAccountIdentifiers": { + "$ref": "ExternalAccountIdentifiers", + "description": "User account identifier in the third-party service." + }, + "kind": { + "description": "This kind represents a SubscriptionPurchaseV2 object in the androidpublisher service.", + "type": "string" + }, + "latestOrderId": { + "description": "The order id of the latest order associated with the purchase of the subscription. For autoRenewing subscription, this is the order id of signup order if it is not renewed yet, or the last recurring order id (success, pending, or declined order). For prepaid subscription, this is the order id associated with the queried purchase token.", + "type": "string" + }, + "lineItems": { + "description": "Item-level info for a subscription purchase. The items in the same purchase should be either all with AutoRenewingPlan or all with PrepaidPlan.", + "items": { + "$ref": "SubscriptionPurchaseLineItem" + }, + "type": "array" + }, + "linkedPurchaseToken": { + "description": "The purchase token of the old subscription if this subscription is one of the following: * Re-signup of a canceled but non-lapsed subscription * Upgrade/downgrade from a previous subscription. * Convert from prepaid to auto renewing subscription. * Convert from an auto renewing subscription to prepaid. * Topup a prepaid subscription.", + "type": "string" + }, + "pausedStateContext": { + "$ref": "PausedStateContext", + "description": "Additional context around paused subscriptions. Only present if the subscription currently has subscription_state SUBSCRIPTION_STATE_PAUSED." + }, + "regionCode": { + "description": "ISO 3166-1 alpha-2 billing country/region code of the user at the time the subscription was granted.", + "type": "string" + }, + "startTime": { + "description": "Time at which the subscription was granted. Not set for pending subscriptions (subscription was created but awaiting payment during signup).", + "format": "google-datetime", + "type": "string" + }, + "subscribeWithGoogleInfo": { + "$ref": "SubscribeWithGoogleInfo", + "description": "User profile associated with purchases made with 'Subscribe with Google'." + }, + "subscriptionState": { + "description": "The current state of the subscription.", + "enum": [ + "SUBSCRIPTION_STATE_UNSPECIFIED", + "SUBSCRIPTION_STATE_PENDING", + "SUBSCRIPTION_STATE_ACTIVE", + "SUBSCRIPTION_STATE_PAUSED", + "SUBSCRIPTION_STATE_IN_GRACE_PERIOD", + "SUBSCRIPTION_STATE_ON_HOLD", + "SUBSCRIPTION_STATE_CANCELED", + "SUBSCRIPTION_STATE_EXPIRED" + ], + "enumDescriptions": [ + "Unspecified subscription state.", + "Subscription was created but awaiting payment during signup. In this state, all items are awaiting payment.", + "Subscription is active. - (1) If the subscription is an auto renewing plan, at least one item is auto_renew_enabled and not expired. - (2) If the subscription is a prepaid plan, at least one item is not expired.", + "Subscription is paused. The state is only available when the subscription is an auto renewing plan. In this state, all items are in paused state.", + "Subscription is in grace period. The state is only available when the subscription is an auto renewing plan. In this state, all items are in grace period.", + "Subscription is on hold (suspended). The state is only available when the subscription is an auto renewing plan. In this state, all items are on hold.", + "Subscription is canceled but not expired yet. The state is only available when the subscription is an auto renewing plan. All items have auto_renew_enabled set to false.", + "Subscription is expired. All items have expiry_time in the past." + ], + "type": "string" + }, + "testPurchase": { + "$ref": "TestPurchase", + "description": "Only present if this subscription purchase is a test purchase." + } + }, + "type": "object" + }, "SubscriptionPurchasesAcknowledgeRequest": { "description": "Request for the purchases.subscriptions.acknowledge API.", "id": "SubscriptionPurchasesAcknowledgeRequest", @@ -4554,8 +6527,42 @@ }, "type": "object" }, + "SystemFeature": { + "description": "Representation of a system feature.", + "id": "SystemFeature", + "properties": { + "name": { + "description": "The name of the feature.", + "type": "string" + } + }, + "type": "object" + }, + "SystemInitiatedCancellation": { + "description": "Information specific to cancellations initiated by Google system.", + "id": "SystemInitiatedCancellation", + "properties": {}, + "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", + "properties": { + "specificSubscriptionInApp": { + "description": "The scope of the current targeting rule is the subscription with the specified subscription ID. Must be a subscription within the same parent app.", + "type": "string" + } + }, + "type": "object" + }, + "TestPurchase": { + "description": "Whether this subscription purchase is a test purchase.", + "id": "TestPurchase", + "properties": {}, + "type": "object" + }, "Testers": { - "description": "The testers of an app. The resource for TestersService.", + "description": "The testers of an app. The resource for TestersService. Note: while it is possible in the Play Console UI to add testers via email lists, email lists are not supported by this resource.", "id": "Testers", "properties": { "googleGroups": { @@ -4726,6 +6733,25 @@ }, "type": "object" }, + "UpgradeTargetingRule": { + "description": "Represents a targeting rule of the form: User currently has {scope} [with billing period {billing_period}].", + "id": "UpgradeTargetingRule", + "properties": { + "billingPeriodDuration": { + "description": "The specific billing period duration, specified in ISO 8601 format, that a user must be currently subscribed to to be eligible for this rule. If not specified, users subscribed to any billing period are matched.", + "type": "string" + }, + "oncePerUser": { + "description": "Limit this offer to only once per user. If set to true, a user can never be eligible for this offer again if they ever subscribed to this offer.", + "type": "boolean" + }, + "scope": { + "$ref": "TargetingRuleScope", + "description": "Required. The scope of subscriptions this rule considers. Only allows \"this subscription\" and \"specific subscription in app\"." + } + }, + "type": "object" + }, "User": { "description": "A user resource.", "id": "User", @@ -4795,7 +6821,7 @@ "type": "string" }, "expirationTime": { - "description": "The time at which the user's access expires, if set.", + "description": "The time at which the user's access expires, if set. When setting this value, it must always be in the future.", "format": "google-datetime", "type": "string" }, @@ -4812,7 +6838,7 @@ "type": "string" }, "partial": { - "description": "Output only. Whether there are more permissions for the user that are not represented here.", + "description": "Output only. Whether there are more permissions for the user that are not represented here. This can happen if the caller does not have permission to manage all apps in the account. This is also `true` if this user is the account owner. If this field is `true`, it should be taken as a signal that this user cannot be fully managed via the API. That is, the API caller is not be able to manage all of the permissions this user holds, either because it doesn't know about them or because the user is the account owner.", "readOnly": true, "type": "boolean" } @@ -4879,6 +6905,22 @@ }, "type": "object" }, + "UserInitiatedCancellation": { + "description": "Information specific to cancellations initiated by users.", + "id": "UserInitiatedCancellation", + "properties": { + "cancelSurveyResult": { + "$ref": "CancelSurveyResult", + "description": "Information provided by the user when they complete the subscription cancellation flow (cancellation reason survey)." + }, + "cancelTime": { + "description": "The time at which the subscription was canceled by the user. The user might still have access to the subscription after this time. Use line_items.expiry_time to determine if a user still has access.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "UsesPermission": { "description": "A permission used by this APK.", "id": "UsesPermission", diff --git a/etc/api/apigateway/v1/apigateway-api.json b/etc/api/apigateway/v1/apigateway-api.json index d2421f73f0..15ac76c9f3 100644 --- a/etc/api/apigateway/v1/apigateway-api.json +++ b/etc/api/apigateway/v1/apigateway-api.json @@ -143,7 +143,7 @@ ], "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).", + "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" }, @@ -277,7 +277,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -382,7 +382,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -410,7 +410,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -546,7 +546,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -651,7 +651,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -679,7 +679,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -802,7 +802,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -907,7 +907,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -935,7 +935,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -1083,7 +1083,7 @@ } } }, - "revision": "20220223", + "revision": "20221213", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { @@ -1280,7 +1280,7 @@ "type": "object" }, "ApigatewayAuditConfig": { - "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.", + "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": "ApigatewayAuditConfig", "properties": { "auditLogConfigs": { @@ -1336,7 +1336,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1727,7 +1727,7 @@ "properties": { "policy": { "$ref": "ApigatewayPolicy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1769,7 +1769,7 @@ "id": "ApigatewayTestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1793,7 +1793,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/apigateway/v1beta/apigateway-api.json b/etc/api/apigateway/v1beta/apigateway-api.json index bacb635914..34bcb72f0c 100644 --- a/etc/api/apigateway/v1beta/apigateway-api.json +++ b/etc/api/apigateway/v1beta/apigateway-api.json @@ -143,7 +143,7 @@ ], "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).", + "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" }, @@ -277,7 +277,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -382,7 +382,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -410,7 +410,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+$", "required": true, @@ -546,7 +546,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -651,7 +651,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -679,7 +679,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/apis/[^/]+/configs/[^/]+$", "required": true, @@ -802,7 +802,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -907,7 +907,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -935,7 +935,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gateways/[^/]+$", "required": true, @@ -1083,7 +1083,7 @@ } } }, - "revision": "20220223", + "revision": "20221213", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { @@ -1284,7 +1284,7 @@ "type": "object" }, "ApigatewayAuditConfig": { - "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.", + "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": "ApigatewayAuditConfig", "properties": { "auditLogConfigs": { @@ -1351,7 +1351,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1753,7 +1753,7 @@ "properties": { "policy": { "$ref": "ApigatewayPolicy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1795,7 +1795,7 @@ "id": "ApigatewayTestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1819,7 +1819,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/apigee/v1/apigee-api.json b/etc/api/apigee/v1/apigee-api.json index 0772bd2f5e..e37eee9bce 100644 --- a/etc/api/apigee/v1/apigee-api.json +++ b/etc/api/apigee/v1/apigee-api.json @@ -148,7 +148,7 @@ "parameterOrder": [], "parameters": { "parent": { - "description": "Required. Name of the GCP project in which to associate the Apigee organization. Pass the information as a query parameter using the following structure in your request: `projects/`", + "description": "Required. Name of the Google Cloud project in which to associate the Apigee organization. Pass the information as a query parameter using the following structure in your request: `projects/`", "location": "query", "type": "string" } @@ -165,7 +165,7 @@ ] }, "delete": { - "description": "Delete an Apigee organization. Only supported for SubscriptionType TRIAL.", + "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.", "flatPath": "v1/organizations/{organizationsId}", "httpMethod": "DELETE", "id": "apigee.organizations.delete", @@ -179,6 +179,19 @@ "pattern": "^organizations/[^/]+$", "required": true, "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.", + "enum": [ + "DELETION_RETENTION_UNSPECIFIED", + "MINIMUM" + ], + "enumDescriptions": [ + "Default data retention setting of seven days will be applied.", + "Organization data will be retained for the minimum period of 24 hours." + ], + "location": "query", + "type": "string" } }, "path": "v1/{+name}", @@ -254,6 +267,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getProjectMapping": { + "description": "Gets the project ID and region for an Apigee organization.", + "flatPath": "v1/organizations/{organizationsId}:getProjectMapping", + "httpMethod": "GET", + "id": "apigee.organizations.getProjectMapping", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Apigee organization name in the following format: `organizations/{org}`", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:getProjectMapping", + "response": { + "$ref": "GoogleCloudApigeeV1OrganizationProjectMapping" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getRuntimeConfig": { "description": "Get runtime config for an organization.", "flatPath": "v1/organizations/{organizationsId}/runtimeConfig", @@ -308,7 +346,7 @@ ] }, "list": { - "description": "Lists the Apigee organizations and associated GCP projects that you have permission to access. See [Understanding organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure).", + "description": "Lists the Apigee organizations and associated Google Cloud projects that you have permission to access. See [Understanding organizations](https://cloud.google.com/apigee/docs/api-platform/fundamentals/organization-structure).", "flatPath": "v1/organizations", "httpMethod": "GET", "id": "apigee.organizations.list", @@ -1309,6 +1347,126 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "entries": { + "methods": { + "create": { + "description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "POST", + "id": "apigee.organizations.apis.keyvaluemaps.entries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.apis.keyvaluemaps.entries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "GET", + "id": "apigee.organizations.apis.keyvaluemaps.entries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "GET", + "id": "apigee.organizations.apis.keyvaluemaps.entries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Scope as indicated by the URI in which to list key value maps. 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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "response": { + "$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "revisions": { @@ -2118,7 +2276,7 @@ ] }, "generateKeyPairOrUpdateDeveloperAppStatus": { - "description": "Manages access to a developer app by enabling you to: * Approve or revoke a developer app * Generate a new consumer key and secret for a developer app To approve or revoke a developer app, set the `action` query parameter to `approved` or `revoked`, respectively, and the `Content-Type` header to `application/octet-stream`. If a developer app is revoked, none of its API keys are valid for API calls even though the keys are still `approved`. If successful, the API call returns the following HTTP status code: `204 No Content` To generate a new consumer key and secret for a developer app, pass the new key/secret details. Rather than replace an existing key, this API generates a new key. In this case, multiple key pairs may be associated with a single developer app. Each key pair has an independent status (`approved` or `revoked`) and expiration time. Any approved, non-expired key can be used in an API call. For example, if you're using API key rotation, you can generate new keys with expiration times that overlap keys that are going to expire. You might also generate a new consumer key/secret if the security of the original key/secret is compromised. The `keyExpiresIn` property defines the expiration time for the API key in milliseconds. If you don't set this property or set it to `-1`, the API key never expires. **Notes**: * When generating a new key/secret, this API replaces the existing attributes, notes, and callback URLs with those specified in the request. Include or exclude any existing information that you want to retain or delete, respectively. * To migrate existing consumer keys and secrets to hybrid from another system, see the CreateDeveloperAppKey API.", + "description": "Manages access to a developer app by enabling you to: * Approve or revoke a developer app * Generate a new consumer key and secret for a developer app To approve or revoke a developer app, set the `action` query parameter to `approve` or `revoke`, respectively, and the `Content-Type` header to `application/octet-stream`. If a developer app is revoked, none of its API keys are valid for API calls even though the keys are still approved. If successful, the API call returns the following HTTP status code: `204 No Content` To generate a new consumer key and secret for a developer app, pass the new key/secret details. Rather than replace an existing key, this API generates a new key. In this case, multiple key pairs may be associated with a single developer app. Each key pair has an independent status (`approve` or `revoke`) and expiration time. Any approved, non-expired key can be used in an API call. For example, if you're using API key rotation, you can generate new keys with expiration times that overlap keys that are going to expire. You might also generate a new consumer key/secret if the security of the original key/secret is compromised. The `keyExpiresIn` property defines the expiration time for the API key in milliseconds. If you don't set this property or set it to `-1`, the API key never expires. **Notes**: * When generating a new key/secret, this API replaces the existing attributes, notes, and callback URLs with those specified in the request. Include or exclude any existing information that you want to retain or delete, respectively. * To migrate existing consumer keys and secrets to hybrid from another system, see the CreateDeveloperAppKey API.", "flatPath": "v1/organizations/{organizationsId}/developers/{developersId}/apps/{appsId}", "httpMethod": "POST", "id": "apigee.organizations.developers.apps.generateKeyPairOrUpdateDeveloperAppStatus", @@ -2908,7 +3066,7 @@ ], "parameters": { "endpointAttachmentId": { - "description": "ID to use for the endpoint attachment. The ID can contain lowercase letters and numbers, must start with a letter, and must be 1-20 characters in length.", + "description": "ID to use for the endpoint attachment. ID must start with a lowercase letter followed by up to 31 lowercase letters, numbers, or hyphens, and cannot end with a hyphen. The minimum length is 2.", "location": "query", "type": "string" }, @@ -3104,6 +3262,46 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getDeployedIngressConfig": { + "description": "Gets the deployed ingress configuration for an environment group.", + "flatPath": "v1/organizations/{organizationsId}/envgroups/{envgroupsId}/deployedIngressConfig", + "httpMethod": "GET", + "id": "apigee.organizations.envgroups.getDeployedIngressConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the deployed configuration for the environment group in the following format: 'organizations/{org}/envgroups/{envgroup}/deployedIngressConfig'.", + "location": "path", + "pattern": "^organizations/[^/]+/envgroups/[^/]+/deployedIngressConfig$", + "required": true, + "type": "string" + }, + "view": { + "description": "When set to FULL, additional details about the specific deployments receiving traffic will be included in the IngressConfig response's RoutingRules.", + "enum": [ + "INGRESS_CONFIG_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The default/unset value. The API will default to the BASIC view.", + "Include all ingress config data necessary for the runtime to configure ingress, but no more. Routing rules will include only basepath and destination environment. This the default value.", + "Include all ingress config data, including internal debug info for each routing rule such as the proxy claiming a particular basepath and when the routing rule first appeared in the env group." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1EnvironmentGroupConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all environment groups.", "flatPath": "v1/organizations/{organizationsId}/envgroups", @@ -3332,7 +3530,7 @@ ] }, "delete": { - "description": "Deletes an environment from an organization.", + "description": "Deletes an environment from an organization. **Warning: You must delete all key value maps and key value entries before you delete an environment.** Otherwise, if you re-create the environment the key value map entry operations will encounter encryption/decryption discrepancies.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", "httpMethod": "DELETE", "id": "apigee.organizations.environments.delete", @@ -3381,6 +3579,31 @@ "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", + "httpMethod": "GET", + "id": "apigee.organizations.environments.getApiSecurityRuntimeConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the environment API Security Runtime configuration resource. Use the following structure in your request: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig`", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/apiSecurityRuntimeConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1ApiSecurityRuntimeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getDebugmask": { "description": "Gets the debug mask singleton resource for an environment.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/debugmask", @@ -3447,7 +3670,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/environments/[^/]+$", "required": true, @@ -3487,6 +3710,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "modifyEnvironment": { + "description": "Updates properties for an Apigee environment with patch semantics using a field mask. **Note:** Not supported for Apigee hybrid.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}", + "httpMethod": "PATCH", + "id": "apigee.organizations.environments.modifyEnvironment", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the environment. Use the following structure in your request: `organizations/{org}/environments/{environment}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "List of fields to be updated. Fields that can be updated: node_config.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1Environment" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the IAM policy on an environment, if the policy already exists it will be replaced. For more information, see [Manage users, roles, and permissions using the API](https://cloud.google.com/apigee/docs/api-platform/system-administration/manage-users-roles). You must have the `apigee.environments.setIamPolicy` permission to call this API.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}:setIamPolicy", @@ -3497,7 +3754,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/environments/[^/]+$", "required": true, @@ -3550,7 +3807,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/environments/[^/]+$", "required": true, @@ -4897,6 +5154,126 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "entries": { + "methods": { + "create": { + "description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "POST", + "id": "apigee.organizations.environments.keyvaluemaps.entries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.environments.keyvaluemaps.entries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "GET", + "id": "apigee.organizations.environments.keyvaluemaps.entries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "GET", + "id": "apigee.organizations.environments.keyvaluemaps.entries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Scope as indicated by the URI in which to list key value maps. 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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "response": { + "$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "optimizedStats": { @@ -5083,6 +5460,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getResulturl": { + "description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is sent to the client as a list of urls to JSON files.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries/{queriesId}/resulturl", + "httpMethod": "GET", + "id": "apigee.organizations.environments.queries.getResulturl", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the asynchronous query result to get. Must be of the form `organizations/{org}/environments/{env}/queries/{queryId}/resulturl`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/queries/[^/]+/resulturl$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Return a list of Asynchronous Queries", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/queries", @@ -5474,6 +5876,234 @@ } } }, + "securityReports": { + "methods": { + "create": { + "description": "Submit a report request to be processed in the background. If the submission succeeds, the API returns a 200 status and an ID that refer to the report request. In addition to the HTTP status 200, the `state` of \"enqueued\" means that the request succeeded.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityReports.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityReports", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityReportQuery" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get security report status If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityReports.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getResult": { + "description": "After the query is completed, use this API to retrieve the results as file. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}/result", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityReports.getResult", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report result to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/result`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+/result$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleApiHttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getResultView": { + "description": "After the query is completed, use this API to view the query result when result size is small.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports/{securityReportsId}/resultView", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityReports.getResultView", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report result view to get. Must be of the form `organizations/{org}/environments/{env}/securityReports/{reportId}/resultView`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityReports/[^/]+/resultView$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReportResultView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Return a list of Security Reports", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityReports", + "httpMethod": "GET", + "id": "apigee.organizations.environments.securityReports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataset": { + "description": "Filter response list by dataset. Example: `api`, `mint`", + "location": "query", + "type": "string" + }, + "from": { + "description": "Filter response list by returning security reports that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of security report to return in the list response.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token returned from the previous list response to fetch the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name. Must be of the form `organizations/{org}/environments/{env}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + }, + "status": { + "description": "Filter response list by security reports status.", + "location": "query", + "type": "string" + }, + "submittedBy": { + "description": "Filter response list by user who submitted queries.", + "location": "query", + "type": "string" + }, + "to": { + "description": "Filter response list by returning security reports that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/securityReports", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityReportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "securityStats": { + "methods": { + "queryTabularStats": { + "description": "Retrieve security statistics as tabular rows.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityStats:queryTabularStats", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityStats.queryTabularStats", + "parameterOrder": [ + "orgenv" + ], + "parameters": { + "orgenv": { + "description": "Required. Should be of the form organizations//environments/.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+orgenv}/securityStats:queryTabularStats", + "request": { + "$ref": "GoogleCloudApigeeV1QueryTabularStatsRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1QueryTabularStatsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "queryTimeSeriesStats": { + "description": "Retrieve security statistics as a collection of time series.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityStats:queryTimeSeriesStats", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityStats.queryTimeSeriesStats", + "parameterOrder": [ + "orgenv" + ], + "parameters": { + "orgenv": { + "description": "Required. Should be of the form organizations//environments/.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+orgenv}/securityStats:queryTimeSeriesStats", + "request": { + "$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "sharedflows": { "resources": { "deployments": { @@ -6140,6 +6770,179 @@ } } }, + "hostSecurityReports": { + "methods": { + "create": { + "description": "Submit a query at host level to be processed in the background. If the submission of the query succeeds, the API returns a 201 status and an ID that refer to the query. In addition to the HTTP status 201, the `state` of \"enqueued\" means that the request succeeded.", + "flatPath": "v1/organizations/{organizationsId}/hostSecurityReports", + "httpMethod": "POST", + "id": "apigee.organizations.hostSecurityReports.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/hostSecurityReports", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityReportQuery" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get status of a query submitted at host level. If the query is still in progress, the `state` is set to \"running\" After the query has completed successfully, `state` is set to \"completed\"", + "flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}", + "httpMethod": "GET", + "id": "apigee.organizations.hostSecurityReports.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report to get. Must be of the form `organizations/{org}/securityReports/{reportId}`.", + "location": "path", + "pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReport" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getResult": { + "description": "After the query is completed, use this API to retrieve the results. If the request succeeds, and there is a non-zero result set, the result is downloaded to the client as a zipped JSON file. The name of the downloaded file will be: OfflineQueryResult-.zip Example: `OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip`", + "flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}/result", + "httpMethod": "GET", + "id": "apigee.organizations.hostSecurityReports.getResult", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report result to get. Must be of the form `organizations/{org}/securityReports/{reportId}/result`.", + "location": "path", + "pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+/result$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleApiHttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getResultView": { + "description": "After the query is completed, use this API to view the query result when result size is small.", + "flatPath": "v1/organizations/{organizationsId}/hostSecurityReports/{hostSecurityReportsId}/resultView", + "httpMethod": "GET", + "id": "apigee.organizations.hostSecurityReports.getResultView", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the security report result view to get. Must be of the form `organizations/{org}/securityReports/{reportId}/resultView`.", + "location": "path", + "pattern": "^organizations/[^/]+/hostSecurityReports/[^/]+/resultView$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityReportResultView" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Return a list of Security Reports at host level.", + "flatPath": "v1/organizations/{organizationsId}/hostSecurityReports", + "httpMethod": "GET", + "id": "apigee.organizations.hostSecurityReports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataset": { + "description": "Filter response list by dataset. Example: `api`, `mint`", + "location": "query", + "type": "string" + }, + "envgroupHostname": { + "description": "Required. Filter response list by hostname.", + "location": "query", + "type": "string" + }, + "from": { + "description": "Filter response list by returning security reports that created after this date time. Time must be in ISO date-time format like '2011-12-03T10:15:30Z'.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of security report to return in the list response.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token returned from the previous list response to fetch the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name. Must be of the form `organizations/{org}`.", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + }, + "status": { + "description": "Filter response list by security report status.", + "location": "query", + "type": "string" + }, + "submittedBy": { + "description": "Filter response list by user who submitted queries.", + "location": "query", + "type": "string" + }, + "to": { + "description": "Filter response list by returning security reports that created before this date time. Time must be in ISO date-time format like '2011-12-03T10:16:30Z'.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/hostSecurityReports", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityReportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "hostStats": { "methods": { "get": { @@ -6797,6 +7600,126 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "entries": { + "methods": { + "create": { + "description": "Creates key value entries in a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "POST", + "id": "apigee.organizations.keyvaluemaps.entries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a key value entry from a key value map scoped to an organization, environment, or API proxy. **Notes:** * After you delete the key value entry, the policy consuming the entry will continue to function with its cached values for a few minutes. This is expected behavior. * Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.keyvaluemaps.entries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to delete the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get the key value entry value for a key value map scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "GET", + "id": "apigee.organizations.keyvaluemaps.entries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to fetch the key value map entry/value. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}/entries/{entry}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}/entries/{entry}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}/entries/{entry}`.", + "location": "path", + "pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists key value entries for key values maps scoped to an organization, environment, or API proxy. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries", + "httpMethod": "GET", + "id": "apigee.organizations.keyvaluemaps.entries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of key value entries to return. If unspecified, at most 100 entries will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token. If provides, must be a valid key value entry returned from a previous call that can be used to retrieve the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Scope as indicated by the URI in which to list key value maps. 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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "response": { + "$ref": "GoogleCloudApigeeV1ListKeyValueEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -7108,6 +8031,194 @@ } } }, + "securityProfiles": { + "methods": { + "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}", + "httpMethod": "GET", + "id": "apigee.organizations.securityProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Security profile in the following format: `organizations/{org}/securityProfiles/{profile}'. Profile may optionally contain revision ID. If revision ID is not provided, the response will contain latest revision by default. Example: organizations/testOrg/securityProfiles/testProfile@5", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "ListSecurityProfiles lists all the security profiles associated with the org including attached and unattached profiles.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles", + "httpMethod": "GET", + "id": "apigee.organizations.securityProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of profiles to return. The service may return fewer than this value. If unspecified, at most 50 profiles will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListSecurityProfiles` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. For a specific organization, list of all the security profiles. Format: `organizations/{org}`", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfiles", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listRevisions": { + "description": "ListSecurityProfileRevisions lists all the revisions of the security profile.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}:listRevisions", + "httpMethod": "GET", + "id": "apigee.organizations.securityProfiles.listRevisions", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. For a specific profile, list all the revisions. Format: `organizations/{org}/securityProfiles/{profile}`", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of profile revisions to return. The service may return fewer than this value. If unspecified, at most 50 revisions will be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListSecurityProfileRevisions` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listRevisions", + "response": { + "$ref": "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "environments": { + "methods": { + "computeEnvironmentScores": { + "description": "ComputeEnvironmentScores calculates scores for requested time range for the specified security profile and environment.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments/{environmentsId}:computeEnvironmentScores", + "httpMethod": "POST", + "id": "apigee.organizations.securityProfiles.environments.computeEnvironmentScores", + "parameterOrder": [ + "profileEnvironment" + ], + "parameters": { + "profileEnvironment": { + "description": "Required. Name of organization and environment and profile id for which score needs to be computed. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+profileEnvironment}:computeEnvironmentScores", + "request": { + "$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "CreateSecurityProfileEnvironmentAssociation creates profile environment association i.e. attaches environment to security profile.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments", + "httpMethod": "POST", + "id": "apigee.organizations.securityProfiles.environments.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of organization and security profile ID. Format: organizations/{org}/securityProfiles/{profile}", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/environments", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "DeleteSecurityProfileEnvironmentAssociation removes profile environment association i.e. detaches environment from security profile.", + "flatPath": "v1/organizations/{organizationsId}/securityProfiles/{securityProfilesId}/environments/{environmentsId}", + "httpMethod": "DELETE", + "id": "apigee.organizations.securityProfiles.environments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the environment attachment to delete. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", + "location": "path", + "pattern": "^organizations/[^/]+/securityProfiles/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "sharedflows": { "methods": { "create": { @@ -7563,7 +8674,7 @@ } } }, - "revision": "20220301", + "revision": "20230104", "rootUrl": "https://apigee.googleapis.com/", "schemas": { "EdgeConfigstoreBundleBadBundle": { @@ -7693,6 +8804,10 @@ "$ref": "GoogleCloudApigeeV1AdvancedApiOpsConfig", "description": "Configuration for the Advanced API Ops add-on." }, + "apiSecurityConfig": { + "$ref": "GoogleCloudApigeeV1ApiSecurityConfig", + "description": "Configuration for the API Security add-on." + }, "connectorsPlatformConfig": { "$ref": "GoogleCloudApigeeV1ConnectorsPlatformConfig", "description": "Configuration for the Connectors Platform add-on." @@ -7841,6 +8956,7 @@ "id": "GoogleCloudApigeeV1ApiProduct", "properties": { "apiResources": { + "description": "Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the `proxy.pathsuffix` variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the `apiResources` element is defined to be `/forecastrss` and the base path defined for the API proxy is `/weather`, then only requests to `/weather/forecastrss` are permitted by the API product. You can select a specific path, or you can select all subpaths with the following wildcard: - `/**`: Indicates that all sub-URIs are included. - `/*` : Indicates that only URIs one level down are included. By default, / supports the same resources as /** as well as the base path defined by the API proxy. For example, if the base path of the API proxy is `/v1/weatherapikey`, then the API product supports requests to `/v1/weatherapikey` and to any sub-URIs, such as `/v1/weatherapikey/forecastrss`, `/v1/weatherapikey/region/CA`, and so on. For more information, see Managing API products.", "items": { "type": "string" }, @@ -7863,7 +8979,7 @@ "type": "string" }, "description": { - "description": "Description of the API product. Include key information about the API product that is not captured by other fields. Comma-separated list of API resources to be bundled in the API product. By default, the resource paths are mapped from the `proxy.pathsuffix` variable. The proxy path suffix is defined as the URI fragment following the ProxyEndpoint base path. For example, if the `apiResources` element is defined to be `/forecastrss` and the base path defined for the API proxy is `/weather`, then only requests to `/weather/forecastrss` are permitted by the API product. You can select a specific path, or you can select all subpaths with the following wildcard: - `/**`: Indicates that all sub-URIs are included. - `/*` : Indicates that only URIs one level down are included. By default, / supports the same resources as /** as well as the base path defined by the API proxy. For example, if the base path of the API proxy is `/v1/weatherapikey`, then the API product supports requests to `/v1/weatherapikey` and to any sub-URIs, such as `/v1/weatherapikey/forecastrss`, `/v1/weatherapikey/region/CA`, and so on. For more information, see Managing API products.", + "description": "Description of the API product. Include key information about the API product that is not captured by other fields.", "type": "string" }, "displayName": { @@ -7905,6 +9021,20 @@ "description": "Number of request messages permitted per app by this API product for the specified `quotaInterval` and `quotaTimeUnit`. For example, a `quota` of 50, for a `quotaInterval` of 12 and a `quotaTimeUnit` of hours means 50 requests are allowed every 12 hours.", "type": "string" }, + "quotaCounterScope": { + "description": "Scope of the quota decides how the quota counter gets applied and evaluate for quota violation. If the Scope is set as PROXY, then all the operations defined for the APIproduct that are associated with the same proxy will share the same quota counter set at the APIproduct level, making it a global counter at a proxy level. If the Scope is set as OPERATION, then each operations get the counter set at the API product dedicated, making it a local counter. Note that, the QuotaCounterScope applies only when an operation does not have dedicated quota set for itself.", + "enum": [ + "QUOTA_COUNTER_SCOPE_UNSPECIFIED", + "PROXY", + "OPERATION" + ], + "enumDescriptions": [ + "When quota is not explicitly defined for each operation(REST/GraphQL), the limits set at product level will be used as a local counter for quota evaluation by all the operations, independent of proxy association.", + "When quota is not explicitly defined for each operation(REST/GraphQL), set at product level will be used as a global counter for quota evaluation by all the operations associated with a particular proxy.", + "When quota is not explicitly defined for each operation(REST/GraphQL), the limits set at product level will be used as a local counter for quota evaluation by all the operations, independent of proxy association. This behavior mimics the same as QUOTA_COUNTER_SCOPE_UNSPECIFIED." + ], + "type": "string" + }, "quotaInterval": { "description": "Time interval over which the number of request messages is calculated.", "type": "string" @@ -7984,7 +9114,7 @@ "type": "boolean" }, "revision": { - "description": "Output only. List of revisons defined for the API proxy.", + "description": "Output only. List of revisions defined for the API proxy.", "items": { "type": "string" }, @@ -8158,6 +9288,55 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ApiSecurityConfig": { + "description": "Configurations of the API Security add-on.", + "id": "GoogleCloudApigeeV1ApiSecurityConfig", + "properties": { + "enabled": { + "description": "Flag that specifies whether the API security add-on is enabled.", + "type": "boolean" + }, + "expiresAt": { + "description": "Output only. Time at which the API Security add-on expires in in milliseconds since epoch. If unspecified, the add-on will never expire.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ApiSecurityRuntimeConfig": { + "description": "Response for GetApiSecurityRuntimeConfig[EnvironmentService.GetApiSecurityRuntimeConfig].", + "id": "GoogleCloudApigeeV1ApiSecurityRuntimeConfig", + "properties": { + "location": { + "description": "A list of up to 5 Cloud Storage Blobs that contain SecurityActions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of the environment API Security Runtime configuration resource. Format: `organizations/{org}/environments/{env}/apiSecurityRuntimeConfig`", + "type": "string" + }, + "revisionId": { + "description": "Revision ID of the API Security Runtime configuration. The higher the value, the more recently the configuration was deployed.", + "format": "int64", + "type": "string" + }, + "uid": { + "description": "Unique ID for the API Security Runtime configuration. The ID will only change if the environment is deleted and recreated.", + "type": "string" + }, + "updateTime": { + "description": "Time that the API Security Runtime configuration was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1App": { "id": "GoogleCloudApigeeV1App", "properties": { @@ -8577,6 +9756,62 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ComputeEnvironmentScoresRequest": { + "description": "Request for ComputeEnvironmentScores.", + "id": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequest", + "properties": { + "filters": { + "description": "Optional. Filters are used to filter scored components. Return all the components if no filter is mentioned. Example: [{ \"scorePath\": \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\" }, { \"scorePath\": \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target\", }] This will return components with path: \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\" OR \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/target\"", + "items": { + "$ref": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter" + }, + "type": "array" + }, + "pageSize": { + "description": "Optional. The maximum number of subcomponents to be returned in a single page. The service may return fewer than this value. If unspecified, at most 100 subcomponents will be returned in a single page.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Optional. 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" + }, + "timeRange": { + "$ref": "GoogleTypeInterval", + "description": "Required. Time range for score calculation. At most 14 days of scores will be returned." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter": { + "description": "Filter scores by component path. Used custom filter instead of AIP-160 as the use cases are highly constrained and predictable.", + "id": "GoogleCloudApigeeV1ComputeEnvironmentScoresRequestFilter", + "properties": { + "scorePath": { + "description": "Optional. Return scores for this component. Example: \"/org@myorg/envgroup@myenvgroup/env@myenv/proxies/proxy@myproxy/source\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ComputeEnvironmentScoresResponse": { + "description": "Response for ComputeEnvironmentScores.", + "id": "GoogleCloudApigeeV1ComputeEnvironmentScoresResponse", + "properties": { + "nextPageToken": { + "description": "A page token, received from a previous `ComputeScore` call. Provide this to retrieve the subsequent page.", + "type": "string" + }, + "scores": { + "description": "List of scores. One score per day.", + "items": { + "$ref": "GoogleCloudApigeeV1Score" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ConfigVersion": { "description": "Version of the API proxy configuration schema. Currently, only 4.0 is supported.", "id": "GoogleCloudApigeeV1ConfigVersion", @@ -9122,21 +10357,21 @@ "type": "string" }, "errors": { - "description": "Errors reported for this deployment. Populated only when state == ERROR. This field is not populated in List APIs.", + "description": "Errors reported for this deployment. Populated only when state == ERROR. **Note**: This field is displayed only when viewing deployment status.", "items": { "$ref": "GoogleRpcStatus" }, "type": "array" }, "instances": { - "description": "Status reported by each runtime instance. This field is not populated in List APIs.", + "description": "Status reported by each runtime instance. **Note**: This field is displayed only when viewing deployment status.", "items": { "$ref": "GoogleCloudApigeeV1InstanceDeploymentStatus" }, "type": "array" }, "pods": { - "description": "Status reported by runtime pods. This field is not populated for List APIs. **Note**: **This field is deprecated**. Runtime versions 1.3 and above report instance level status rather than pod status.", + "description": "Status reported by runtime pods. **Note**: **This field is deprecated**. Runtime versions 1.3 and above report instance level status rather than pod status.", "items": { "$ref": "GoogleCloudApigeeV1PodStatus" }, @@ -9147,7 +10382,7 @@ "type": "string" }, "routeConflicts": { - "description": "Conflicts in the desired state routing configuration. The presence of conflicts does not cause the state to be `ERROR`, but it will mean that some of the deployment's base paths are not routed to its environment. If the conflicts change, the state will transition to `PROGRESSING` until the latest configuration is rolled out to all instances. This field is not populated in List APIs.", + "description": "Conflicts in the desired state routing configuration. The presence of conflicts does not cause the state to be `ERROR`, but it will mean that some of the deployment's base paths are not routed to its environment. If the conflicts change, the state will transition to `PROGRESSING` until the latest configuration is rolled out to all instances. **Note**: This field is displayed only when viewing deployment status.", "items": { "$ref": "GoogleCloudApigeeV1DeploymentChangeReportRoutingConflict" }, @@ -9158,7 +10393,7 @@ "type": "string" }, "state": { - "description": "Current state of the deployment. This field is not populated in List APIs.", + "description": "Current state of the deployment. **Note**: This field is displayed only when viewing deployment status.", "enum": [ "RUNTIME_STATE_UNSPECIFIED", "READY", @@ -9271,7 +10506,7 @@ "type": "object" }, "GoogleCloudApigeeV1DeploymentConfig": { - "description": "NEXT ID: 9", + "description": "NEXT ID: 11", "id": "GoogleCloudApigeeV1DeploymentConfig", "properties": { "attributes": { @@ -9285,6 +10520,20 @@ "description": "Base path where the application will be hosted. Defaults to \"/\".", "type": "string" }, + "deploymentGroups": { + "description": "The list of deployment groups in which this proxy should be deployed. Not currently populated for shared flows.", + "items": { + "type": "string" + }, + "type": "array" + }, + "endpoints": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping from basepaths to proxy endpoint names in this proxy. Not populated for shared flows.", + "type": "object" + }, "location": { "description": "Location of the API proxy bundle as a URI.", "type": "string" @@ -9308,6 +10557,26 @@ }, "type": "object" }, + "GoogleCloudApigeeV1DeploymentGroupConfig": { + "description": "DeploymentGroupConfig represents a deployment group that should be present in a particular environment.", + "id": "GoogleCloudApigeeV1DeploymentGroupConfig", + "properties": { + "name": { + "description": "Name of the deployment group in the following format: `organizations/{org}/environments/{env}/deploymentGroups/{group}`.", + "type": "string" + }, + "revisionId": { + "description": "Revision number which can be used by the runtime to detect if the deployment group has changed between two versions.", + "format": "int64", + "type": "string" + }, + "uid": { + "description": "Unique ID. The ID will only change if the deployment group is deleted and recreated.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Developer": { "id": "GoogleCloudApigeeV1Developer", "properties": { @@ -9625,9 +10894,34 @@ "type": "object" }, "GoogleCloudApigeeV1EndpointAttachment": { - "description": "Apigee endpoint attachment. For more information, see Southbound networking patterns.", + "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", "properties": { + "connectionState": { + "description": "Output only. State of the endpoint attachment connection to the service attachment.", + "enum": [ + "CONNECTION_STATE_UNSPECIFIED", + "UNAVAILABLE", + "PENDING", + "ACCEPTED", + "REJECTED", + "CLOSED", + "FROZEN", + "NEEDS_ATTENTION" + ], + "enumDescriptions": [ + "The connection state has not been set.", + "The connection state is unavailable at this time, possibly because the endpoint attachment is currently being provisioned.", + "The connection is pending acceptance by the PSC producer.", + "The connection has been accepted by the PSC producer.", + "The connection has been rejected by the PSC producer.", + "The connection has been closed by the PSC producer and will not serve traffic going forward.", + "The connection has been frozen by the PSC producer and will not serve traffic.", + "The connection has been accepted by the PSC producer, but it is not ready to serve the traffic due to producer side issues." + ], + "readOnly": true, + "type": "string" + }, "host": { "description": "Output only. Host that can be used in either the HTTP target endpoint directly or as the host in target server.", "readOnly": true, @@ -9644,6 +10938,43 @@ "serviceAttachment": { "description": "Format: projects/*/regions/*/serviceAttachments/*", "type": "string" + }, + "state": { + "description": "Output only. State of the endpoint attachment. Values other than `ACTIVE` mean the resource is not ready to use.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "UPDATING" + ], + "enumDescriptions": [ + "Resource is in an unspecified state.", + "Resource is being created.", + "Resource is provisioned and ready to use.", + "The resource is being deleted.", + "The resource is being updated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1EndpointChainingRule": { + "description": "EndpointChainingRule specifies the proxies contained in a particular deployment group, so that other deployment groups can find them in chaining calls.", + "id": "GoogleCloudApigeeV1EndpointChainingRule", + "properties": { + "deploymentGroup": { + "description": "The deployment group to target for cross-shard chaining calls to these proxies.", + "type": "string" + }, + "proxyIds": { + "description": "List of proxy ids which may be found in the given deployment group.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -9714,6 +11045,10 @@ "description": "Optional. Display name for this environment.", "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.", + "type": "string" + }, "lastModifiedAt": { "description": "Output only. Last modification time of this environment as milliseconds since epoch.", "format": "int64", @@ -9724,6 +11059,10 @@ "description": "Required. Name of the environment. Values must match the regular expression `^[.\\\\p{Alnum}-_]{1,255}$`", "type": "string" }, + "nodeConfig": { + "$ref": "GoogleCloudApigeeV1NodeConfig", + "description": "Optional. NodeConfig of the environment." + }, "properties": { "$ref": "GoogleCloudApigeeV1Properties", "description": "Optional. Key-value pairs that may be used for customizing the environment." @@ -9773,6 +11112,13 @@ "$ref": "GoogleCloudApigeeV1DebugMask", "description": "Debug mask that applies to all deployments in the environment." }, + "deploymentGroups": { + "description": "List of deployment groups in the environment.", + "items": { + "$ref": "GoogleCloudApigeeV1DeploymentGroupConfig" + }, + "type": "array" + }, "deployments": { "description": "List of deployments in the environment.", "items": { @@ -9780,6 +11126,11 @@ }, "type": "array" }, + "envScopedRevisionId": { + "description": "Revision ID for environment-scoped resources (e.g. target servers, keystores) in this config. This ID will increment any time a resource not scoped to a deployment group changes.", + "format": "int64", + "type": "string" + }, "featureFlags": { "additionalProperties": { "type": "string" @@ -9794,6 +11145,10 @@ }, "type": "array" }, + "forwardProxyUri": { + "description": "The forward proxy's url to be used by the runtime. When set, runtime will send requests to the target via the given forward proxy. This is only used by programmable gateways.", + "type": "string" + }, "gatewayConfigLocation": { "description": "The location for the gateway config blob as a URI, e.g. a Cloud Storage URI. This is only used by Envoy-based gateways.", "type": "string" @@ -9922,6 +11277,11 @@ "description": "Required. ID of the attached environment.", "type": "string" }, + "environmentGroupId": { + "description": "Output only. ID of the environment group.", + "readOnly": true, + "type": "string" + }, "name": { "description": "ID of the environment group attachment.", "type": "string" @@ -9933,6 +11293,13 @@ "description": "EnvironmentGroupConfig is a revisioned snapshot of an EnvironmentGroup and its associated routing rules.", "id": "GoogleCloudApigeeV1EnvironmentGroupConfig", "properties": { + "endpointChainingRules": { + "description": "A list of proxies in each deployment group for proxy chaining calls.", + "items": { + "$ref": "GoogleCloudApigeeV1EndpointChainingRule" + }, + "type": "array" + }, "hostnames": { "description": "Host names for the environment group.", "items": { @@ -9940,6 +11307,10 @@ }, "type": "array" }, + "location": { + "description": "When this message appears in the top-level IngressConfig, this field will be populated in lieu of the inlined routing_rules and hostnames fields. Some URL for downloading the full EnvironmentGroupConfig for this group.", + "type": "string" + }, "name": { "description": "Name of the environment group in the following format: `organizations/{org}/envgroups/{envgroup}`.", "type": "string" @@ -10124,6 +11495,40 @@ }, "type": "object" }, + "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse": { + "description": "The response for GetAsyncQueryResultUrl", + "id": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponse", + "properties": { + "urls": { + "description": "The list of Signed URLs generated by the CreateAsyncQuery request", + "items": { + "$ref": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo": { + "description": "A Signed URL and the relevant metadata associated with it.", + "id": "GoogleCloudApigeeV1GetAsyncQueryResultUrlResponseURLInfo", + "properties": { + "md5": { + "description": "The MD5 Hash of the JSON data", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the returned file in bytes", + "format": "int64", + "type": "string" + }, + "uri": { + "description": "The signed URL of the JSON data. Will be of the form `https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount .com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1GetSyncAuthorizationRequest": { "description": "Request for GetSyncAuthorization.", "id": "GoogleCloudApigeeV1GetSyncAuthorizationRequest", @@ -10230,6 +11635,13 @@ "description": "Apigee runtime instance.", "id": "GoogleCloudApigeeV1Instance", "properties": { + "consumerAcceptList": { + "description": "Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.", + "items": { + "type": "string" + }, + "type": "array" + }, "createdAt": { "description": "Output only. Time the instance was created in milliseconds since epoch.", "format": "int64", @@ -10254,7 +11666,7 @@ "type": "string" }, "ipRange": { - "description": "Optional. IP range represents the customer-provided CIDR block of length 22 that will be used for the Apigee instance creation. This optional range, if provided, should be freely available as part of larger named range the customer has allocated to the Service Networking peering. If this is not provided, Apigee will automatically request for any available /22 CIDR block from Service Networking. The customer should use this CIDR block for configuring their firewall needs to allow traffic from Apigee. Input format: \"a.b.c.d/22\", Output format: a.b.c.d/22, e.f.g.h/28\"", + "description": "Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`", "type": "string" }, "lastModifiedAt": { @@ -10305,6 +11717,11 @@ "readOnly": true, "type": "string" }, + "serviceAttachment": { + "description": "Output only. Resource name of the service attachment created for the instance in the format: `projects/*/regions/*/serviceAttachments/*` Apigee customers can privately forward traffic to this service attachment using the PSC endpoints.", + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. State of the instance. Values other than `ACTIVE` means the resource is not ready to use.", "enum": [ @@ -10439,12 +11856,27 @@ }, "type": "object" }, + "GoogleCloudApigeeV1KeyValueEntry": { + "description": "Key value map pair where the value represents the data associated with the corresponding key. **Note**: Supported for Apigee hybrid 1.8.x and higher.", + "id": "GoogleCloudApigeeV1KeyValueEntry", + "properties": { + "name": { + "description": "Resource URI that can be used to identify the scope of the key value map entries.", + "type": "string" + }, + "value": { + "description": "Required. Data or payload that is being retrieved and associated with the unique key.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1KeyValueMap": { "description": "Collection of key/value string pairs.", "id": "GoogleCloudApigeeV1KeyValueMap", "properties": { "encrypted": { - "description": "Optional. Flag that specifies whether entry values will be encrypted. Enable to encrypt entry values.", + "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.", "type": "boolean" }, "name": { @@ -10467,7 +11899,7 @@ "type": "array" }, "name": { - "description": "Required. Resource ID for this keystore. Values must match the regular expression `[\\w[:space:]-.]{1,255}`.", + "description": "Required. Resource ID for this keystore. Values must match the regular expression `[\\w[:space:].-]{1,255}`.", "type": "string" } }, @@ -10534,6 +11966,7 @@ "type": "object" }, "GoogleCloudApigeeV1ListApiProxiesResponse": { + "description": "To change this message, in the same CL add a change log in go/changing-api-proto-breaks-ui", "id": "GoogleCloudApigeeV1ListApiProxiesResponse", "properties": { "proxies": { @@ -10826,6 +12259,24 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ListKeyValueEntriesResponse": { + "description": "The request structure for listing key value map keys and its corresponding values.", + "id": "GoogleCloudApigeeV1ListKeyValueEntriesResponse", + "properties": { + "keyValueEntries": { + "description": "One or more key value map keys and values.", + "items": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "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" + }, "GoogleCloudApigeeV1ListNatAddressesResponse": { "description": "Response for ListNatAddresses.", "id": "GoogleCloudApigeeV1ListNatAddressesResponse", @@ -10861,7 +12312,7 @@ "id": "GoogleCloudApigeeV1ListOrganizationsResponse", "properties": { "organizations": { - "description": "List of Apigee organizations and associated GCP projects.", + "description": "List of Apigee organizations and associated Google Cloud projects.", "items": { "$ref": "GoogleCloudApigeeV1OrganizationProjectMapping" }, @@ -10888,7 +12339,62 @@ }, "type": "object" }, + "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse": { + "description": "Response for ListSecurityProfileRevisions.", + "id": "GoogleCloudApigeeV1ListSecurityProfileRevisionsResponse", + "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" + }, + "securityProfiles": { + "description": "List of security profile revisions. The revisions may be attached or unattached to any environment.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ListSecurityProfilesResponse": { + "description": "Response for ListSecurityProfiles.", + "id": "GoogleCloudApigeeV1ListSecurityProfilesResponse", + "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" + }, + "securityProfiles": { + "description": "List of security profiles in the organization. The profiles may be attached or unattached to any environment. This will return latest revision of each profile.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityProfile" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ListSecurityReportsResponse": { + "description": "The response for SecurityReports.", + "id": "GoogleCloudApigeeV1ListSecurityReportsResponse", + "properties": { + "nextPageToken": { + "description": "If the number of security reports exceeded the page size requested, the token can be used to fetch the next page in a subsequent call. If the response is the last page and there are no more reports to return this field is left empty.", + "type": "string" + }, + "securityReports": { + "description": "The security reports belong to requested resource name.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityReport" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ListSharedFlowsResponse": { + "description": "To change this message, in the same CL add a change log in go/changing-api-proto-breaks-ui", "id": "GoogleCloudApigeeV1ListSharedFlowsResponse", "properties": { "sharedFlows": { @@ -10957,6 +12463,51 @@ }, "type": "object" }, + "GoogleCloudApigeeV1MetricAggregation": { + "description": "The optionally aggregated metric to query with its ordering.", + "id": "GoogleCloudApigeeV1MetricAggregation", + "properties": { + "aggregation": { + "description": "Aggregation function associated with the metric.", + "enum": [ + "AGGREGATION_FUNCTION_UNSPECIFIED", + "AVG", + "SUM", + "MIN", + "MAX", + "COUNT_DISTINCT" + ], + "enumDescriptions": [ + "Unspecified Aggregation function.", + "Average.", + "Summation.", + "Min.", + "Max.", + "Count distinct" + ], + "type": "string" + }, + "name": { + "description": "Name of the metric", + "type": "string" + }, + "order": { + "description": "Ordering for this aggregation in the result. For time series this is ignored since the ordering of points depends only on the timestamp, not the values.", + "enum": [ + "ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Unspecified order. Default is Descending.", + "Ascending sort order.", + "Descending sort order." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1MonetizationConfig": { "description": "Configuration for the Monetization add-on.", "id": "GoogleCloudApigeeV1MonetizationConfig", @@ -11003,6 +12554,29 @@ }, "type": "object" }, + "GoogleCloudApigeeV1NodeConfig": { + "description": "NodeConfig for setting the min/max number of nodes associated with the environment.", + "id": "GoogleCloudApigeeV1NodeConfig", + "properties": { + "currentAggregateNodeCount": { + "description": "Output only. The current total number of gateway nodes that each environment currently has across all instances.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "maxNodeCount": { + "description": "Optional. The maximum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended maximum number of nodes for that gateway.", + "format": "int64", + "type": "string" + }, + "minNodeCount": { + "description": "Optional. The minimum total number of gateway nodes that the is reserved for all instances that has the specified environment. If not specified, the default is determined by the recommended minimum number of nodes for that gateway.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Operation": { "description": "Represents the pairing of REST resource path and the actions (verbs) allowed on the resource path.", "id": "GoogleCloudApigeeV1Operation", @@ -11109,6 +12683,13 @@ "targetResourceName": { "description": "Name of the resource for which the operation is operating on.", "type": "string" + }, + "warnings": { + "description": "Warnings encountered while executing the operation.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -11211,7 +12792,12 @@ "description": "Addon configurations of the Apigee organization." }, "analyticsRegion": { - "description": "Required. Primary GCP 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).", + "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).", + "type": "string" + }, + "apigeeProjectId": { + "description": "Output only. Apigee Project ID associated with the organization. Use this project to allowlist Apigee in the Service Attachment when using private service connect with Apigee.", + "readOnly": true, "type": "string" }, "attributes": { @@ -11230,12 +12816,14 @@ "enum": [ "BILLING_TYPE_UNSPECIFIED", "SUBSCRIPTION", - "EVALUATION" + "EVALUATION", + "PAYG" ], "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. only.", + "Access to Apigee using a Pay-As-You-Go plan." ], "type": "string" }, @@ -11375,12 +12963,17 @@ "GoogleCloudApigeeV1OrganizationProjectMapping": { "id": "GoogleCloudApigeeV1OrganizationProjectMapping", "properties": { + "location": { + "description": "Output only. The Google Cloud region where control plane data is located. For more information, see https://cloud.google.com/about/locations/.", + "readOnly": true, + "type": "string" + }, "organization": { "description": "Name of the Apigee organization.", "type": "string" }, "projectId": { - "description": "GCP project associated with the Apigee organization", + "description": "Google Cloud project associated with the Apigee organization", "type": "string" }, "projectIds": { @@ -11624,6 +13217,191 @@ }, "type": "object" }, + "GoogleCloudApigeeV1QueryTabularStatsRequest": { + "description": "Request payload representing the query to be run for fetching security statistics as rows.", + "id": "GoogleCloudApigeeV1QueryTabularStatsRequest", + "properties": { + "dimensions": { + "description": "Required. List of dimension names to group the aggregations by.", + "items": { + "type": "string" + }, + "type": "array" + }, + "filter": { + "description": "Filter further on specific dimension values. Follows the same grammar as custom report's filter expressions. Example, apiproxy eq 'foobar'. https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters", + "type": "string" + }, + "metrics": { + "description": "Required. List of metrics and their aggregations.", + "items": { + "$ref": "GoogleCloudApigeeV1MetricAggregation" + }, + "type": "array" + }, + "pageSize": { + "description": "Page size represents the number of rows.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Identifies a sequence of rows.", + "type": "string" + }, + "timeRange": { + "$ref": "GoogleTypeInterval", + "description": "Time range for the stats." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1QueryTabularStatsResponse": { + "description": "Encapsulates two kinds of stats that are results of the dimensions and aggregations requested. - Tabular rows. - Time series data. Example of tabular rows, Represents security stats results as a row of flat values.", + "id": "GoogleCloudApigeeV1QueryTabularStatsResponse", + "properties": { + "columns": { + "description": "Column names corresponding to the same order as the inner values in the stats field.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "values": { + "description": "Resultant rows from the executed query.", + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1QueryTimeSeriesStatsRequest": { + "description": "QueryTimeSeriesStatsRequest represents a query that returns a collection of time series sequences grouped by their values.", + "id": "GoogleCloudApigeeV1QueryTimeSeriesStatsRequest", + "properties": { + "dimensions": { + "description": "List of dimension names to group the aggregations by. If no dimensions are passed, a single trend line representing the requested metric aggregations grouped by environment is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "filter": { + "description": "Filter further on specific dimension values. Follows the same grammar as custom report's filter expressions. Example, apiproxy eq 'foobar'. https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-reference#filters", + "type": "string" + }, + "metrics": { + "description": "Required. List of metrics and their aggregations.", + "items": { + "$ref": "GoogleCloudApigeeV1MetricAggregation" + }, + "type": "array" + }, + "pageSize": { + "description": "Page size represents the number of time series sequences, one per unique set of dimensions and their values.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Page token stands for a specific collection of time series sequences.", + "type": "string" + }, + "timeRange": { + "$ref": "GoogleTypeInterval", + "description": "Required. Time range for the stats." + }, + "timestampOrder": { + "description": "Order the sequences in increasing or decreasing order of timestamps. Default is descending order of timestamps (latest first).", + "enum": [ + "ORDER_UNSPECIFIED", + "ASCENDING", + "DESCENDING" + ], + "enumDescriptions": [ + "Unspecified order. Default is Descending.", + "Ascending sort order.", + "Descending sort order." + ], + "type": "string" + }, + "windowSize": { + "description": "Time buckets to group the stats by.", + "enum": [ + "WINDOW_SIZE_UNSPECIFIED", + "MINUTE", + "HOUR", + "DAY", + "MONTH" + ], + "enumDescriptions": [ + "Unspecified window size. Default is 1 hour.", + "1 Minute window", + "1 Hour window", + "1 Day window", + "1 Month window" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1QueryTimeSeriesStatsResponse": { + "description": "Represents security stats result as a collection of time series sequences.", + "id": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponse", + "properties": { + "columns": { + "description": "Column names corresponding to the same order as the inner values in the stats field.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + }, + "values": { + "description": "Results of the query returned as a JSON array.", + "items": { + "$ref": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence": { + "description": "A sequence of time series.", + "id": "GoogleCloudApigeeV1QueryTimeSeriesStatsResponseSequence", + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of dimensions and their values that uniquely identifies a time series sequence.", + "type": "object" + }, + "points": { + "description": "List of points. First value of each inner list is a timestamp.", + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1Quota": { "description": "Quota contains the essential parameters needed that can be applied on the resources, methods, API source combination associated with this API product. While Quota is optional, setting it prevents requests from exceeding the provisioned parameters.", "id": "GoogleCloudApigeeV1Quota", @@ -12077,15 +13855,26 @@ "description": "URI path prefix used to route to the specified environment. May contain one or more wildcards. For example, path segments consisting of a single `*` character will match any string.", "type": "string" }, + "deploymentGroup": { + "description": "Name of a deployment group in an environment bound to the environment group in the following format: `organizations/{org}/environment/{env}/deploymentGroups/{group}` Only one of environment or deployment_group will be set.", + "type": "string" + }, "envGroupRevision": { "description": "The env group config revision_id when this rule was added or last updated. This value is set when the rule is created and will only update if the the environment_id changes. It is used to determine if the runtime is up to date with respect to this rule. This field is omitted from the IngressConfig unless the GetDeployedIngressConfig API is called with view=FULL.", "format": "int64", "type": "string" }, "environment": { - "description": "Name of an environment bound to the environment group in the following format: `organizations/{org}/environments/{env}`.", + "description": "Name of an environment bound to the environment group in the following format: `organizations/{org}/environments/{env}`. Only one of environment or deployment_group will be set.", "type": "string" }, + "otherTargets": { + "description": "Conflicting targets, which will be resource names specifying either deployment groups or environments.", + "items": { + "type": "string" + }, + "type": "array" + }, "receiver": { "description": "The resource name of the proxy revision that is receiving this basepath in the following format: `organizations/{org}/apis/{api}/revisions/{rev}`. This field is omitted from the IngressConfig unless the GetDeployedIngressConfig API is called with view=FULL.", "type": "string" @@ -12291,6 +14080,477 @@ }, "type": "object" }, + "GoogleCloudApigeeV1Score": { + "description": "Represents Security Score.", + "id": "GoogleCloudApigeeV1Score", + "properties": { + "component": { + "$ref": "GoogleCloudApigeeV1ScoreComponent", + "description": "Component containing score, recommendations and actions." + }, + "subcomponents": { + "description": "List of all the drilldown score components.", + "items": { + "$ref": "GoogleCloudApigeeV1ScoreComponent" + }, + "type": "array" + }, + "timeRange": { + "$ref": "GoogleTypeInterval", + "description": "Start and end time for the score." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ScoreComponent": { + "description": "Component is an individual security element that is scored.", + "id": "GoogleCloudApigeeV1ScoreComponent", + "properties": { + "calculateTime": { + "description": "Time when score was calculated.", + "format": "google-datetime", + "type": "string" + }, + "dataCaptureTime": { + "description": "Time in the requested time period when data was last captured to compute the score.", + "format": "google-datetime", + "type": "string" + }, + "drilldownPaths": { + "description": "List of paths for next components.", + "items": { + "type": "string" + }, + "type": "array" + }, + "recommendations": { + "description": "List of recommendations to improve API security.", + "items": { + "$ref": "GoogleCloudApigeeV1ScoreComponentRecommendation" + }, + "type": "array" + }, + "score": { + "description": "Score for the component.", + "format": "int32", + "type": "integer" + }, + "scorePath": { + "description": "Path of the component. Example: /org@myorg/envgroup@myenvgroup/proxies/proxy@myproxy", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ScoreComponentRecommendation": { + "description": "Recommendation based on security concerns and score.", + "id": "GoogleCloudApigeeV1ScoreComponentRecommendation", + "properties": { + "actions": { + "description": "Actions for the recommendation to improve the security score.", + "items": { + "$ref": "GoogleCloudApigeeV1ScoreComponentRecommendationAction" + }, + "type": "array" + }, + "description": { + "description": "Description of the recommendation.", + "type": "string" + }, + "impact": { + "description": "Potential impact of this recommendation on the overall score. This denotes how important this recommendation is to improve the score.", + "format": "int32", + "type": "integer" + }, + "title": { + "description": "Title represents recommendation title.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ScoreComponentRecommendationAction": { + "description": "Action to improve security score.", + "id": "GoogleCloudApigeeV1ScoreComponentRecommendationAction", + "properties": { + "actionContext": { + "$ref": "GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext", + "description": "Action context for the action." + }, + "description": { + "description": "Description of the action.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext": { + "description": "Action context are all the relevant details for the action.", + "id": "GoogleCloudApigeeV1ScoreComponentRecommendationActionActionContext", + "properties": { + "documentationLink": { + "description": "Documentation link for the action.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityProfile": { + "description": "Represents a SecurityProfile resource.", + "id": "GoogleCloudApigeeV1SecurityProfile", + "properties": { + "displayName": { + "description": "Display name of the security profile.", + "type": "string" + }, + "environments": { + "description": "List of environments attached to security profile.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityProfileEnvironment" + }, + "type": "array" + }, + "maxScore": { + "description": "Output only. Maximum security score that can be generated by this profile.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "minScore": { + "description": "Output only. Minimum security score that can be generated by this profile.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "name": { + "description": "Immutable. Name of the security profile resource. Format: organizations/{org}/securityProfiles/{profile}", + "type": "string" + }, + "revisionCreateTime": { + "description": "Output only. The time when revision was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "revisionId": { + "description": "Output only. Revision ID of the security profile.", + "format": "int64", + "readOnly": true, + "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.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "revisionUpdateTime": { + "description": "Output only. The time when revision was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "scoringConfigs": { + "description": "List of profile scoring configs in this revision.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityProfileScoringConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityProfileEnvironment": { + "description": "Environment information of attached environments. Scoring an environment is enabled only if it is attached to a security profile.", + "id": "GoogleCloudApigeeV1SecurityProfileEnvironment", + "properties": { + "attachTime": { + "description": "Output only. Time at which environment was attached to the security profile.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "environment": { + "description": "Output only. Name of the environment.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation": { + "description": "Represents a SecurityProfileEnvironmentAssociation resource.", + "id": "GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation", + "properties": { + "attachTime": { + "description": "Output only. The time when environment was attached to the security profile.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. Name of the profile-environment association resource. Format: organizations/{org}/securityProfiles/{profile}/environments/{env}", + "type": "string" + }, + "securityProfileRevisionId": { + "description": "Revision ID of the security profile.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityProfileScoringConfig": { + "description": "Security configurations to manage scoring.", + "id": "GoogleCloudApigeeV1SecurityProfileScoringConfig", + "properties": { + "description": { + "description": "Description of the config.", + "type": "string" + }, + "scorePath": { + "description": "Path of the component config used for scoring.", + "type": "string" + }, + "title": { + "description": "Title of the config.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReport": { + "description": "SecurityReport saves all the information about the created security report.", + "id": "GoogleCloudApigeeV1SecurityReport", + "properties": { + "created": { + "description": "Creation time of the query.", + "type": "string" + }, + "displayName": { + "description": "Display Name specified by the user.", + "type": "string" + }, + "envgroupHostname": { + "description": "Hostname is available only when query is executed at host level.", + "type": "string" + }, + "error": { + "description": "Error is set when query fails.", + "type": "string" + }, + "executionTime": { + "description": "ExecutionTime is available only after the query is completed.", + "type": "string" + }, + "queryParams": { + "$ref": "GoogleCloudApigeeV1SecurityReportMetadata", + "description": "Contains information like metrics, dimenstions etc of the Security Report." + }, + "reportDefinitionId": { + "description": "Report Definition ID.", + "type": "string" + }, + "result": { + "$ref": "GoogleCloudApigeeV1SecurityReportResultMetadata", + "description": "Result is available only after the query is completed." + }, + "resultFileSize": { + "description": "ResultFileSize is available only after the query is completed.", + "type": "string" + }, + "resultRows": { + "description": "ResultRows is available only after the query is completed.", + "format": "int64", + "type": "string" + }, + "self": { + "description": "Self link of the query. Example: `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd` or following format if query is running at host level: `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd`", + "type": "string" + }, + "state": { + "description": "Query state could be \"enqueued\", \"running\", \"completed\", \"expired\" and \"failed\".", + "type": "string" + }, + "updated": { + "description": "Output only. Last updated timestamp for the query.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReportMetadata": { + "description": "Metadata for the security report.", + "id": "GoogleCloudApigeeV1SecurityReportMetadata", + "properties": { + "dimensions": { + "description": "Dimensions of the SecurityReport.", + "items": { + "type": "string" + }, + "type": "array" + }, + "endTimestamp": { + "description": "End timestamp of the query range.", + "format": "google-datetime", + "type": "string" + }, + "metrics": { + "description": "Metrics of the SecurityReport. Example: [\"name:bot_count,func:sum,alias:sum_bot_count\"]", + "items": { + "type": "string" + }, + "type": "array" + }, + "mimeType": { + "description": "MIME type / Output format.", + "type": "string" + }, + "startTimestamp": { + "description": "Start timestamp of the query range.", + "format": "google-datetime", + "type": "string" + }, + "timeUnit": { + "description": "Query GroupBy time unit. Example: \"seconds\", \"minute\", \"hour\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReportQuery": { + "description": "Body structure when user makes a request to create a security report.", + "id": "GoogleCloudApigeeV1SecurityReportQuery", + "properties": { + "csvDelimiter": { + "description": "Delimiter used in the CSV file, if `outputFormat` is set to `csv`. Defaults to the `,` (comma) character. Supported delimiter characters include comma (`,`), pipe (`|`), and tab (`\\t`).", + "type": "string" + }, + "dimensions": { + "description": "A list of dimensions. https://docs.apigee.com/api-platform/analytics/analytics-reference#dimensions", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "Security Report display name which users can specify.", + "type": "string" + }, + "envgroupHostname": { + "description": "Hostname needs to be specified if query intends to run at host level. This field is only allowed when query is submitted by CreateHostSecurityReport where analytics data will be grouped by organization and hostname.", + "type": "string" + }, + "filter": { + "description": "Boolean expression that can be used to filter data. Filter expressions can be combined using AND/OR terms and should be fully parenthesized to avoid ambiguity. See Analytics metrics, dimensions, and filters reference https://docs.apigee.com/api-platform/analytics/analytics-reference for more information on the fields available to filter on. For more information on the tokens that you use to build filter expressions, see Filter expression syntax. https://docs.apigee.com/api-platform/analytics/asynch-reports-api#filter-expression-syntax", + "type": "string" + }, + "groupByTimeUnit": { + "description": "Time unit used to group the result set. Valid values include: second, minute, hour, day, week, or month. If a query includes groupByTimeUnit, then the result is an aggregation based on the specified time unit and the resultant timestamp does not include milliseconds precision. If a query omits groupByTimeUnit, then the resultant timestamp includes milliseconds precision.", + "type": "string" + }, + "limit": { + "description": "Maximum number of rows that can be returned in the result.", + "format": "int32", + "type": "integer" + }, + "metrics": { + "description": "A list of Metrics.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityReportQueryMetric" + }, + "type": "array" + }, + "mimeType": { + "description": "Valid values include: `csv` or `json`. Defaults to `json`. Note: Configure the delimiter for CSV output using the csvDelimiter property.", + "type": "string" + }, + "reportDefinitionId": { + "description": "Report Definition ID.", + "type": "string" + }, + "timeRange": { + "description": "Required. Time range for the query. Can use the following predefined strings to specify the time range: `last60minutes` `last24hours` `last7days` Or, specify the timeRange as a structure describing start and end timestamps in the ISO format: yyyy-mm-ddThh:mm:ssZ. Example: \"timeRange\": { \"start\": \"2018-07-29T00:13:00Z\", \"end\": \"2018-08-01T00:18:00Z\" }", + "type": "any" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReportQueryMetric": { + "description": "Metric of the Query", + "id": "GoogleCloudApigeeV1SecurityReportQueryMetric", + "properties": { + "aggregationFunction": { + "description": "Aggregation function: avg, min, max, or sum.", + "type": "string" + }, + "alias": { + "description": "Alias for the metric. Alias will be used to replace metric name in query results.", + "type": "string" + }, + "name": { + "description": "Required. Metric name.", + "type": "string" + }, + "operator": { + "description": "One of `+`, `-`, `/`, `%`, `*`.", + "type": "string" + }, + "value": { + "description": "Operand value should be provided when operator is set.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReportResultMetadata": { + "description": "Contains informations about the security report results.", + "id": "GoogleCloudApigeeV1SecurityReportResultMetadata", + "properties": { + "expires": { + "description": "Output only. Expire_time is set to 7 days after report creation. Query result will be unaccessable after this time. Example: \"2021-05-04T13:38:52-07:00\"", + "readOnly": true, + "type": "string" + }, + "self": { + "description": "Self link of the query results. Example: `/organizations/myorg/environments/myenv/securityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result` or following format if query is running at host level: `/organizations/myorg/hostSecurityReports/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityReportResultView": { + "description": "The response for security report result view APIs.", + "id": "GoogleCloudApigeeV1SecurityReportResultView", + "properties": { + "code": { + "description": "Error code when there is a failure.", + "format": "int32", + "type": "integer" + }, + "error": { + "description": "Error message when there is a failure.", + "type": "string" + }, + "metadata": { + "$ref": "GoogleCloudApigeeV1SecurityReportMetadata", + "description": "Metadata contains information like metrics, dimenstions etc of the security report." + }, + "rows": { + "description": "Rows of security report result. Each row is a JSON object. Example: {sum(message_count): 1, developer_app: \"(not set)\",\u2026}", + "items": { + "type": "any" + }, + "type": "array" + }, + "state": { + "description": "State of retrieving ResultView.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ServiceIssuersMapping": { "id": "GoogleCloudApigeeV1ServiceIssuersMapping", "properties": { @@ -12543,7 +14803,7 @@ "type": "object" }, "GoogleCloudApigeeV1TargetServer": { - "description": "TargetServer configuration. TargetServers are used to decouple a proxy's TargetEndpoint HTTPTargetConnections from concrete URLs for backend services.", + "description": "TargetServer configuration. TargetServers are used to decouple a proxy TargetEndpoint HTTPTargetConnections from concrete URLs for backend services.", "id": "GoogleCloudApigeeV1TargetServer", "properties": { "description": { @@ -12651,7 +14911,7 @@ "id": "GoogleCloudApigeeV1TlsInfo", "properties": { "ciphers": { - "description": "The SSL/TLS cipher suites to be used. Must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites", + "description": "The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.", "items": { "type": "string" }, @@ -12857,7 +15117,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -12893,7 +15153,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -12949,7 +15209,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -12999,7 +15259,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -13014,7 +15274,7 @@ "id": "GoogleIamV1TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -13091,7 +15351,7 @@ "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" @@ -13179,6 +15439,23 @@ }, "type": "object" }, + "GoogleTypeInterval": { + "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", + "id": "GoogleTypeInterval", + "properties": { + "endTime": { + "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleTypeMoney": { "description": "Represents an amount of money with its currency type.", "id": "GoogleTypeMoney", diff --git a/etc/api/apikeys/v2/apikeys-api.json b/etc/api/apikeys/v2/apikeys-api.json index 0072d1045d..577bd3875b 100644 --- a/etc/api/apikeys/v2/apikeys-api.json +++ b/etc/api/apikeys/v2/apikeys-api.json @@ -170,34 +170,6 @@ "resources": { "keys": { "methods": { - "clone": { - "description": "DEPRECATED: API customers can call `GetKey` and then `CreateKey` methods to create a copy of an existing key. Retire `CloneKey` method to eliminate the unnessary method from API Keys API. Clones the existing key's restriction and display name to a new API key. The service account must have the `apikeys.keys.get` and `apikeys.keys.create` permissions in the project. NOTE: Key is a global resource; hence the only supported value for location is `global`.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys/{keysId}:clone", - "httpMethod": "POST", - "id": "apikeys.projects.locations.keys.clone", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the API key to be cloned in the same project.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/keys/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}:clone", - "request": { - "$ref": "V2CloneKeyRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "create": { "description": "Creates a new API key. NOTE: Key is a global resource; hence the only supported value for location is `global`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/keys", @@ -322,11 +294,6 @@ "parent" ], "parameters": { - "filter": { - "description": "Optional. Deprecated: Use `show_deleted` instead. Only list keys that conform to the specified filter. The allowed filter strings are `state:ACTIVE` and `state:DELETED`. By default, ListKeys returns only active keys.", - "location": "query", - "type": "string" - }, "pageSize": { "description": "Optional. Specifies the maximum number of results to be returned at a time.", "format": "int32", @@ -346,7 +313,7 @@ "type": "string" }, "showDeleted": { - "description": "Optional. Indicate that keys are marked as deleted within 30 days should also be returned. Normally only active keys are returned.", + "description": "Optional. Indicate that keys deleted in the past 30 days should also be returned.", "location": "query", "type": "boolean" } @@ -377,7 +344,7 @@ "type": "string" }, "updateMask": { - "description": "The field mask specifies which fields to be updated as part of this request. All other fields are ignored. Mutable fields are: `display_name` and `restrictions`. If an update mask is not provided, the service treats it as an implied mask equivalent to all allowed fields that are set on the wire. If the field mask has a special value \"*\", the service treats it equivalent to replace all allowed mutable fields.", + "description": "The field mask specifies which fields to be updated as part of this request. All other fields are ignored. Mutable fields are: `display_name`, `restrictions`, and `annotations`. If an update mask is not provided, the service treats it as an implied mask equivalent to all allowed fields that are set on the wire. If the field mask has a special value \"*\", the service treats it equivalent to replace all allowed mutable fields.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -429,7 +396,7 @@ } } }, - "revision": "20220305", + "revision": "20230118", "rootUrl": "https://apikeys.googleapis.com/", "schemas": { "Operation": { @@ -555,17 +522,6 @@ }, "type": "object" }, - "V2CloneKeyRequest": { - "description": "Request message for `CloneKey` method.", - "id": "V2CloneKeyRequest", - "properties": { - "keyId": { - "description": "User specified key id (optional). If specified, it will become the final component of the key resource name. The id must be unique within the project, must conform with RFC-1034, is restricted to lower-cased letters, and has a maximum length of 63 characters. In another word, the id must match the regular expression: `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`. The id must NOT be a UUID-like string.", - "type": "string" - } - }, - "type": "object" - }, "V2GetKeyStringResponse": { "description": "Response message for `GetKeyString` method.", "id": "V2GetKeyStringResponse", @@ -595,6 +551,13 @@ "description": "The representation of a key managed by the API Keys API.", "id": "V2Key", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "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.", + "type": "object" + }, "createTime": { "description": "Output only. A timestamp identifying the time this key was originally created.", "format": "google-datetime", diff --git a/etc/api/appengine/v1/appengine-api.json b/etc/api/appengine/v1/appengine-api.json index 5eb3262e99..7f938873ec 100644 --- a/etc/api/appengine/v1/appengine-api.json +++ b/etc/api/appengine/v1/appengine-api.json @@ -1593,13 +1593,65 @@ } } } + }, + "projects": { + "resources": { + "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" + } + }, + "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" + ] + } + } + } + } + } + } } }, - "revision": "20220226", + "revision": "20230114", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { - "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", + "description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration for API handlers.", "id": "ApiConfigHandler", "properties": { "authFailAction": { @@ -2127,13 +2179,13 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, "EndpointsApiService": { - "description": "Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", + "description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", "id": "EndpointsApiService", "properties": { "configId": { @@ -2812,6 +2864,20 @@ }, "type": "array" }, + "instanceIpMode": { + "description": "The IP mode for instances. Only applicable in the App Engine flexible environment.", + "enum": [ + "INSTANCE_IP_MODE_UNSPECIFIED", + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "Unspecified is treated as EXTERNAL.", + "Instances are created with both internal and external IP addresses.", + "Instances are created with internal IP addresses only." + ], + "type": "string" + }, "instanceTag": { "description": "Tag to apply to the instance during creation. Only applicable in the App Engine flexible environment.", "type": "string" @@ -3045,6 +3111,122 @@ }, "type": "object" }, + "ProjectEvent": { + "description": "The request sent to CLHs during project events.", + "id": "ProjectEvent", + "properties": { + "eventId": { + "description": "The unique ID for this project event. CLHs can use this value to dedup repeated calls. required", + "type": "string" + }, + "phase": { + "enum": [ + "UNKNOWN", + "BEFORE_RESOURCE_HANDLING", + "AFTER_RESOURCE_HANDLING" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "projectMetadata": { + "$ref": "ProjectsMetadata", + "description": "The projects metadata for this project. required" + }, + "state": { + "$ref": "ProjectState", + "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", + "properties": { + "consumerProjectId": { + "description": "The consumer project id.", + "type": "string" + }, + "consumerProjectNumber": { + "description": "The consumer project number.", + "format": "int64", + "type": "string" + }, + "consumerProjectState": { + "description": "The CCFE state of the consumer project. It is the same state that is communicated to the CLH during project events. Notice that this field is not set in the DB, it is only set in this proto when communicated to CLH in the side channel.", + "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" + }, + "p4ServiceAccount": { + "description": "The service account authorized to operate on the consumer project. Note: CCFE only propagates P4SA with default tag to CLH.", + "type": "string" + }, + "producerProjectId": { + "description": "The producer project id.", + "type": "string" + }, + "producerProjectNumber": { + "description": "The producer project number.", + "format": "int64", + "type": "string" + }, + "tenantProjectId": { + "description": "The tenant project id.", + "type": "string" + }, + "tenantProjectNumber": { + "description": "The tenant project number.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ReadinessCheck": { "description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.", "id": "ReadinessCheck", @@ -3085,6 +3267,81 @@ }, "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)", + "id": "Reasons", + "properties": { + "abuse": { + "enum": [ + "ABUSE_UNKNOWN_REASON", + "ABUSE_CONTROL_PLANE_SYNC", + "SUSPEND", + "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." + ], + "type": "string" + }, + "billing": { + "enum": [ + "BILLING_UNKNOWN_REASON", + "BILLING_CONTROL_PLANE_SYNC", + "PROBATION", + "CLOSE", + "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." + ], + "type": "string" + }, + "dataGovernance": { + "enum": [ + "DATA_GOVERNANCE_UNKNOWN_REASON", + "DATA_GOVERNANCE_CONTROL_PLANE_SYNC", + "HIDE", + "UNHIDE", + "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." + ], + "type": "string" + }, + "serviceManagement": { + "enum": [ + "SERVICE_MANAGEMENT_UNKNOWN_REASON", + "SERVICE_MANAGEMENT_CONTROL_PLANE_SYNC", + "ACTIVATION", + "PREPARE_DEACTIVATION", + "ABORT_DEACTIVATION", + "COMMIT_DEACTIVATION" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, "RepairApplicationRequest": { "description": "Request message for 'Applications.RepairApplication'.", "id": "RepairApplicationRequest", @@ -3480,7 +3737,11 @@ "properties": { "apiConfig": { "$ref": "ApiConfigHandler", - "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set." + "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/endpoints).Only returned in GET requests if view=FULL is set." + }, + "appEngineApis": { + "description": "Allows App Engine second generation runtimes to access the legacy bundled services.", + "type": "boolean" }, "automaticScaling": { "$ref": "AutomaticScaling", diff --git a/etc/api/appengine/v1alpha/appengine-api.json b/etc/api/appengine/v1alpha/appengine-api.json index 8f3007ade9..f5ee0855d0 100644 --- a/etc/api/appengine/v1alpha/appengine-api.json +++ b/etc/api/appengine/v1alpha/appengine-api.json @@ -887,7 +887,7 @@ } } }, - "revision": "20220226", + "revision": "20230114", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "AuthorizedCertificate": { @@ -1031,7 +1031,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1400,6 +1400,197 @@ }, "type": "object" }, + "ProjectEvent": { + "description": "The request sent to CLHs during project events.", + "id": "ProjectEvent", + "properties": { + "eventId": { + "description": "The unique ID for this project event. CLHs can use this value to dedup repeated calls. required", + "type": "string" + }, + "phase": { + "enum": [ + "UNKNOWN", + "BEFORE_RESOURCE_HANDLING", + "AFTER_RESOURCE_HANDLING" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "projectMetadata": { + "$ref": "ProjectsMetadata", + "description": "The projects metadata for this project. required" + }, + "state": { + "$ref": "ProjectState", + "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", + "properties": { + "consumerProjectId": { + "description": "The consumer project id.", + "type": "string" + }, + "consumerProjectNumber": { + "description": "The consumer project number.", + "format": "int64", + "type": "string" + }, + "consumerProjectState": { + "description": "The CCFE state of the consumer project. It is the same state that is communicated to the CLH during project events. Notice that this field is not set in the DB, it is only set in this proto when communicated to CLH in the side channel.", + "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" + }, + "p4ServiceAccount": { + "description": "The service account authorized to operate on the consumer project. Note: CCFE only propagates P4SA with default tag to CLH.", + "type": "string" + }, + "producerProjectId": { + "description": "The producer project id.", + "type": "string" + }, + "producerProjectNumber": { + "description": "The producer project number.", + "format": "int64", + "type": "string" + }, + "tenantProjectId": { + "description": "The tenant project id.", + "type": "string" + }, + "tenantProjectNumber": { + "description": "The tenant project number.", + "format": "int64", + "type": "string" + } + }, + "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)", + "id": "Reasons", + "properties": { + "abuse": { + "enum": [ + "ABUSE_UNKNOWN_REASON", + "ABUSE_CONTROL_PLANE_SYNC", + "SUSPEND", + "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." + ], + "type": "string" + }, + "billing": { + "enum": [ + "BILLING_UNKNOWN_REASON", + "BILLING_CONTROL_PLANE_SYNC", + "PROBATION", + "CLOSE", + "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." + ], + "type": "string" + }, + "dataGovernance": { + "enum": [ + "DATA_GOVERNANCE_UNKNOWN_REASON", + "DATA_GOVERNANCE_CONTROL_PLANE_SYNC", + "HIDE", + "UNHIDE", + "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." + ], + "type": "string" + }, + "serviceManagement": { + "enum": [ + "SERVICE_MANAGEMENT_UNKNOWN_REASON", + "SERVICE_MANAGEMENT_CONTROL_PLANE_SYNC", + "ACTIVATION", + "PREPARE_DEACTIVATION", + "ABORT_DEACTIVATION", + "COMMIT_DEACTIVATION" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, "ResourceRecord": { "description": "A DNS resource record.", "id": "ResourceRecord", diff --git a/etc/api/appengine/v1beta/appengine-api.json b/etc/api/appengine/v1beta/appengine-api.json index ec854bddc1..03e2e2cf60 100644 --- a/etc/api/appengine/v1beta/appengine-api.json +++ b/etc/api/appengine/v1beta/appengine-api.json @@ -118,7 +118,13 @@ "httpMethod": "POST", "id": "appengine.apps.create", "parameterOrder": [], - "parameters": {}, + "parameters": { + "parent": { + "description": "The project and location in which the application should be created, specified in the format projects/*/locations/*", + "location": "query", + "type": "string" + } + }, "path": "v1beta/apps", "request": { "$ref": "Application" @@ -1593,13 +1599,310 @@ } } } + }, + "projects": { + "resources": { + "locations": { + "methods": { + "get": { + "description": "Gets information about a location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}", + "httpMethod": "GET", + "id": "appengine.projects.locations.get", + "parameterOrder": [ + "projectsId", + "locationsId" + ], + "parameters": { + "locationsId": { + "description": "Part of `name`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "projectsId": { + "description": "Part of `name`. Resource name for the location.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta/projects/{projectsId}/locations/{locationsId}", + "response": { + "$ref": "Location" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "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": "v1beta/projects/{projectsId}/locations", + "httpMethod": "GET", + "id": "appengine.projects.locations.list", + "parameterOrder": [ + "projectsId" + ], + "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" + }, + "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" + }, + "projectsId": { + "description": "Part of `name`. The resource that owns the locations collection, if applicable.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta/projects/{projectsId}/locations", + "response": { + "$ref": "ListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + }, + "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" + } + }, + "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" + ] + } + } + }, + "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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "appengine.projects.locations.operations.get", + "parameterOrder": [ + "projectsId", + "locationsId", + "operationsId" + ], + "parameters": { + "locationsId": { + "description": "Part of `name`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "operationsId": { + "description": "Part of `name`. See documentation of `projectsId`.", + "location": "path", + "required": true, + "type": "string" + }, + "projectsId": { + "description": "Part of `name`. The name of the operation resource.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "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.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "appengine.projects.locations.operations.list", + "parameterOrder": [ + "projectsId", + "locationsId" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "locationsId": { + "description": "Part of `name`. See documentation of `projectsId`.", + "location": "path", + "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" + }, + "projectsId": { + "description": "Part of `name`. The name of the operation's parent resource.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta/projects/{projectsId}/locations/{locationsId}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/appengine.admin", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + } + } + } + } } }, - "revision": "20220226", + "revision": "20230114", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { - "description": "Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/) configuration for API handlers.", + "description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration for API handlers.", "id": "ApiConfigHandler", "properties": { "authFailAction": { @@ -1681,7 +1984,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": { @@ -1701,7 +2005,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": { @@ -1710,7 +2015,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": { @@ -1725,7 +2031,8 @@ "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" }, "iap": { @@ -1740,7 +2047,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": { @@ -2178,13 +2486,13 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, "EndpointsApiService": { - "description": "Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", + "description": "Google Cloud Endpoints (https://cloud.google.com/endpoints) configuration. The Endpoints API Service provides tooling for serving Open API and gRPC endpoints via an NGINX proxy. Only valid for App Engine Flexible environment deployments.The fields here refer to the name and configuration ID of a \"service\" resource in the Service Management API (https://cloud.google.com/service-management/overview).", "id": "EndpointsApiService", "properties": { "configId": { @@ -2328,6 +2636,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", @@ -2405,7 +2728,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" } }, @@ -2871,9 +3195,9 @@ "INTERNAL" ], "enumDescriptions": [ - "Unspecified should be treated as EXTERNAL", - "VMs should be created with external and internal IPs", - "VMs should be created with internal IPs only" + "Unspecified is treated as EXTERNAL.", + "Instances are created with both internal and external IP addresses.", + "Instances are created with internal IP addresses only." ], "type": "string" }, @@ -3110,6 +3434,122 @@ }, "type": "object" }, + "ProjectEvent": { + "description": "The request sent to CLHs during project events.", + "id": "ProjectEvent", + "properties": { + "eventId": { + "description": "The unique ID for this project event. CLHs can use this value to dedup repeated calls. required", + "type": "string" + }, + "phase": { + "enum": [ + "UNKNOWN", + "BEFORE_RESOURCE_HANDLING", + "AFTER_RESOURCE_HANDLING" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "projectMetadata": { + "$ref": "ProjectsMetadata", + "description": "The projects metadata for this project. required" + }, + "state": { + "$ref": "ProjectState", + "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", + "properties": { + "consumerProjectId": { + "description": "The consumer project id.", + "type": "string" + }, + "consumerProjectNumber": { + "description": "The consumer project number.", + "format": "int64", + "type": "string" + }, + "consumerProjectState": { + "description": "The CCFE state of the consumer project. It is the same state that is communicated to the CLH during project events. Notice that this field is not set in the DB, it is only set in this proto when communicated to CLH in the side channel.", + "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" + }, + "p4ServiceAccount": { + "description": "The service account authorized to operate on the consumer project. Note: CCFE only propagates P4SA with default tag to CLH.", + "type": "string" + }, + "producerProjectId": { + "description": "The producer project id.", + "type": "string" + }, + "producerProjectNumber": { + "description": "The producer project number.", + "format": "int64", + "type": "string" + }, + "tenantProjectId": { + "description": "The tenant project id.", + "type": "string" + }, + "tenantProjectNumber": { + "description": "The tenant project number.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ReadinessCheck": { "description": "Readiness checking configuration for VM instances. Unhealthy instances are removed from traffic rotation.", "id": "ReadinessCheck", @@ -3150,6 +3590,81 @@ }, "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)", + "id": "Reasons", + "properties": { + "abuse": { + "enum": [ + "ABUSE_UNKNOWN_REASON", + "ABUSE_CONTROL_PLANE_SYNC", + "SUSPEND", + "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." + ], + "type": "string" + }, + "billing": { + "enum": [ + "BILLING_UNKNOWN_REASON", + "BILLING_CONTROL_PLANE_SYNC", + "PROBATION", + "CLOSE", + "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." + ], + "type": "string" + }, + "dataGovernance": { + "enum": [ + "DATA_GOVERNANCE_UNKNOWN_REASON", + "DATA_GOVERNANCE_CONTROL_PLANE_SYNC", + "HIDE", + "UNHIDE", + "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." + ], + "type": "string" + }, + "serviceManagement": { + "enum": [ + "SERVICE_MANAGEMENT_UNKNOWN_REASON", + "SERVICE_MANAGEMENT_CONTROL_PLANE_SYNC", + "ACTIVATION", + "PREPARE_DEACTIVATION", + "ABORT_DEACTIVATION", + "COMMIT_DEACTIVATION" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, "RepairApplicationRequest": { "description": "Request message for 'Applications.RepairApplication'.", "id": "RepairApplicationRequest", @@ -3541,10 +4056,10 @@ "properties": { "apiConfig": { "$ref": "ApiConfigHandler", - "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/appengine/docs/python/endpoints/).Only returned in GET requests if view=FULL is set." + "description": "Serving configuration for Google Cloud Endpoints (https://cloud.google.com/endpoints).Only returned in GET requests if view=FULL is set." }, "appEngineApis": { - "description": "app_engine_apis allows second generation runtimes to access the App Engine APIs.", + "description": "Allows App Engine second generation runtimes to access the legacy bundled services.", "type": "boolean" }, "automaticScaling": { @@ -3618,6 +4133,10 @@ }, "type": "array" }, + "flexibleRuntimeSettings": { + "$ref": "FlexibleRuntimeSettings", + "description": "Settings for App Engine flexible runtimes." + }, "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": { diff --git a/etc/api/area120tables/v1alpha1/area120tables-api.json b/etc/api/area120tables/v1alpha1/area120tables-api.json index 1b92ab1484..894e905732 100644 --- a/etc/api/area120tables/v1alpha1/area120tables-api.json +++ b/etc/api/area120tables/v1alpha1/area120tables-api.json @@ -586,7 +586,7 @@ } } }, - "revision": "20220301", + "revision": "20230123", "rootUrl": "https://area120tables.googleapis.com/", "schemas": { "BatchCreateRowsRequest": { @@ -744,7 +744,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/artifactregistry/v1/artifactregistry-api.json b/etc/api/artifactregistry/v1/artifactregistry-api.json index e916be5e5c..fd064949e3 100644 --- a/etc/api/artifactregistry/v1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1/artifactregistry-api.json @@ -173,6 +173,76 @@ }, "resources": { "locations": { + "methods": { + "get": { + "description": "Gets information about a location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Resource name for the location.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Location" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "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", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "name": { + "description": "The resource that owns the locations collection, if applicable.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return. If not set, the service selects a default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/locations", + "response": { + "$ref": "ListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + }, "resources": { "operations": { "methods": { @@ -306,7 +376,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -403,7 +473,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -431,7 +501,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -561,6 +631,11 @@ "parent" ], "parameters": { + "orderBy": { + "description": "The field to order the results by.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of artifacts to return.", "format": "int32", @@ -650,7 +725,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose files will be listed.", + "description": "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, @@ -668,45 +743,13 @@ } } }, - "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" - ] - } - } - }, - "googetArtifacts": { + "kfpArtifacts": { "methods": { "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", + "description": "Directly uploads a KFP artifact. The returned Operation will complete once the resource is uploaded. Package, Version, and File resources will be created based on the uploaded artifact. Uploaded artifacts that conflict with existing resources will be overwritten.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/kfpArtifacts:create", "httpMethod": "POST", - "id": "artifactregistry.projects.locations.repositories.googetArtifacts.upload", + "id": "artifactregistry.projects.locations.repositories.kfpArtifacts.upload", "mediaUpload": { "accept": [ "*/*" @@ -714,7 +757,7 @@ "protocols": { "simple": { "multipart": true, - "path": "/upload/v1/{+parent}/googetArtifacts:create" + "path": "/upload/v1/{+parent}/kfpArtifacts:create" } } }, @@ -723,19 +766,19 @@ ], "parameters": { "parent": { - "description": "The name of the parent resource where the artifacts will be uploaded.", + "description": "The resource name of the repository where the KFP artifact will be uploaded.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+parent}/googetArtifacts:create", + "path": "v1/{+parent}/kfpArtifacts:create", "request": { - "$ref": "UploadGooGetArtifactRequest" + "$ref": "UploadKfpArtifactRequest" }, "response": { - "$ref": "UploadGooGetArtifactMediaResponse" + "$ref": "UploadKfpArtifactMediaResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -744,6 +787,140 @@ } } }, + "mavenArtifacts": { + "methods": { + "get": { + "description": "Gets a maven artifact.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/mavenArtifacts/{mavenArtifactsId}", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.mavenArtifacts.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the maven artifact.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/mavenArtifacts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "MavenArtifact" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "list": { + "description": "Lists maven artifacts.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/mavenArtifacts", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.mavenArtifacts.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of artifacts 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 name of the parent resource whose maven artifacts will be listed.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/mavenArtifacts", + "response": { + "$ref": "ListMavenArtifactsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + }, + "npmPackages": { + "methods": { + "get": { + "description": "Gets a npm package.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/npmPackages/{npmPackagesId}", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.npmPackages.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the npm package.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/npmPackages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "NpmPackage" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "list": { + "description": "Lists npm packages.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/npmPackages", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.npmPackages.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of artifacts 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 name of the parent resource whose npm packages will be listed.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/npmPackages", + "response": { + "$ref": "ListNpmPackagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + }, "packages": { "methods": { "delete": { @@ -1134,6 +1311,73 @@ } } }, + "pythonPackages": { + "methods": { + "get": { + "description": "Gets a python package.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/pythonPackages/{pythonPackagesId}", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.pythonPackages.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the python package.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/pythonPackages/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "PythonPackage" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, + "list": { + "description": "Lists python packages.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/pythonPackages", + "httpMethod": "GET", + "id": "artifactregistry.projects.locations.repositories.pythonPackages.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of artifacts 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 name of the parent resource whose python packages will be listed.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/pythonPackages", + "response": { + "$ref": "ListPythonPackagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + }, "yumArtifacts": { "methods": { "import": { @@ -1213,9 +1457,71 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { + "AptArtifact": { + "description": "A detailed representation of an Apt artifact. Information in the record is derived from the archive's control file. See https://www.debian.org/doc/debian-policy/ch-controlfields.html", + "id": "AptArtifact", + "properties": { + "architecture": { + "description": "Output only. Operating system architecture of the artifact.", + "readOnly": true, + "type": "string" + }, + "component": { + "description": "Output only. Repository component of the artifact.", + "readOnly": true, + "type": "string" + }, + "controlFile": { + "description": "Output only. Contents of the artifact's control metadata file.", + "format": "byte", + "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 Apt package name of the artifact.", + "readOnly": true, + "type": "string" + }, + "packageType": { + "description": "Output only. An artifact is a binary or source package.", + "enum": [ + "PACKAGE_TYPE_UNSPECIFIED", + "BINARY", + "SOURCE" + ], + "enumDescriptions": [ + "Package type is not specified.", + "Binary package.", + "Source package." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "BatchDeleteVersionsMetadata": { + "description": "The metadata of an LRO from deleting multiple versions.", + "id": "BatchDeleteVersionsMetadata", + "properties": { + "failedVersions": { + "description": "The versions the operation failed to delete.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1225,7 +1531,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1267,6 +1573,12 @@ }, "type": "array" }, + "updateTime": { + "description": "Output only. The time when the docker image was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "uploadTime": { "description": "Time the image was uploaded.", "format": "google-datetime", @@ -1280,7 +1592,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1371,6 +1683,21 @@ }, "type": "object" }, + "ImportAptArtifactsErrorInfo": { + "description": "Error information explaining why a package was not imported.", + "id": "ImportAptArtifactsErrorInfo", + "properties": { + "error": { + "$ref": "Status", + "description": "The detailed error status." + }, + "gcsSource": { + "$ref": "ImportAptArtifactsGcsSource", + "description": "Google Cloud Storage location requested." + } + }, + "type": "object" + }, "ImportAptArtifactsGcsSource": { "description": "Google Cloud Storage location where the artifacts currently reside.", "id": "ImportAptArtifactsGcsSource", @@ -1389,6 +1716,12 @@ }, "type": "object" }, + "ImportAptArtifactsMetadata": { + "description": "The operation metadata for importing artifacts.", + "id": "ImportAptArtifactsMetadata", + "properties": {}, + "type": "object" + }, "ImportAptArtifactsRequest": { "description": "The request to import new apt artifacts.", "id": "ImportAptArtifactsRequest", @@ -1400,31 +1733,38 @@ }, "type": "object" }, - "ImportGooGetArtifactsGcsSource": { - "description": "Google Cloud Storage location where the artifacts currently reside.", - "id": "ImportGooGetArtifactsGcsSource", + "ImportAptArtifactsResponse": { + "description": "The response message from importing APT artifacts.", + "id": "ImportAptArtifactsResponse", "properties": { - "uris": { - "description": "Cloud Storage paths URI (e.g., gs://my_bucket/my_object).", + "aptArtifacts": { + "description": "The Apt artifacts imported.", "items": { - "type": "string" + "$ref": "AptArtifact" }, "type": "array" }, - "useWildcards": { - "description": "Supports URI wildcards for matching multiple objects from a single URI.", - "type": "boolean" + "errors": { + "description": "Detailed error info for packages that were not imported.", + "items": { + "$ref": "ImportAptArtifactsErrorInfo" + }, + "type": "array" } }, "type": "object" }, - "ImportGooGetArtifactsRequest": { - "description": "The request to import new googet artifacts.", - "id": "ImportGooGetArtifactsRequest", + "ImportYumArtifactsErrorInfo": { + "description": "Error information explaining why a package was not imported.", + "id": "ImportYumArtifactsErrorInfo", "properties": { + "error": { + "$ref": "Status", + "description": "The detailed error status." + }, "gcsSource": { - "$ref": "ImportGooGetArtifactsGcsSource", - "description": "Google Cloud Storage location where input content is located." + "$ref": "ImportYumArtifactsGcsSource", + "description": "Google Cloud Storage location requested." } }, "type": "object" @@ -1447,6 +1787,12 @@ }, "type": "object" }, + "ImportYumArtifactsMetadata": { + "description": "The operation metadata for importing artifacts.", + "id": "ImportYumArtifactsMetadata", + "properties": {}, + "type": "object" + }, "ImportYumArtifactsRequest": { "description": "The request to import new yum artifacts.", "id": "ImportYumArtifactsRequest", @@ -1458,6 +1804,43 @@ }, "type": "object" }, + "ImportYumArtifactsResponse": { + "description": "The response message from importing YUM artifacts.", + "id": "ImportYumArtifactsResponse", + "properties": { + "errors": { + "description": "Detailed error info for packages that were not imported.", + "items": { + "$ref": "ImportYumArtifactsErrorInfo" + }, + "type": "array" + }, + "yumArtifacts": { + "description": "The yum artifacts imported.", + "items": { + "$ref": "YumArtifact" + }, + "type": "array" + } + }, + "type": "object" + }, + "KfpArtifact": { + "description": "A detailed representation of a GooGet artifact.", + "id": "KfpArtifact", + "properties": { + "name": { + "description": "Output only. Resource name of the KFP artifact. Since users don't directly interact with this resource, the name will be derived from the associated version. For example, when version = \".../versions/sha256:abcdef...\", the name will be \".../kfpArtifacts/sha256:abcdef...\".", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "The version associated with the KFP artifact. Must follow the Semantic Versioning standard.", + "type": "string" + } + }, + "type": "object" + }, "ListDockerImagesResponse": { "description": "The response from listing docker images.", "id": "ListDockerImagesResponse", @@ -1494,6 +1877,60 @@ }, "type": "object" }, + "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "id": "ListLocationsResponse", + "properties": { + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "items": { + "$ref": "Location" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "type": "object" + }, + "ListMavenArtifactsResponse": { + "description": "The response from listing maven artifacts.", + "id": "ListMavenArtifactsResponse", + "properties": { + "mavenArtifacts": { + "description": "The maven artifacts returned.", + "items": { + "$ref": "MavenArtifact" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", + "type": "string" + } + }, + "type": "object" + }, + "ListNpmPackagesResponse": { + "description": "The response from listing npm packages.", + "id": "ListNpmPackagesResponse", + "properties": { + "nextPageToken": { + "description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", + "type": "string" + }, + "npmPackages": { + "description": "The npm packages returned.", + "items": { + "$ref": "NpmPackage" + }, + "type": "array" + } + }, + "type": "object" + }, "ListPackagesResponse": { "description": "The response from listing packages.", "id": "ListPackagesResponse", @@ -1512,6 +1949,24 @@ }, "type": "object" }, + "ListPythonPackagesResponse": { + "description": "The response from listing python packages.", + "id": "ListPythonPackagesResponse", + "properties": { + "nextPageToken": { + "description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", + "type": "string" + }, + "pythonPackages": { + "description": "The python packages returned.", + "items": { + "$ref": "PythonPackage" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRepositoriesResponse": { "description": "The response from listing repositories.", "id": "ListRepositoriesResponse", @@ -1566,6 +2021,79 @@ }, "type": "object" }, + "Location": { + "description": "A resource that represents Google Cloud Platform location.", + "id": "Location", + "properties": { + "displayName": { + "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "locationId": { + "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata. For example the available capacity at the given location.", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + } + }, + "type": "object" + }, + "MavenArtifact": { + "description": "MavenArtifact represents a maven artifact.", + "id": "MavenArtifact", + "properties": { + "artifactId": { + "description": "Artifact ID for the artifact.", + "type": "string" + }, + "createTime": { + "description": "Output only. Time the artifact was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "groupId": { + "description": "Group ID for the artifact. Example: com.google.guava", + "type": "string" + }, + "name": { + "description": "Required. registry_location, project_id, repository_name and maven_artifact forms a unique artifact For example, \"projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/ com.google.guava:guava:31.0-jre\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and \"com.google.guava:guava:31.0-jre\" is the maven artifact.", + "type": "string" + }, + "pomUri": { + "description": "Required. URL to access the pom file of the artifact. Example: us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time the artifact was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "Version of this artifact.", + "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", @@ -1591,6 +2119,44 @@ }, "type": "object" }, + "NpmPackage": { + "description": "NpmPackage represents an npm artifact.", + "id": "NpmPackage", + "properties": { + "createTime": { + "description": "Output only. Time the package was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Required. registry_location, project_id, repository_name and npm_package forms a unique package For example, \"projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/ npm_test:1.0.0\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and npm_test:1.0.0\" is the npm package.", + "type": "string" + }, + "packageName": { + "description": "Package for the artifact.", + "type": "string" + }, + "tags": { + "description": "Tags attached to this package.", + "items": { + "type": "string" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. Time the package was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "Version of this package.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1626,6 +2192,12 @@ }, "type": "object" }, + "OperationMetadata": { + "description": "Metadata type for longrunning-operations, currently empty.", + "id": "OperationMetadata", + "properties": {}, + "type": "object" + }, "Package": { "description": "Packages are named collections of versions.", "id": "Package", @@ -1702,6 +2274,41 @@ }, "type": "object" }, + "PythonPackage": { + "description": "PythonPackage represents a python artifact.", + "id": "PythonPackage", + "properties": { + "createTime": { + "description": "Output only. Time the package was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Required. registry_location, project_id, repository_name and python_package forms a unique package name:`projects//locations//repository//pythonPackages/`. For example, \"projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/ python_package:1.0.0\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and python_package:1.0.0\" is the python package.", + "type": "string" + }, + "packageName": { + "description": "Package for the artifact.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Time the package was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "uri": { + "description": "Required. URL to access the package. Example: us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz", + "type": "string" + }, + "version": { + "description": "Version of this package.", + "type": "string" + } + }, + "type": "object" + }, "Repository": { "description": "A Repository for storing artifacts with a specific format.", "id": "Repository", @@ -1724,7 +2331,8 @@ "NPM", "APT", "YUM", - "PYTHON" + "PYTHON", + "KFP" ], "enumDescriptions": [ "Unspecified package format.", @@ -1733,7 +2341,8 @@ "NPM package format.", "APT package format.", "YUM package format.", - "Python package format." + "Python package format.", + "Kubeflow Pipelines package format." ], "type": "string" }, @@ -1756,6 +2365,17 @@ "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. If set, the repository satisfies physical zone separation.", + "readOnly": true, + "type": "boolean" + }, + "sizeBytes": { + "description": "Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "The time when the repository was last updated.", "format": "google-datetime", @@ -1770,7 +2390,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1822,7 +2442,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1856,29 +2476,67 @@ }, "type": "object" }, + "UploadAptArtifactMetadata": { + "description": "The operation metadata for uploading artifacts.", + "id": "UploadAptArtifactMetadata", + "properties": {}, + "type": "object" + }, "UploadAptArtifactRequest": { "description": "The request to upload an artifact.", "id": "UploadAptArtifactRequest", "properties": {}, "type": "object" }, - "UploadGooGetArtifactMediaResponse": { - "description": "The response to upload an artifact.", - "id": "UploadGooGetArtifactMediaResponse", + "UploadAptArtifactResponse": { + "description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", + "id": "UploadAptArtifactResponse", "properties": { - "operation": { - "$ref": "Operation", - "description": "Operation to be returned to the user." + "aptArtifacts": { + "description": "The Apt artifacts updated.", + "items": { + "$ref": "AptArtifact" + }, + "type": "array" } }, "type": "object" }, - "UploadGooGetArtifactRequest": { - "description": "The request to upload an artifact.", - "id": "UploadGooGetArtifactRequest", + "UploadKfpArtifactMediaResponse": { + "description": "The response to upload an artifact.", + "id": "UploadKfpArtifactMediaResponse", + "properties": { + "operation": { + "$ref": "Operation", + "description": "Operation that will be returned to the user." + } + }, + "type": "object" + }, + "UploadKfpArtifactMetadata": { + "description": "The operation metadata for uploading KFP artifacts.", + "id": "UploadKfpArtifactMetadata", "properties": {}, "type": "object" }, + "UploadKfpArtifactRequest": { + "description": "The request to upload an artifact.", + "id": "UploadKfpArtifactRequest", + "properties": { + "description": { + "description": "Description of the package version.", + "type": "string" + }, + "tags": { + "description": "Tags to be created with the version.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "UploadYumArtifactMediaResponse": { "description": "The response to upload an artifact.", "id": "UploadYumArtifactMediaResponse", @@ -1890,12 +2548,32 @@ }, "type": "object" }, + "UploadYumArtifactMetadata": { + "description": "The operation metadata for uploading artifacts.", + "id": "UploadYumArtifactMetadata", + "properties": {}, + "type": "object" + }, "UploadYumArtifactRequest": { "description": "The request to upload an artifact.", "id": "UploadYumArtifactRequest", "properties": {}, "type": "object" }, + "UploadYumArtifactResponse": { + "description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", + "id": "UploadYumArtifactResponse", + "properties": { + "yumArtifacts": { + "description": "The Apt artifacts updated.", + "items": { + "$ref": "YumArtifact" + }, + "type": "array" + } + }, + "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", @@ -1914,7 +2592,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Output only. Repository-specific Metadata stored against this version. The fields returned are defined by the underlying repository-specific resource. Currently, the only resource in use is DockerImage", + "description": "Output only. Repository-specific Metadata stored against this version. The fields returned are defined by the underlying repository-specific resource. Currently, the resources could be: DockerImage MavenArtifact", "readOnly": true, "type": "object" }, @@ -1936,6 +2614,43 @@ } }, "type": "object" + }, + "YumArtifact": { + "description": "A detailed representation of a Yum artifact.", + "id": "YumArtifact", + "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 yum package name of the artifact.", + "readOnly": true, + "type": "string" + }, + "packageType": { + "description": "Output only. An artifact is a binary or source package.", + "enum": [ + "PACKAGE_TYPE_UNSPECIFIED", + "BINARY", + "SOURCE" + ], + "enumDescriptions": [ + "Package type is not specified.", + "Binary package (.rpm).", + "Source package (.srpm)." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json index 24f730e0c2..2594b08794 100644 --- a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json @@ -148,7 +148,7 @@ ], "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).", + "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" }, @@ -314,7 +314,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -411,7 +411,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -439,7 +439,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -514,7 +514,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose files will be listed.", + "description": "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, @@ -929,7 +929,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "Binding": { @@ -941,7 +941,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -955,7 +955,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1322,6 +1322,17 @@ "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. If set, the repository satisfies physical zone separation.", + "readOnly": true, + "type": "boolean" + }, + "sizeBytes": { + "description": "Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "The time when the repository was last updated.", "format": "google-datetime", @@ -1336,7 +1347,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1388,7 +1399,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json index d6da582f66..7ad8c5e9ad 100644 --- a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json @@ -210,7 +210,7 @@ ], "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).", + "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" }, @@ -376,7 +376,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -473,7 +473,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -501,7 +501,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repositories/[^/]+$", "required": true, @@ -648,7 +648,7 @@ "type": "string" }, "parent": { - "description": "The name of the parent resource whose files will be listed.", + "description": "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, @@ -1135,7 +1135,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { @@ -1195,7 +1195,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1209,7 +1209,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1333,6 +1333,12 @@ }, "type": "object" }, + "ImportAptArtifactsMetadata": { + "description": "The operation metadata for importing artifacts.", + "id": "ImportAptArtifactsMetadata", + "properties": {}, + "type": "object" + }, "ImportAptArtifactsRequest": { "description": "The request to import new apt artifacts.", "id": "ImportAptArtifactsRequest", @@ -1398,6 +1404,12 @@ }, "type": "object" }, + "ImportYumArtifactsMetadata": { + "description": "The operation metadata for importing artifacts.", + "id": "ImportYumArtifactsMetadata", + "properties": {}, + "type": "object" + }, "ImportYumArtifactsRequest": { "description": "The request to import new yum artifacts.", "id": "ImportYumArtifactsRequest", @@ -1768,6 +1780,17 @@ "description": "The name of the repository, for example: \"projects/p1/locations/us-central1/repositories/repo1\".", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. If set, the repository satisfies physical zone separation.", + "readOnly": true, + "type": "boolean" + }, + "sizeBytes": { + "description": "Output only. The size, in bytes, of all artifact storage in this repository. Repositories that are generally available or in public preview use this to calculate storage costs.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "The time when the repository was last updated.", "format": "google-datetime", @@ -1782,7 +1805,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1834,7 +1857,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1868,6 +1891,12 @@ }, "type": "object" }, + "UploadAptArtifactMetadata": { + "description": "The operation metadata for uploading artifacts.", + "id": "UploadAptArtifactMetadata", + "properties": {}, + "type": "object" + }, "UploadAptArtifactRequest": { "description": "The request to upload an artifact.", "id": "UploadAptArtifactRequest", @@ -1899,6 +1928,12 @@ }, "type": "object" }, + "UploadYumArtifactMetadata": { + "description": "The operation metadata for uploading artifacts.", + "id": "UploadYumArtifactMetadata", + "properties": {}, + "type": "object" + }, "UploadYumArtifactRequest": { "description": "The request to upload an artifact.", "id": "UploadYumArtifactRequest", @@ -1937,7 +1972,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Output only. Repository-specific Metadata stored against this version. The fields returned are defined by the underlying repository-specific resource. Currently, the only resource in use is DockerImage", + "description": "Output only. Repository-specific Metadata stored against this version. The fields returned are defined by the underlying repository-specific resource. Currently, the resources could be: DockerImage MavenArtifact", "readOnly": true, "type": "object" }, diff --git a/etc/api/assuredworkloads/v1/assuredworkloads-api.json b/etc/api/assuredworkloads/v1/assuredworkloads-api.json index 233989c74e..6d35abca78 100644 --- a/etc/api/assuredworkloads/v1/assuredworkloads-api.json +++ b/etc/api/assuredworkloads/v1/assuredworkloads-api.json @@ -14,7 +14,7 @@ "canonicalName": "Assuredworkloads", "description": "", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com", + "documentationLink": "https://cloud.google.com/learnmoreurl", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -254,7 +254,7 @@ ], "parameters": { "name": { - "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\".", + "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\".", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", "required": true, @@ -310,6 +310,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "mutatePartnerPermissions": { + "description": "Update the permissions settings for an existing partner workload. For force updates don't set etag field in the Workload. Only one update operation per workload can be in progress.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:mutatePartnerPermissions", + "httpMethod": "PATCH", + "id": "assuredworkloads.organizations.locations.workloads.mutatePartnerPermissions", + "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}:mutatePartnerPermissions", + "request": { + "$ref": "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest" + }, + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1Workload" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates an existing workload. Currently allows updating of workload display_name and labels. For force updates don't set etag field in the Workload. Only one update operation per workload can be in progress.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", @@ -343,6 +371,146 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "restrictAllowedResources": { + "description": "Restrict the list of resources allowed in the Workload environment. The current list of allowed products can be found at https://cloud.google.com/assured-workloads/docs/supported-products In addition to assuredworkloads.workload.update permission, the user should also have orgpolicy.policy.set permission on the folder resource to use this functionality.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:restrictAllowedResources", + "httpMethod": "POST", + "id": "assuredworkloads.organizations.locations.workloads.restrictAllowedResources", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Workload. This is the workloads's relative path in the API, formatted as \"organizations/{organization_id}/locations/{location_id}/workloads/{workload_id}\". For example, \"organizations/123/locations/us-east1/workloads/assured-workload-1\".", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:restrictAllowedResources", + "request": { + "$ref": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest" + }, + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "violations": { + "methods": { + "acknowledge": { + "description": "Acknowledges an existing violation. By acknowledging a violation, users acknowledge the existence of a compliance violation in their workload and decide to ignore it due to a valid business justification. Acknowledgement is a permanent operation and it cannot be reverted.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations/{violationsId}:acknowledge", + "httpMethod": "POST", + "id": "assuredworkloads.organizations.locations.workloads.violations.acknowledge", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Violation to acknowledge. Format: organizations/{organization}/locations/{location}/workloads/{workload}/violations/{violation}", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+/violations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:acknowledge", + "request": { + "$ref": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest" + }, + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves Assured Workload Violation based on ID.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations/{violationsId}", + "httpMethod": "GET", + "id": "assuredworkloads.organizations.locations.workloads.violations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Violation to fetch (ie. Violation.name). Format: organizations/{organization}/locations/{location}/workloads/{workload}/violations/{violation}", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+/violations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1Violation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the Violations in the AssuredWorkload Environment. Callers may also choose to read across multiple Workloads as per [AIP-159](https://google.aip.dev/159) by using '-' (the hyphen or dash character) as a wildcard character instead of workload-id in the parent. Format `organizations/{org_id}/locations/{location}/workloads/-`", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}/violations", + "httpMethod": "GET", + "id": "assuredworkloads.organizations.locations.workloads.violations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A custom filter for filtering by the Violations properties.", + "location": "query", + "type": "string" + }, + "interval.endTime": { + "description": "The end of the time window.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "interval.startTime": { + "description": "The start of the time window.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token returned from previous request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The Workload name. Format `organizations/{org_id}/locations/{location}/workloads/{workload}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/violations", + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1ListViolationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -351,9 +519,30 @@ } } }, - "revision": "20220224", + "revision": "20230116", "rootUrl": "https://assuredworkloads.googleapis.com/", "schemas": { + "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": { + "description": "Request for acknowledging the violation Next Id: 4", + "id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest", + "properties": { + "comment": { + "description": "Required. Business justification explaining the need for violation acknowledgement", + "type": "string" + }, + "nonCompliantOrgPolicy": { + "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" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse": { + "description": "Response for violation acknowledgement", + "id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata": { "description": "Operation metadata to give request details of CreateWorkload.", "id": "GoogleCloudAssuredworkloadsV1CreateWorkloadOperationMetadata", @@ -370,7 +559,11 @@ "HIPAA", "HITRUST", "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" + "CA_REGIONS_AND_SUPPORT", + "ITAR", + "AU_REGIONS_AND_US_SUPPORT", + "ASSURED_WORKLOADS_FOR_PARTNERS", + "ISR_REGIONS" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -382,7 +575,11 @@ "Health Insurance Portability and Accountability Act controls", "Health Information Trust Alliance controls", "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada 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" ], "type": "string" }, @@ -402,6 +599,24 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1ListViolationsResponse": { + "description": "Response of ListViolations endpoint.", + "id": "GoogleCloudAssuredworkloadsV1ListViolationsResponse", + "properties": { + "nextPageToken": { + "description": "The next page token. Returns empty if reached the last page.", + "type": "string" + }, + "violations": { + "description": "List of Violations under a Workload.", + "items": { + "$ref": "GoogleCloudAssuredworkloadsV1Violation" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1ListWorkloadsResponse": { "description": "Response of ListWorkloads endpoint.", "id": "GoogleCloudAssuredworkloadsV1ListWorkloadsResponse", @@ -420,8 +635,256 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest": { + "description": "Request of updating permission settings for a partner workload.", + "id": "GoogleCloudAssuredworkloadsV1MutatePartnerPermissionsRequest", + "properties": { + "etag": { + "description": "Optional. The etag of the workload. If this is provided, it must match the server's etag.", + "type": "string" + }, + "partnerPermissions": { + "$ref": "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions", + "description": "Required. The partner permissions to be updated." + }, + "updateMask": { + "description": "Required. The list of fields to be updated. E.g. update_mask { paths: \"partner_permissions.data_logs_viewer\"}", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest": { + "description": "Request for restricting list of available resources in Workload environment.", + "id": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesRequest", + "properties": { + "restrictionType": { + "description": "Required. The type of restriction for using gcp products in the Workload environment.", + "enum": [ + "RESTRICTION_TYPE_UNSPECIFIED", + "ALLOW_ALL_GCP_RESOURCES", + "ALLOW_COMPLIANT_RESOURCES", + "APPEND_COMPLIANT_RESOURCES" + ], + "enumDescriptions": [ + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse": { + "description": "Response for restricting the list of allowed resources.", + "id": "GoogleCloudAssuredworkloadsV1RestrictAllowedResourcesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1Violation": { + "description": "Workload monitoring Violation. Next Id: 22", + "id": "GoogleCloudAssuredworkloadsV1Violation", + "properties": { + "acknowledged": { + "description": "A boolean that indicates if the violation is acknowledged", + "type": "boolean" + }, + "acknowledgementTime": { + "description": "Optional. Timestamp when this violation was acknowledged last. This will be absent when acknowledged field is marked as false.", + "format": "google-datetime", + "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, + "type": "string" + }, + "beginTime": { + "description": "Output only. Time of the event which triggered the Violation.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "category": { + "description": "Output only. Category under which this violation is mapped. e.g. Location, Service Usage, Access, Encryption, etc.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Description for the Violation. e.g. OrgPolicy gcp.resourceLocations has non compliant value.", + "readOnly": true, + "type": "string" + }, + "exceptionAuditLogLink": { + "description": "Output only. Immutable. Audit Log link to find business justification provided for violation exception. Format: https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{protoPayload.methodName}{timeRange}{organization}", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Immutable. Name of the Violation. Format: organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}", + "readOnly": true, + "type": "string" + }, + "nonCompliantOrgPolicy": { + "description": "Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and resulted this violation. Format: projects/{project_number}/policies/{constraint_name} folders/{folder_id}/policies/{constraint_name} organizations/{organization_id}/policies/{constraint_name}", + "readOnly": true, + "type": "string" + }, + "orgPolicyConstraint": { + "description": "Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in this violation.", + "readOnly": true, + "type": "string" + }, + "remediation": { + "$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediation", + "description": "Output only. Compliance violation remediation", + "readOnly": true + }, + "resolveTime": { + "description": "Output only. Time of the event which fixed the Violation. If the violation is ACTIVE this will be empty.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. State of the violation", + "enum": [ + "STATE_UNSPECIFIED", + "RESOLVED", + "UNRESOLVED", + "EXCEPTION" + ], + "enumDescriptions": [ + "Unspecified state.", + "Violation is resolved.", + "Violation is Unresolved", + "Violation is Exception" + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last time when the Violation record was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1ViolationRemediation": { + "description": "Represents remediation guidance to resolve compliance violation for AssuredWorkload", + "id": "GoogleCloudAssuredworkloadsV1ViolationRemediation", + "properties": { + "compliantValues": { + "description": "Values that can resolve the violation For example: for list org policy violations, this will either be the list of allowed or denied values", + "items": { + "type": "string" + }, + "type": "array" + }, + "instructions": { + "$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions", + "description": "Required. Remediation instructions to resolve violations" + }, + "remediationType": { + "description": "Output only. Reemediation type based on the type of org policy values violated", + "enum": [ + "REMEDIATION_TYPE_UNSPECIFIED", + "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" + ], + "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" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions": { + "description": "Instructions to remediate violation", + "id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructions", + "properties": { + "consoleInstructions": { + "$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole", + "description": "Remediation instructions to resolve violation via cloud console" + }, + "gcloudInstructions": { + "$ref": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud", + "description": "Remediation instructions to resolve violation via gcloud cli" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole": { + "description": "Remediation instructions to resolve violation via cloud console", + "id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsConsole", + "properties": { + "additionalLinks": { + "description": "Additional urls for more information about steps", + "items": { + "type": "string" + }, + "type": "array" + }, + "consoleUris": { + "description": "Link to console page where violations can be resolved", + "items": { + "type": "string" + }, + "type": "array" + }, + "steps": { + "description": "Steps to resolve violation via cloud console", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud": { + "description": "Remediation instructions to resolve violation via gcloud cli", + "id": "GoogleCloudAssuredworkloadsV1ViolationRemediationInstructionsGcloud", + "properties": { + "additionalLinks": { + "description": "Additional urls for more information about steps", + "items": { + "type": "string" + }, + "type": "array" + }, + "gcloudCommands": { + "description": "Gcloud command to resolve violation", + "items": { + "type": "string" + }, + "type": "array" + }, + "steps": { + "description": "Steps to resolve violation via gcloud cli", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1Workload": { - "description": "An Workload object for managing highly regulated workloads of cloud customers.", + "description": "A Workload object for managing highly regulated workloads of cloud customers.", "id": "GoogleCloudAssuredworkloadsV1Workload", "properties": { "billingAccount": { @@ -440,7 +903,11 @@ "HIPAA", "HITRUST", "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" + "CA_REGIONS_AND_SUPPORT", + "ITAR", + "AU_REGIONS_AND_US_SUPPORT", + "ASSURED_WORKLOADS_FOR_PARTNERS", + "ISR_REGIONS" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -452,10 +919,27 @@ "Health Insurance Portability and Accountability Act controls", "Health Information Trust Alliance controls", "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada 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" ], "type": "string" }, + "complianceStatus": { + "$ref": "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus", + "description": "Output only. Count of active Violations in the Workload.", + "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.\"", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "createTime": { "description": "Output only. Immutable. The Workload creation timestamp.", "format": "google-datetime", @@ -504,6 +988,20 @@ "description": "Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.", "type": "string" }, + "partner": { + "description": "Optional. Partner regime associated with this workload.", + "enum": [ + "PARTNER_UNSPECIFIED", + "LOCAL_CONTROLS_BY_S3NS", + "SOVEREIGN_CONTROLS_BY_T_SYSTEMS" + ], + "enumDescriptions": [ + "", + "Enum representing S3NS partner.", + "Enum representing T_SYSTEM partner." + ], + "type": "string" + }, "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" @@ -531,8 +1029,25 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus": { + "description": "Represents the Compliance Status of this workload", + "id": "GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus", + "properties": { + "acknowledgedViolationCount": { + "description": "Count of active Violations which are acknowledged in the Workload.", + "format": "int32", + "type": "integer" + }, + "activeViolationCount": { + "description": "Count of active Violations which haven't been acknowledged.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings": { - "description": "Settings specific to the Key Management Service.", + "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.", "id": "GoogleCloudAssuredworkloadsV1WorkloadKMSSettings", "properties": { "nextRotationTime": { @@ -548,6 +1063,25 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1WorkloadPartnerPermissions": { + "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", + "type": "boolean" + }, + "remediateFolderViolations": { + "description": "Allow partner to monitor folder and remediate violations", + "type": "boolean" + }, + "serviceAccessApprover": { + "description": "Allow partner to approve or reject Service Access requests", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1WorkloadResourceInfo": { "description": "Represent the resources that are children of this Workload.", "id": "GoogleCloudAssuredworkloadsV1WorkloadResourceInfo", @@ -591,7 +1125,7 @@ "type": "string" }, "resourceType": { - "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)", + "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)", "enum": [ "RESOURCE_TYPE_UNSPECIFIED", "CONSUMER_PROJECT", @@ -653,702 +1187,6 @@ }, "type": "object" }, - "GoogleCloudAssuredworkloadsV1beta1CreateWorkloadOperationMetadata": { - "description": "Operation metadata to give request details of CreateWorkload.", - "id": "GoogleCloudAssuredworkloadsV1beta1CreateWorkloadOperationMetadata", - "properties": { - "complianceRegime": { - "description": "Optional. Compliance controls that should be applied to the resources managed by the workload.", - "enum": [ - "COMPLIANCE_REGIME_UNSPECIFIED", - "IL4", - "CJIS", - "FEDRAMP_HIGH", - "FEDRAMP_MODERATE", - "US_REGIONAL_ACCESS", - "HIPAA", - "HITRUST", - "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" - ], - "enumDescriptions": [ - "Unknown compliance regime.", - "Information protection as per DoD IL4 requirements.", - "Criminal Justice Information Services (CJIS) Security policies.", - "FedRAMP High data protection controls", - "FedRAMP Moderate data protection controls", - "Assured Workloads For US Regions data protection controls", - "Health Insurance Portability and Accountability Act controls", - "Health Information Trust Alliance controls", - "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada Regions and Support controls" - ], - "type": "string" - }, - "createTime": { - "description": "Optional. Time when the operation was created.", - "format": "google-datetime", - "type": "string" - }, - "displayName": { - "description": "Optional. The display name of the workload.", - "type": "string" - }, - "parent": { - "description": "Optional. The parent of the workload.", - "type": "string" - }, - "resourceSettings": { - "description": "Optional. Resource properties in the input that are used for creating/customizing workload resources.", - "items": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1Workload": { - "description": "An Workload object for managing highly regulated workloads of cloud customers.", - "id": "GoogleCloudAssuredworkloadsV1beta1Workload", - "properties": { - "billingAccount": { - "description": "Input only. The billing account used for the resources which are direct children of workload. This billing account is initially associated with the resources created as part of Workload creation. After the initial creation of these resources, the customer can change the assigned billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF`.", - "type": "string" - }, - "cjisSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadCJISSettings", - "description": "Input only. Immutable. Settings specific to resources needed for CJIS." - }, - "complianceRegime": { - "description": "Required. Immutable. Compliance Regime associated with this workload.", - "enum": [ - "COMPLIANCE_REGIME_UNSPECIFIED", - "IL4", - "CJIS", - "FEDRAMP_HIGH", - "FEDRAMP_MODERATE", - "US_REGIONAL_ACCESS", - "HIPAA", - "HITRUST", - "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" - ], - "enumDescriptions": [ - "Unknown compliance regime.", - "Information protection as per DoD IL4 requirements.", - "Criminal Justice Information Services (CJIS) Security policies.", - "FedRAMP High data protection controls", - "FedRAMP Moderate data protection controls", - "Assured Workloads For US Regions data protection controls", - "Health Insurance Portability and Accountability Act controls", - "Health Information Trust Alliance controls", - "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada Regions and Support controls" - ], - "type": "string" - }, - "createTime": { - "description": "Output only. Immutable. The Workload creation timestamp.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "displayName": { - "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" - }, - "enableSovereignControls": { - "description": "Optional. Indicates the sovereignty status of the given workload. Currently meant to be used by Europe/Canada customers.", - "type": "boolean" - }, - "etag": { - "description": "Optional. ETag of the workload, it is calculated on the basis of the Workload contents. It will be used in Update & Delete operations.", - "type": "string" - }, - "fedrampHighSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings", - "description": "Input only. Immutable. Settings specific to resources needed for FedRAMP High." - }, - "fedrampModerateSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings", - "description": "Input only. Immutable. Settings specific to resources needed for FedRAMP Moderate." - }, - "il4Settings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadIL4Settings", - "description": "Input only. Immutable. Settings specific to resources needed for IL4." - }, - "kajEnrollmentState": { - "description": "Output only. Represents the KAJ enrollment state of the given workload.", - "enum": [ - "KAJ_ENROLLMENT_STATE_UNSPECIFIED", - "KAJ_ENROLLMENT_STATE_PENDING", - "KAJ_ENROLLMENT_STATE_COMPLETE" - ], - "enumDescriptions": [ - "Default State for KAJ Enrollment.", - "Pending State for KAJ Enrollment.", - "Complete State for KAJ Enrollment." - ], - "readOnly": true, - "type": "string" - }, - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels applied to the workload.", - "type": "object" - }, - "name": { - "description": "Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.", - "type": "string" - }, - "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" - }, - "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": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings" - }, - "type": "array" - }, - "resources": { - "description": "Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.", - "items": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo" - }, - "readOnly": true, - "type": "array" - }, - "saaEnrollmentResponse": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse", - "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 - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadCJISSettings": { - "description": "Settings specific to resources needed for CJIS.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadCJISSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings": { - "description": "Settings specific to resources needed for FedRAMP High.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings": { - "description": "Settings specific to resources needed for FedRAMP Moderate.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadIL4Settings": { - "description": "Settings specific to resources needed for IL4.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadIL4Settings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings": { - "description": "Settings specific to the Key Management Service.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadKMSSettings", - "properties": { - "nextRotationTime": { - "description": "Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.", - "format": "google-datetime", - "type": "string" - }, - "rotationPeriod": { - "description": "Required. Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.", - "format": "google-duration", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo": { - "description": "Represent the resources that are children of this Workload.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo", - "properties": { - "resourceId": { - "description": "Resource identifier. For a project this represents project_number.", - "format": "int64", - "type": "string" - }, - "resourceType": { - "description": "Indicates the type of resource.", - "enum": [ - "RESOURCE_TYPE_UNSPECIFIED", - "CONSUMER_PROJECT", - "CONSUMER_FOLDER", - "ENCRYPTION_KEYS_PROJECT", - "KEYRING" - ], - "enumDescriptions": [ - "Unknown resource type.", - "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." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings": { - "description": "Represent the custom settings for the resources to be created.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings", - "properties": { - "displayName": { - "description": "User-assigned resource display name. If not empty it will be used to create a resource with the specified name.", - "type": "string" - }, - "resourceId": { - "description": "Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as folder_id is assigned by Google.", - "type": "string" - }, - "resourceType": { - "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", - "CONSUMER_FOLDER", - "ENCRYPTION_KEYS_PROJECT", - "KEYRING" - ], - "enumDescriptions": [ - "Unknown resource type.", - "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." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse": { - "description": "Signed Access Approvals (SAA) enrollment response.", - "id": "GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse", - "properties": { - "setupErrors": { - "description": "Indicates SAA enrollment setup error if any.", - "items": { - "enum": [ - "SETUP_ERROR_UNSPECIFIED", - "ERROR_INVALID_BASE_SETUP", - "ERROR_MISSING_EXTERNAL_SIGNING_KEY", - "ERROR_NOT_ALL_SERVICES_ENROLLED", - "ERROR_SETUP_CHECK_FAILED" - ], - "enumDescriptions": [ - "Unspecified.", - "Invalid states for all customers, to be redirected to AA UI for additional details.", - "Returned when there is not an EKM key configured.", - "Returned when there are no enrolled services or the customer is enrolled in CAA only for a subset of services.", - "Returned when exception was encountered during evaluation of other criteria." - ], - "type": "string" - }, - "type": "array" - }, - "setupStatus": { - "description": "Indicates SAA enrollment status of a given workload.", - "enum": [ - "SETUP_STATE_UNSPECIFIED", - "STATUS_PENDING", - "STATUS_COMPLETE" - ], - "enumDescriptions": [ - "Unspecified.", - "SAA enrollment pending.", - "SAA enrollment comopleted." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainCreateWorkloadOperationMetadata": { - "description": "Operation metadata to give request details of CreateWorkload.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainCreateWorkloadOperationMetadata", - "properties": { - "complianceRegime": { - "description": "Optional. Compliance controls that should be applied to the resources managed by the workload.", - "enum": [ - "COMPLIANCE_REGIME_UNSPECIFIED", - "IL4", - "CJIS", - "FEDRAMP_HIGH", - "FEDRAMP_MODERATE", - "US_REGIONAL_ACCESS", - "HIPAA", - "HITRUST", - "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" - ], - "enumDescriptions": [ - "Unknown compliance regime.", - "Information protection as per DoD IL4 requirements.", - "Criminal Justice Information Services (CJIS) Security policies.", - "FedRAMP High data protection controls", - "FedRAMP Moderate data protection controls", - "Assured Workloads For US Regions data protection controls", - "Health Insurance Portability and Accountability Act controls", - "Health Information Trust Alliance controls", - "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada Regions and Support controls" - ], - "type": "string" - }, - "createTime": { - "description": "Optional. Time when the operation was created.", - "format": "google-datetime", - "type": "string" - }, - "displayName": { - "description": "Optional. The display name of the workload.", - "type": "string" - }, - "parent": { - "description": "Optional. The parent of the workload.", - "type": "string" - }, - "resourceSettings": { - "description": "Optional. Resource properties in the input that are used for creating/customizing workload resources.", - "items": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceSettings" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkload": { - "description": "An Workload object for managing highly regulated workloads of cloud customers.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkload", - "properties": { - "billingAccount": { - "description": "Input only. The billing account used for the resources which are direct children of workload. This billing account is initially associated with the resources created as part of Workload creation. After the initial creation of these resources, the customer can change the assigned billing account. The resource name has the form `billingAccounts/{billing_account_id}`. For example, `billingAccounts/012345-567890-ABCDEF`.", - "type": "string" - }, - "cjisSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadCJISSettings", - "description": "Required. Input only. Immutable. Settings specific to resources needed for CJIS." - }, - "complianceRegime": { - "description": "Required. Immutable. Compliance Regime associated with this workload.", - "enum": [ - "COMPLIANCE_REGIME_UNSPECIFIED", - "IL4", - "CJIS", - "FEDRAMP_HIGH", - "FEDRAMP_MODERATE", - "US_REGIONAL_ACCESS", - "HIPAA", - "HITRUST", - "EU_REGIONS_AND_SUPPORT", - "CA_REGIONS_AND_SUPPORT" - ], - "enumDescriptions": [ - "Unknown compliance regime.", - "Information protection as per DoD IL4 requirements.", - "Criminal Justice Information Services (CJIS) Security policies.", - "FedRAMP High data protection controls", - "FedRAMP Moderate data protection controls", - "Assured Workloads For US Regions data protection controls", - "Health Insurance Portability and Accountability Act controls", - "Health Information Trust Alliance controls", - "Assured Workloads For EU Regions and Support controls", - "Assured Workloads For Canada Regions and Support controls" - ], - "type": "string" - }, - "createTime": { - "description": "Output only. Immutable. The Workload creation timestamp.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "displayName": { - "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" - }, - "enableSovereignControls": { - "description": "Optional. Indicates the sovereignty status of the given workload. Currently meant to be used by Europe/Canada customers.", - "type": "boolean" - }, - "etag": { - "description": "Optional. ETag of the workload, it is calculated on the basis of the Workload contents. It will be used in Update & Delete operations.", - "type": "string" - }, - "fedrampHighSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampHighSettings", - "description": "Required. Input only. Immutable. Settings specific to resources needed for FedRAMP High." - }, - "fedrampModerateSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampModerateSettings", - "description": "Required. Input only. Immutable. Settings specific to resources needed for FedRAMP Moderate." - }, - "il4Settings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadIL4Settings", - "description": "Required. Input only. Immutable. Settings specific to resources needed for IL4." - }, - "kajEnrollmentState": { - "description": "Output only. Represents the KAJ enrollment state of the given workload.", - "enum": [ - "KAJ_ENROLLMENT_STATE_UNSPECIFIED", - "KAJ_ENROLLMENT_STATE_PENDING", - "KAJ_ENROLLMENT_STATE_COMPLETE" - ], - "enumDescriptions": [ - "Default State for KAJ Enrollment.", - "Pending State for KAJ Enrollment.", - "Complete State for KAJ Enrollment." - ], - "readOnly": true, - "type": "string" - }, - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "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": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. Labels applied to the workload.", - "type": "object" - }, - "name": { - "description": "Optional. The resource name of the workload. Format: organizations/{organization}/locations/{location}/workloads/{workload} Read-only.", - "type": "string" - }, - "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" - }, - "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": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceSettings" - }, - "type": "array" - }, - "resources": { - "description": "Output only. The resources associated with this workload. These resources will be created when creating the workload. If any of the projects already exist, the workload creation will fail. Always read only.", - "items": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceInfo" - }, - "readOnly": true, - "type": "array" - }, - "saaEnrollmentResponse": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadSaaEnrollmentResponse", - "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 - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadCJISSettings": { - "description": "Settings specific to resources needed for CJIS.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadCJISSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampHighSettings": { - "description": "Settings specific to resources needed for FedRAMP High.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampHighSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampModerateSettings": { - "description": "Settings specific to resources needed for FedRAMP Moderate.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadFedrampModerateSettings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadIL4Settings": { - "description": "Settings specific to resources needed for IL4.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadIL4Settings", - "properties": { - "kmsSettings": { - "$ref": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "description": "Input only. Immutable. Settings used to create a CMEK crypto key." - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings": { - "description": "Settings specific to the Key Management Service.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadKMSSettings", - "properties": { - "nextRotationTime": { - "description": "Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.", - "format": "google-datetime", - "type": "string" - }, - "rotationPeriod": { - "description": "Required. Input only. Immutable. [next_rotation_time] will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.", - "format": "google-duration", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceInfo": { - "description": "Represent the resources that are children of this Workload.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceInfo", - "properties": { - "resourceId": { - "description": "Resource identifier. For a project this represents project_number.", - "format": "int64", - "type": "string" - }, - "resourceType": { - "description": "Indicates the type of resource.", - "enum": [ - "RESOURCE_TYPE_UNSPECIFIED", - "CONSUMER_PROJECT", - "CONSUMER_FOLDER", - "ENCRYPTION_KEYS_PROJECT", - "KEYRING" - ], - "enumDescriptions": [ - "Unknown resource type.", - "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." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceSettings": { - "description": "Represent the custom settings for the resources to be created.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadResourceSettings", - "properties": { - "displayName": { - "description": "User-assigned resource display name. If not empty it will be used to create a resource with the specified name.", - "type": "string" - }, - "resourceId": { - "description": "Resource identifier. For a project this represents project_id. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as folder_id is assigned by Google.", - "type": "string" - }, - "resourceType": { - "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", - "CONSUMER_FOLDER", - "ENCRYPTION_KEYS_PROJECT", - "KEYRING" - ], - "enumDescriptions": [ - "Unknown resource type.", - "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." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadSaaEnrollmentResponse": { - "description": "Signed Access Approvals (SAA) enrollment response.", - "id": "GoogleCloudAssuredworkloadsVersioningV1mainWorkloadSaaEnrollmentResponse", - "properties": { - "setupErrors": { - "description": "Indicates SAA enrollment setup error if any.", - "items": { - "enum": [ - "SETUP_ERROR_UNSPECIFIED", - "ERROR_INVALID_BASE_SETUP", - "ERROR_MISSING_EXTERNAL_SIGNING_KEY", - "ERROR_NOT_ALL_SERVICES_ENROLLED", - "ERROR_SETUP_CHECK_FAILED" - ], - "enumDescriptions": [ - "Unspecified.", - "Invalid states for all customers, to be redirected to AA UI for additional details.", - "Returned when there is not an EKM key configured.", - "Returned when there are no enrolled services or the customer is enrolled in CAA only for a subset of services.", - "Returned when exception was encountered during evaluation of other criteria." - ], - "type": "string" - }, - "type": "array" - }, - "setupStatus": { - "description": "Indicates SAA enrollment status of a given workload.", - "enum": [ - "SETUP_STATE_UNSPECIFIED", - "STATUS_PENDING", - "STATUS_COMPLETE" - ], - "enumDescriptions": [ - "Unspecified.", - "SAA enrollment pending.", - "SAA enrollment comopleted." - ], - "type": "string" - } - }, - "type": "object" - }, "GoogleLongrunningListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "GoogleLongrunningListOperationsResponse", @@ -1403,7 +1241,7 @@ "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/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json index 5279c74af3..b5cee05313 100644 --- a/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json +++ b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://authorizedbuyersmarketplace.googleapis.com/", "batchPath": "batch", "canonicalName": "Authorized Buyers Marketplace", - "description": "The Authorized Buyers Marketplace API allows buyers programmatically discover inventory; propose, retrieve and negotiate deals with publishers.", + "description": "The Authorized Buyers Marketplace API lets buyers programmatically discover inventory; propose, retrieve and negotiate deals with publishers.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/", "fullyEncodeReservedExpansion": true, @@ -507,7 +507,7 @@ "type": "string" }, "updateMask": { - "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, e.g. false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", + "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -860,7 +860,7 @@ ] }, "setReadyToServe": { - "description": "Sets the given finalized deal as ready to serve. By default, deals are ready to serve as soon as they're finalized. A bidder can opt out of this feature by asking to be included in an allowlist. Once opted out, finalized deals belonging to the bidder and its child seats will not start serving until this method is called. This method is useful to the bidders who prefer to not receive bid requests before the creative is ready. This method only applies to programmatic guaranteed deals.", + "description": "Sets the given finalized deal as ready to serve. By default, deals are set as ready to serve as soon as they're finalized. If you want to opt out of the default behavior, and manually indicate that deals are ready to serve, ask your Technical Account Manager to add you to the allowlist. If you choose to use this method, finalized deals belonging to the bidder and its child seats don't start serving until after you call `setReadyToServe`, and after the deals become active. For example, you can use this method to delay receiving bid requests until your creative is ready. This method only applies to programmatic guaranteed deals.", "flatPath": "v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:setReadyToServe", "httpMethod": "POST", "id": "authorizedbuyersmarketplace.buyers.finalizedDeals.setReadyToServe", @@ -1058,7 +1058,7 @@ "type": "string" }, "updateMask": { - "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, e.g. false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", + "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1197,7 +1197,7 @@ ] }, "patch": { - "description": "Updates the given deal at the buyer known revision number. If the server revision has advanced since the passed-in proposal.proposal_revision an ABORTED error message will be returned. The revision number is incremented by the server whenever the proposal or its constituent deals are updated. Note: The revision number is kept at a proposal level. The buyer of the API is expected to keep track of the revision number after the last update operation and send it in as part of the next update request. This way, if there are further changes on the server (e.g., seller making new updates), then the server can detect conflicts and reject the proposed changes.", + "description": "Updates the given deal at the buyer known revision number. If the server revision has advanced since the passed-in proposal.proposal_revision an ABORTED error message will be returned. The revision number is incremented by the server whenever the proposal or its constituent deals are updated. Note: The revision number is kept at a proposal level. The buyer of the API is expected to keep track of the revision number after the last update operation and send it in as part of the next update request. This way, if there are further changes on the server (for example, seller making new updates), then the server can detect conflicts and reject the proposed changes.", "flatPath": "v1/buyers/{buyersId}/proposals/{proposalsId}/deals/{dealsId}", "httpMethod": "PATCH", "id": "authorizedbuyersmarketplace.buyers.proposals.deals.patch", @@ -1213,7 +1213,7 @@ "type": "string" }, "updateMask": { - "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, e.g. false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", + "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1262,7 +1262,7 @@ ] }, "list": { - "description": "Lists publisher profiles", + "description": "Lists publisher profiles. The returned publisher profiles aren't in any defined order. The order of the results might change. A new publisher profile can appear in any place in the list of returned results.", "flatPath": "v1/buyers/{buyersId}/publisherProfiles", "httpMethod": "GET", "id": "authorizedbuyersmarketplace.buyers.publisherProfiles.list", @@ -1307,7 +1307,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/", "schemas": { "AcceptProposalRequest": { @@ -1357,7 +1357,7 @@ "Ad slot with size specified by height and width in pixels.", "Special size to describe an interstitial ad slot.", "Native (mobile) ads rendered by the publisher.", - "Fluid size (i.e., responsive size) can be resized automatically with the change of outside environment." + "Fluid size (responsive size) can be resized automatically with the change of outside environment." ], "type": "string" }, @@ -1839,7 +1839,7 @@ "type": "string" }, "flightStartTime": { - "description": "Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (e.g., in milliseconds) will be truncated towards the start of time in seconds.", + "description": "Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (for example, in milliseconds) will be truncated towards the start of time in seconds.", "format": "google-datetime", "type": "string" }, @@ -1921,7 +1921,7 @@ "id": "DeliveryControl", "properties": { "companionDeliveryType": { - "description": "Output only. Specifies roadblocking in a master companion lineitem.", + "description": "Output only. Specifies roadblocking in a main companion lineitem.", "enum": [ "COMPANION_DELIVERY_TYPE_UNSPECIFIED", "DELIVERY_OPTIONAL", @@ -1951,7 +1951,7 @@ "Creatives are displayed roughly the same number of times over the duration of the deal.", "Creatives are served roughly proportionally to their performance.", "Creatives are served roughly proportionally to their weights.", - "Creatives are served exactly in sequential order, aka Storyboarding." + "Creatives are served exactly in sequential order, also known as Storyboarding." ], "readOnly": true, "type": "string" @@ -1997,7 +1997,7 @@ "Any number of creatives from a deal can serve together per ad request.", "As many creatives from a deal as can fit on a page will serve. This could mean anywhere from one to all of a deal's creatives given the size constraints of ad slots on a page.", "All or none of the creatives from a deal will serve.", - "A master/companion creative set roadblocking type." + "A main/companion creative set roadblocking type." ], "readOnly": true, "type": "string" @@ -2006,13 +2006,13 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, "FinalizedDeal": { - "description": "A finalized deal is a snapshot of the deal when both buyer and seller accept the deal. The buyer or seller can update the deal after it's been finalized and renegotiate on the deal targeting, terms and other fields, while at the same time the finalized snapshot of the deal can still be retrieved via this API. The finalized deal contains a copy of the deal as it existed when most recently finalized, as well as fields related to deal serving such as pause/resume status, RTB metrics, etc.", + "description": "A finalized deal is a snapshot of the deal when both buyer and seller accept the deal. The buyer or seller can update the deal after it's been finalized and renegotiate on the deal targeting, terms and other fields, while at the same time the finalized snapshot of the deal can still be retrieved using this API. The finalized deal contains a copy of the deal as it existed when most recently finalized, as well as fields related to deal serving such as pause/resume status, RTB metrics, and more.", "id": "FinalizedDeal", "properties": { "deal": { @@ -2141,6 +2141,32 @@ }, "type": "object" }, + "InventoryTypeTargeting": { + "description": "Targeting of the inventory types a bid request can originate from.", + "id": "InventoryTypeTargeting", + "properties": { + "inventoryTypes": { + "description": "The list of targeted inventory types for the bid request.", + "items": { + "enum": [ + "INVENTORY_TYPE_UNSPECIFIED", + "BROWSER", + "MOBILE_APP", + "VIDEO_PLAYER" + ], + "enumDescriptions": [ + "Unspecified inventory type", + "Desktop or mobile web browser excluding ads inside a video player", + "Mobile apps other than video players and web browsers", + "Instream video and audio" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListAuctionPackagesResponse": { "description": "Response message for listing auction packages.", "id": "ListAuctionPackagesResponse", @@ -2285,19 +2311,24 @@ "description": "Output only. Inventory sizes to be included/excluded.", "readOnly": true }, + "inventoryTypeTargeting": { + "$ref": "InventoryTypeTargeting", + "description": "Output only. Inventory type targeting information.", + "readOnly": true + }, "placementTargeting": { "$ref": "PlacementTargeting", - "description": "Output only. Placement targeting information, e.g., URL, mobile applications.", + "description": "Output only. Placement targeting information, for example, URL, mobile applications.", "readOnly": true }, "technologyTargeting": { "$ref": "TechnologyTargeting", - "description": "Output only. Technology targeting information, e.g., operating system, device category.", + "description": "Output only. Technology targeting information, for example, operating system, device category.", "readOnly": true }, "userListTargeting": { "$ref": "CriteriaTargeting", - "description": "Buyer user list targeting information. User lists can be uploaded via https://developers.google.com/authorized-buyers/rtb/bulk-uploader." + "description": "Buyer user list targeting information. User lists can be uploaded using https://developers.google.com/authorized-buyers/rtb/bulk-uploader." }, "videoTargeting": { "$ref": "VideoTargeting", @@ -2398,7 +2429,7 @@ "type": "object" }, "PlacementTargeting": { - "description": "Represents targeting about where the ads can appear, e.g., certain sites or mobile applications. Different placement targeting types will be logically OR'ed.", + "description": "Represents targeting about where the ads can appear, for example, certain sites or mobile applications. Different placement targeting types will be logically OR'ed.", "id": "PlacementTargeting", "properties": { "mobileApplicationTargeting": { @@ -2742,7 +2773,7 @@ "type": "string" }, "topHeadlines": { - "description": "Up to three key metrics and rankings. For example \"#1 Mobile News Site for 20 Straight Months\".", + "description": "Up to three key metrics and rankings. For example, \"#1 Mobile News Site for 20 Straight Months\".", "items": { "type": "string" }, @@ -3019,7 +3050,7 @@ "description": "Required. The deal to update. The deal's `name` field is used to identify the deal to be updated. Note: proposal_revision will have to be provided within the resource or else an error will be thrown. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}" }, "updateMask": { - "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, e.g. false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", + "description": "List of fields to be updated. If empty or unspecified, the service will update all fields populated in the update request excluding the output only fields and primitive fields with default value. Note that explicit field mask is required in order to reset a primitive field back to its default value, for example, false for boolean fields, 0 for integer fields. A special field mask consisting of a single path \"*\" can be used to indicate full replacement(the equivalent of PUT method), updatable fields unset or unspecified in the input will be cleared or set to default value. Output only fields will be ignored regardless of the value of updateMask.", "format": "google-fieldmask", "type": "string" } @@ -3027,7 +3058,7 @@ "type": "object" }, "UriTargeting": { - "description": "Represents a list of targeted and excluded URLs (e.g., google.com). For Private Auction Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.", + "description": "Represents a list of targeted and excluded URLs (for example, google.com). For Private Auction Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.", "id": "UriTargeting", "properties": { "excludedUris": { diff --git a/etc/api/baremetalsolution/v1/baremetalsolution-api.json b/etc/api/baremetalsolution/v1/baremetalsolution-api.json index 558759fff8..dfb25e072e 100644 --- a/etc/api/baremetalsolution/v1/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v1/baremetalsolution-api.json @@ -226,49 +226,9 @@ ] } } - }, - "projects": { - "resources": { - "locations": { - "resources": { - "instances": { - "methods": { - "resetInstance": { - "description": "Perform an ungraceful, hard reset on a machine (equivalent to shutting the power off, and then turning it back on).", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:resetInstance", - "httpMethod": "POST", - "id": "baremetalsolution.projects.locations.instances.resetInstance", - "parameterOrder": [ - "instance" - ], - "parameters": { - "instance": { - "description": "Required. Name of the instance to reset.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+instance}:resetInstance", - "request": { - "$ref": "ResetInstanceRequest" - }, - "response": { - "$ref": "ResetInstanceResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - } - } } }, - "revision": "20220209", + "revision": "20230113", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -278,7 +238,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -336,16 +296,73 @@ }, "type": "object" }, - "ResetInstanceRequest": { - "description": "Request for ResetInstance.", - "id": "ResetInstanceRequest", - "properties": {}, + "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" }, - "ResetInstanceResponse": { - "description": "Response for ResetInstance.", - "id": "ResetInstanceResponse", - "properties": {}, + "ReconciliationOperationMetadata": { + "description": "Operation metadata returned by the CLH during resource state reconciliation.", + "id": "ReconciliationOperationMetadata", + "properties": { + "deleteResource": { + "description": "DEPRECATED. Use exclusive_action instead.", + "type": "boolean" + }, + "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", + "enum": [ + "UNKNOWN_REPAIR_ACTION", + "DELETE", + "RETRY" + ], + "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", + "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." + ], + "type": "string" + } + }, "type": "object" }, "Status": { diff --git a/etc/api/baremetalsolution/v2/baremetalsolution-api.json b/etc/api/baremetalsolution/v2/baremetalsolution-api.json index 36af7245cd..c80cd58864 100644 --- a/etc/api/baremetalsolution/v2/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v2/baremetalsolution-api.json @@ -143,7 +143,7 @@ ], "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).", + "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" }, @@ -176,8 +176,149 @@ } }, "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", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.instances.detachLun", + "parameterOrder": [ + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Name of the instance.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+instance}:detachLun", + "request": { + "$ref": "DetachLunRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "disableInteractiveSerialConsole": { + "description": "Disable the interactive serial console feature on an instance.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:disableInteractiveSerialConsole", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.instances.disableInteractiveSerialConsole", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:disableInteractiveSerialConsole", + "request": { + "$ref": "DisableInteractiveSerialConsoleRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enableInteractiveSerialConsole": { + "description": "Enable the interactive serial console feature on an instance.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:enableInteractiveSerialConsole", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.instances.enableInteractiveSerialConsole", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:enableInteractiveSerialConsole", + "request": { + "$ref": "EnableInteractiveSerialConsoleRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get details about a single server.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", @@ -254,14 +395,14 @@ ], "parameters": { "name": { - "description": "Output only. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`", + "description": "Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The list of fields to update. The only currently supported fields are: `labels`", + "description": "The list of fields to update. The currently supported fields are: `labels` `hyperthreading_enabled` `os_image`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -333,6 +474,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "stop": { + "description": "Stop a running server.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:stop", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.instances.stop", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:stop", + "request": { + "$ref": "StopInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -446,7 +615,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update. The only currently supported fields are: `labels`", + "description": "The list of fields to update. The only currently supported fields are: `labels`, `reservations`, `vrf.vlan_attachments`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -467,6 +636,59 @@ }, "nfsShares": { "methods": { + "create": { + "description": "Create an NFS share.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/nfsShares", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.nfsShares.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent project and location.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/nfsShares", + "request": { + "$ref": "NfsShare" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete an NFS share. The underlying volume is automatically deleted.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/nfsShares/{nfsSharesId}", + "httpMethod": "DELETE", + "id": "baremetalsolution.projects.locations.nfsShares.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the NFS share to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/nfsShares/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Get details of a single NFS share.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/nfsShares/{nfsSharesId}", @@ -543,14 +765,14 @@ ], "parameters": { "name": { - "description": "Output only. The name of the NFS share.", + "description": "Immutable. The name of the NFS share.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/nfsShares/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The list of fields to update. The only currently supported fields are: `labels`", + "description": "The list of fields to update. The only currently supported fields are: `labels` `allowed_clients`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -569,8 +791,134 @@ } } }, + "operations": { + "methods": { + "get": { + "description": "Get details about an operation. This method used only to work around CCFE lack of passthrough LRO support (b/221498758).", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "baremetalsolution.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": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "provisioningConfigs": { "methods": { + "create": { + "description": "Create new ProvisioningConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/provisioningConfigs", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.provisioningConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "email": { + "description": "Optional. Email provided to send a confirmation with provisioning config to.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent project and location containing the ProvisioningConfig.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/provisioningConfigs", + "request": { + "$ref": "ProvisioningConfig" + }, + "response": { + "$ref": "ProvisioningConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get ProvisioningConfig by name.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/provisioningConfigs/{provisioningConfigsId}", + "httpMethod": "GET", + "id": "baremetalsolution.projects.locations.provisioningConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ProvisioningConfig.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/provisioningConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "ProvisioningConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update existing ProvisioningConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/provisioningConfigs/{provisioningConfigsId}", + "httpMethod": "PATCH", + "id": "baremetalsolution.projects.locations.provisioningConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "email": { + "description": "Optional. Email provided to send a confirmation with provisioning config to.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Output only. The system-generated name of the provisioning config. This follows the UUID format.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/provisioningConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "ProvisioningConfig" + }, + "response": { + "$ref": "ProvisioningConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "submit": { "description": "Submit a provisiong configuration for a given project.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/provisioningConfigs:submit", @@ -641,54 +989,54 @@ } } }, - "snapshotSchedulePolicies": { + "sshKeys": { "methods": { "create": { - "description": "Create a snapshot schedule policy in the specified project.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/snapshotSchedulePolicies", + "description": "Register a public SSH key in the specified project for use with the interactive serial console feature.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/sshKeys", "httpMethod": "POST", - "id": "baremetalsolution.projects.locations.snapshotSchedulePolicies.create", + "id": "baremetalsolution.projects.locations.sshKeys.create", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The parent project and location containing the SnapshotSchedulePolicy.", + "description": "Required. The parent containing the SSH keys.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, - "snapshotSchedulePolicyId": { - "description": "Required. Snapshot policy ID", + "sshKeyId": { + "description": "Required. The ID to use for the key, which will become the final component of the key's resource name. This value must match the regex: [a-zA-Z0-9@.\\-_]{1,64}", "location": "query", "type": "string" } }, - "path": "v2/{+parent}/snapshotSchedulePolicies", + "path": "v2/{+parent}/sshKeys", "request": { - "$ref": "SnapshotSchedulePolicy" + "$ref": "SSHKey" }, "response": { - "$ref": "SnapshotSchedulePolicy" + "$ref": "SSHKey" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "delete": { - "description": "Delete a named snapshot schedule policy.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/snapshotSchedulePolicies/{snapshotSchedulePoliciesId}", + "description": "Deletes a public SSH key registered in the specified project.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/sshKeys/{sshKeysId}", "httpMethod": "DELETE", - "id": "baremetalsolution.projects.locations.snapshotSchedulePolicies.delete", + "id": "baremetalsolution.projects.locations.sshKeys.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. The name of the snapshot schedule policy to delete.", + "description": "Required. The name of the SSH key to delete. Currently, the only valid value for the location is \"global\".", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/snapshotSchedulePolicies/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/sshKeys/[^/]+$", "required": true, "type": "string" } @@ -701,45 +1049,15 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "get": { - "description": "Get details of a single snapshot schedule policy.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/snapshotSchedulePolicies/{snapshotSchedulePoliciesId}", - "httpMethod": "GET", - "id": "baremetalsolution.projects.locations.snapshotSchedulePolicies.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Name of the resource.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/snapshotSchedulePolicies/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}", - "response": { - "$ref": "SnapshotSchedulePolicy" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "list": { - "description": "List snapshot schedule policies in a given project and location.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/snapshotSchedulePolicies", + "description": "Lists the public SSH keys registered for the specified project. These SSH keys are used only for the interactive serial console feature.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/sshKeys", "httpMethod": "GET", - "id": "baremetalsolution.projects.locations.snapshotSchedulePolicies.list", + "id": "baremetalsolution.projects.locations.sshKeys.list", "parameterOrder": [ "parent" ], "parameters": { - "filter": { - "description": "List filter.", - "location": "query", - "type": "string" - }, "pageSize": { "description": "The maximum number of items to return.", "format": "int32", @@ -752,50 +1070,16 @@ "type": "string" }, "parent": { - "description": "Required. The parent project containing the Snapshot Schedule Policies.", + "description": "Required. The parent containing the SSH keys. Currently, the only valid value for the location is \"global\".", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" } }, - "path": "v2/{+parent}/snapshotSchedulePolicies", + "path": "v2/{+parent}/sshKeys", "response": { - "$ref": "ListSnapshotSchedulePoliciesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Update a snapshot schedule policy in the specified project.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/snapshotSchedulePolicies/{snapshotSchedulePoliciesId}", - "httpMethod": "PATCH", - "id": "baremetalsolution.projects.locations.snapshotSchedulePolicies.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The name of the snapshot schedule policy.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/snapshotSchedulePolicies/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The list of fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v2/{+name}", - "request": { - "$ref": "SnapshotSchedulePolicy" - }, - "response": { - "$ref": "SnapshotSchedulePolicy" + "$ref": "ListSSHKeysResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -888,7 +1172,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update. The only currently supported fields are: `snapshot_auto_delete_behavior` `snapshot_schedule_policy_name` 'labels' 'requested_size_gib'", + "description": "The list of fields to update. The only currently supported fields are: 'labels'", "format": "google-fieldmask", "location": "query", "type": "string" @@ -904,6 +1188,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "resize": { + "description": "Emergency Volume resize.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}:resize", + "httpMethod": "POST", + "id": "baremetalsolution.projects.locations.volumes.resize", + "parameterOrder": [ + "volume" + ], + "parameters": { + "volume": { + "description": "Required. Volume to resize.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+volume}:resize", + "request": { + "$ref": "ResizeVolumeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -975,7 +1287,7 @@ "snapshots": { "methods": { "create": { - "description": "Create a storage volume snapshot in a containing volume.", + "description": "Takes a snapshot of a boot volume. Returns INVALID_ARGUMENT if called for a non-boot volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots", "httpMethod": "POST", "id": "baremetalsolution.projects.locations.volumes.snapshots.create", @@ -1003,7 +1315,7 @@ ] }, "delete": { - "description": "Deletes a storage volume snapshot for a given volume.", + "description": "Deletes a volume snapshot. Returns INVALID_ARGUMENT if called for a non-boot volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}", "httpMethod": "DELETE", "id": "baremetalsolution.projects.locations.volumes.snapshots.delete", @@ -1028,7 +1340,7 @@ ] }, "get": { - "description": "Get details of a single storage volume snapshot.", + "description": "Returns the specified snapshot resource. Returns INVALID_ARGUMENT if called for a non-boot volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}", "httpMethod": "GET", "id": "baremetalsolution.projects.locations.volumes.snapshots.get", @@ -1037,7 +1349,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the resource.", + "description": "Required. The name of the snapshot.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/snapshots/[^/]+$", "required": true, @@ -1053,7 +1365,7 @@ ] }, "list": { - "description": "List storage volume snapshots for given storage volume.", + "description": "Retrieves the list of snapshots for the specified volume. Returns a response with an empty list of snapshots if called for a non-boot volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots", "httpMethod": "GET", "id": "baremetalsolution.projects.locations.volumes.snapshots.list", @@ -1089,7 +1401,7 @@ ] }, "restoreVolumeSnapshot": { - "description": "Restore a storage volume snapshot to its containing volume.", + "description": "Uses the specified snapshot to restore its parent volume. Returns INVALID_ARGUMENT if called for a non-boot volume.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/volumes/{volumesId}/snapshots/{snapshotsId}:restoreVolumeSnapshot", "httpMethod": "POST", "id": "baremetalsolution.projects.locations.volumes.snapshots.restoreVolumeSnapshot", @@ -1098,7 +1410,7 @@ ], "parameters": { "volumeSnapshot": { - "description": "Required. Name of the resource.", + "description": "Required. Name of the snapshot which will be used to restore its parent volume.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/volumes/[^/]+/snapshots/[^/]+$", "required": true, @@ -1125,7 +1437,7 @@ } } }, - "revision": "20220209", + "revision": "20230113", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "AllowedClient": { @@ -1162,23 +1474,122 @@ "description": "The network the access point sits on.", "type": "string" }, + "nfsPath": { + "description": "Output only. The path to access NFS, in format shareIP:/InstanceID InstanceID is the generated ID instead of customer provided name. example like \"10.0.0.0:/g123456789-nfs001\"", + "readOnly": true, + "type": "string" + }, "noRootSquash": { "description": "Disable root squashing, which is a feature of NFS. Root squash is a special mapping of the remote superuser (root) identity when using identity authentication.", "type": "boolean" }, "shareIp": { - "description": "The IP address of the share on this network.", + "description": "Output only. The IP address of the share on this network. Assigned automatically during provisioning based on the network's services_cidr.", + "readOnly": true, "type": "string" } }, "type": "object" }, + "DetachLunRequest": { + "description": "Message for detach specific LUN from an Instance.", + "id": "DetachLunRequest", + "properties": { + "lun": { + "description": "Required. Name of the Lun to detach.", + "type": "string" + }, + "skipReboot": { + "description": "If true, performs lun unmapping without instance reboot.", + "type": "boolean" + } + }, + "type": "object" + }, + "DisableInteractiveSerialConsoleRequest": { + "description": "Message for disabling the interactive serial console on an instance.", + "id": "DisableInteractiveSerialConsoleRequest", + "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EnableInteractiveSerialConsoleRequest": { + "description": "Message for enabling the interactive serial console on an instance.", + "id": "EnableInteractiveSerialConsoleRequest", + "properties": {}, + "type": "object" + }, + "FetchInstanceProvisioningSettingsResponse": { + "description": "Response with all provisioning settings.", + "id": "FetchInstanceProvisioningSettingsResponse", + "properties": { + "images": { + "description": "The OS images available.", + "items": { + "$ref": "OSImage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudBaremetalsolutionV2LogicalInterface": { + "description": "Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.", + "id": "GoogleCloudBaremetalsolutionV2LogicalInterface", + "properties": { + "interfaceIndex": { + "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" + }, + "logicalNetworkInterfaces": { + "description": "List of logical network interfaces within a logical interface.", + "items": { + "$ref": "LogicalNetworkInterface" + }, + "type": "array" + }, + "name": { + "description": "Interface name. This is of syntax or and forms part of the network template name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudBaremetalsolutionV2ServerNetworkTemplateLogicalInterface": { + "description": "Logical interface.", + "id": "GoogleCloudBaremetalsolutionV2ServerNetworkTemplateLogicalInterface", + "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" + }, "Instance": { "description": "A server.", "id": "Instance", @@ -1194,11 +1605,13 @@ "type": "boolean" }, "id": { - "description": "An identifier for the `Instance`, generated by the backend.", + "description": "Output only. An identifier for the `Instance`, generated by the backend.", + "readOnly": true, "type": "string" }, "interactiveSerialConsoleEnabled": { - "description": "True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.", + "description": "Output only. True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.", + "readOnly": true, "type": "boolean" }, "labels": { @@ -1208,43 +1621,76 @@ "description": "Labels as key value pairs.", "type": "object" }, + "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. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.", + "items": { + "$ref": "GoogleCloudBaremetalsolutionV2LogicalInterface" + }, + "type": "array" + }, + "loginInfo": { + "description": "Output only. Text field about info for logging in.", + "readOnly": true, + "type": "string" + }, "luns": { - "description": "List of LUNs associated with this server.", + "description": "Immutable. List of LUNs associated with this server.", "items": { "$ref": "Lun" }, "type": "array" }, "machineType": { - "description": "The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", + "description": "Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", "type": "string" }, "name": { - "description": "Output only. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`", - "readOnly": true, + "description": "Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`", + "type": "string" + }, + "networkTemplate": { + "description": "Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of \"bond\" or \"nic\".", "type": "string" }, "networks": { - "description": "List of networks associated with this server.", + "description": "Output only. List of networks associated with this server.", "items": { "$ref": "Network" }, + "readOnly": true, "type": "array" }, + "osImage": { + "description": "The OS image currently installed on the server.", + "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.", + "type": "string" + }, "state": { - "description": "The state of the server.", + "description": "Output only. The state of the server.", "enum": [ "STATE_UNSPECIFIED", "PROVISIONING", "RUNNING", - "DELETED" + "DELETED", + "UPDATING", + "STARTING", + "STOPPING", + "SHUTDOWN" ], "enumDescriptions": [ "The server is in an unknown state.", "The server is being provisioned.", "The server is running.", - "The server has been deleted." + "The server has been deleted.", + "The server is being updated.", + "The server is starting.", + "The server is stopping.", + "The server is shutdown." ], + "readOnly": true, "type": "string" }, "updateTime": { @@ -1252,6 +1698,27 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "volumes": { + "description": "Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "workloadProfile": { + "description": "The workload profile for the instance.", + "enum": [ + "WORKLOAD_PROFILE_UNSPECIFIED", + "WORKLOAD_PROFILE_GENERIC", + "WORKLOAD_PROFILE_HANA" + ], + "enumDescriptions": [ + "The workload profile is in an unknown state.", + "The workload profile is generic.", + "The workload profile is hana." + ], + "type": "string" } }, "type": "object" @@ -1260,9 +1727,13 @@ "description": "Configuration parameters for a new instance.", "id": "InstanceConfig", "properties": { + "accountNetworksEnabled": { + "description": "If true networks can be from different projects of the same vendor account.", + "type": "boolean" + }, "clientNetwork": { "$ref": "NetworkAddress", - "description": "Client network address." + "description": "Client network address. Filled if InstanceConfig.multivlan_config is false." }, "hyperthreading": { "description": "Whether the instance should be provisioned with Hyperthreading enabled.", @@ -1276,18 +1747,43 @@ "description": "Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", "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": { + "$ref": "GoogleCloudBaremetalsolutionV2LogicalInterface" + }, + "type": "array" + }, "name": { "description": "Output only. The name of the instance config.", "readOnly": true, "type": "string" }, + "networkConfig": { + "description": "The type of network configuration on the instance.", + "enum": [ + "NETWORKCONFIG_UNSPECIFIED", + "SINGLE_VLAN", + "MULTI_VLAN" + ], + "enumDescriptions": [ + "The unspecified network configuration.", + "Instance part of single client network and single private network.", + "Instance part of multiple (or single) client networks and private networks." + ], + "type": "string" + }, + "networkTemplate": { + "description": "Server network template name. Filled if InstanceConfig.multivlan_config is true.", + "type": "string" + }, "osImage": { "description": "OS image to initialize the instance. [Available images](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", "type": "string" }, "privateNetwork": { "$ref": "NetworkAddress", - "description": "Private network address, if any." + "description": "Private network address, if any. Filled if InstanceConfig.multivlan_config is false." }, "userNote": { "description": "User note field, it can be used by customers to add additional information for the BMS Ops team .", @@ -1305,8 +1801,12 @@ "format": "int32", "type": "integer" }, + "gcpService": { + "description": "The gcp service of the provisioning quota.", + "type": "string" + }, "instanceType": { - "description": "Instance type.", + "description": "Instance type. Deprecated: use gcp_service.", "type": "string" }, "location": { @@ -1486,18 +1986,18 @@ }, "type": "object" }, - "ListSnapshotSchedulePoliciesResponse": { - "description": "Response message containing the list of snapshot schedule policies.", - "id": "ListSnapshotSchedulePoliciesResponse", + "ListSSHKeysResponse": { + "description": "Message for response of ListSSHKeys.", + "id": "ListSSHKeysResponse", "properties": { "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" }, - "snapshotSchedulePolicies": { - "description": "The snapshot schedule policies registered in this project.", + "sshKeys": { + "description": "The SSH keys registered in the project.", "items": { - "$ref": "SnapshotSchedulePolicy" + "$ref": "SSHKey" }, "type": "array" } @@ -1505,7 +2005,7 @@ "type": "object" }, "ListVolumeSnapshotsResponse": { - "description": "Response message containing the list of storage volume snapshots.", + "description": "Response message containing the list of volume snapshots.", "id": "ListVolumeSnapshotsResponse", "properties": { "nextPageToken": { @@ -1520,7 +2020,7 @@ "type": "array" }, "volumeSnapshots": { - "description": "The list of storage volumes.", + "description": "The list of snapshots.", "items": { "$ref": "VolumeSnapshot" }, @@ -1588,6 +2088,43 @@ }, "type": "object" }, + "LogicalNetworkInterface": { + "description": "Each logical network interface is effectively a network and IP pair.", + "id": "LogicalNetworkInterface", + "properties": { + "defaultGateway": { + "description": "Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.", + "type": "boolean" + }, + "id": { + "description": "An identifier for the `Network`, generated by the backend.", + "type": "string" + }, + "ipAddress": { + "description": "IP address in the network", + "type": "string" + }, + "network": { + "description": "Name of the network", + "type": "string" + }, + "networkType": { + "description": "Type of network.", + "enum": [ + "TYPE_UNSPECIFIED", + "CLIENT", + "PRIVATE" + ], + "enumDescriptions": [ + "Unspecified value.", + "Client network, a network peered to a Google Cloud VPC.", + "Private network, a network local to the Bare Metal Solution environment." + ], + "type": "string" + } + }, + "type": "object" + }, "Lun": { "description": "A storage volume logical unit number (LUN).", "id": "Lun", @@ -1694,6 +2231,11 @@ "description": "The cidr of the Network.", "type": "string" }, + "gatewayIp": { + "description": "Output only. Gateway ip address.", + "readOnly": true, + "type": "string" + }, "id": { "description": "An identifier for the `Network`, generated by the backend.", "type": "string" @@ -1702,6 +2244,10 @@ "description": "IP address configured.", "type": "string" }, + "jumboFramesEnabled": { + "description": "Whether network uses standard frames or jumbo ones.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" @@ -1716,11 +2262,30 @@ }, "type": "array" }, + "mountPoints": { + "description": "Input only. List of mount points to attach the network to.", + "items": { + "$ref": "NetworkMountPoint" + }, + "type": "array" + }, "name": { "description": "Output only. The resource name of this `Network`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/networks/{network}`", "readOnly": true, "type": "string" }, + "pod": { + "description": "Output only. Pod name.", + "readOnly": true, + "type": "string" + }, + "reservations": { + "description": "List of IP address reservations in this network. When updating this field, an error will be generated if a reservation conflicts with an IP address already allocated to a physical server.", + "items": { + "$ref": "NetworkAddressReservation" + }, + "type": "array" + }, "servicesCidr": { "description": "IP range for reserved for services (e.g. NFS).", "type": "string" @@ -1730,12 +2295,16 @@ "enum": [ "STATE_UNSPECIFIED", "PROVISIONING", - "PROVISIONED" + "PROVISIONED", + "DEPROVISIONING", + "UPDATING" ], "enumDescriptions": [ "The Network is in an unknown state.", "The Network is provisioning.", - "The Network has been provisioned." + "The Network has been provisioned.", + "The Network is being deprovisioned.", + "The Network is being updated." ], "type": "string" }, @@ -1783,6 +2352,25 @@ }, "type": "object" }, + "NetworkAddressReservation": { + "description": "A reservation of one or more addresses in a network.", + "id": "NetworkAddressReservation", + "properties": { + "endAddress": { + "description": "The last address of this reservation block, inclusive. I.e., for cases when reservations are only single addresses, end_address and start_address will be the same. Must be specified as a single IPv4 address, e.g. 10.1.2.2.", + "type": "string" + }, + "note": { + "description": "A note about this reservation, intended for human consumption.", + "type": "string" + }, + "startAddress": { + "description": "The first address of this reservation block. Must be specified as a single IPv4 address, e.g. 10.1.2.2.", + "type": "string" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Configuration parameters for a new network.", "id": "NetworkConfig", @@ -1809,10 +2397,18 @@ "description": "CIDR range of the network.", "type": "string" }, + "gcpService": { + "description": "The GCP service of the network. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.", + "type": "string" + }, "id": { "description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.", "type": "string" }, + "jumboFramesEnabled": { + "description": "The JumboFramesEnabled option for customer to set.", + "type": "boolean" + }, "name": { "description": "Output only. The name of the network config.", "readOnly": true, @@ -1851,7 +2447,7 @@ "type": "string" }, "userNote": { - "description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).", + "description": "User note field, it can be used by customers to add additional information for the BMS Ops team .", "type": "string" }, "vlanAttachments": { @@ -1860,6 +2456,33 @@ "$ref": "IntakeVlanAttachment" }, "type": "array" + }, + "vlanSameProject": { + "description": "Whether the VLAN attachment pair is located in the same project.", + "type": "boolean" + } + }, + "type": "object" + }, + "NetworkMountPoint": { + "description": "Mount point for a network.", + "id": "NetworkMountPoint", + "properties": { + "defaultGateway": { + "description": "Network should be a default gateway.", + "type": "boolean" + }, + "instance": { + "description": "Instance to attach network to.", + "type": "string" + }, + "ipAddress": { + "description": "Ip address of the server.", + "type": "string" + }, + "logicalInterface": { + "description": "Logical interface to detach from.", + "type": "string" } }, "type": "object" @@ -1938,6 +2561,11 @@ }, "type": "array" }, + "id": { + "description": "Output only. An identifier for the NFS share, generated by the backend. This is the same value as nfs_share_id and will replace it in the future.", + "readOnly": true, + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -1946,34 +2574,94 @@ "type": "object" }, "name": { - "description": "Output only. The name of the NFS share.", - "readOnly": true, + "description": "Immutable. The name of the NFS share.", "type": "string" }, "nfsShareId": { - "description": "Output only. An identifier for the NFS share, generated by the backend.", + "description": "Output only. An identifier for the NFS share, generated by the backend. This field will be deprecated in the future, use `id` instead.", "readOnly": true, "type": "string" }, + "requestedSizeGib": { + "description": "The requested size, in GiB.", + "format": "int64", + "type": "string" + }, "state": { - "description": "The state of the NFS share.", + "description": "Output only. The state of the NFS share.", "enum": [ "STATE_UNSPECIFIED", - "PROVISIONED" + "PROVISIONED", + "CREATING", + "UPDATING", + "DELETING" ], "enumDescriptions": [ "The share is in an unknown state.", - "The share has been provisioned." + "The share has been provisioned.", + "The NFS Share is being created.", + "The NFS Share is being updated.", + "The NFS Share has been requested to be deleted." + ], + "readOnly": true, + "type": "string" + }, + "storageType": { + "description": "Immutable. The storage type of the underlying volume.", + "enum": [ + "STORAGE_TYPE_UNSPECIFIED", + "SSD", + "HDD" + ], + "enumDescriptions": [ + "The storage type for this volume is unknown.", + "The storage type for this volume is SSD.", + "This storage type for this volume is HDD." ], "type": "string" }, "volume": { - "description": "The volume containing the share.", + "description": "Output only. The underlying volume of the share. Created automatically during provisioning.", + "readOnly": true, "type": "string" } }, "type": "object" }, + "OSImage": { + "description": "Operation System image.", + "id": "OSImage", + "properties": { + "applicableInstanceTypes": { + "description": "Instance types this image is applicable to. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", + "items": { + "type": "string" + }, + "type": "array" + }, + "code": { + "description": "OS Image code.", + "type": "string" + }, + "description": { + "description": "OS Image description.", + "type": "string" + }, + "name": { + "description": "Output only. OS Image's unique name.", + "readOnly": true, + "type": "string" + }, + "supportedNetworkTemplates": { + "description": "Network templates that can be used with this OS Image.", + "items": { + "$ref": "ServerNetworkTemplate" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2013,6 +2701,19 @@ "description": "A provisioning configuration.", "id": "ProvisioningConfig", "properties": { + "cloudConsoleUri": { + "description": "Output only. URI to Cloud Console UI view of this provisioning config.", + "readOnly": true, + "type": "string" + }, + "customId": { + "description": "Optional. The user-defined identifier of the provisioning config.", + "type": "string" + }, + "email": { + "description": "Email provided to send a confirmation with provisioning config to. Deprecated in favour of email field in request messages.", + "type": "string" + }, "handoverServiceAccount": { "description": "A service account to enable customers to access instance credentials upon handover.", "type": "string" @@ -2024,8 +2725,12 @@ }, "type": "array" }, + "location": { + "description": "Optional. Location name of this ProvisioningConfig. It is optional only for Intake UI transition period.", + "type": "string" + }, "name": { - "description": "Output only. The name of the provisioning config.", + "description": "Output only. The system-generated name of the provisioning config. This follows the UUID format.", "readOnly": true, "type": "string" }, @@ -2036,8 +2741,43 @@ }, "type": "array" }, + "state": { + "description": "Output only. State of ProvisioningConfig.", + "enum": [ + "STATE_UNSPECIFIED", + "DRAFT", + "SUBMITTED", + "PROVISIONING", + "PROVISIONED", + "VALIDATED", + "CANCELLED", + "FAILED" + ], + "enumDescriptions": [ + "State wasn't specified.", + "ProvisioningConfig is a draft and can be freely modified.", + "ProvisioningConfig was already submitted and cannot be modified.", + "ProvisioningConfig was in the provisioning state. Initially this state comes from the work order table in big query when SNOW is used. Later this field can be set by the work order API.", + "ProvisioningConfig was provisioned, meaning the resources exist.", + "ProvisioningConfig was validated. A validation tool will be run to set this state.", + "ProvisioningConfig was canceled.", + "The request is submitted for provisioning, with error return." + ], + "readOnly": true, + "type": "string" + }, + "statusMessage": { + "description": "Optional status messages associated with the FAILED state.", + "type": "string" + }, "ticketId": { - "description": "A generated buganizer id to track provisioning request.", + "description": "A generated ticket id to track provisioning request.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Last update timestamp.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, "volumes": { @@ -2046,6 +2786,10 @@ "$ref": "VolumeConfig" }, "type": "array" + }, + "vpcScEnabled": { + "description": "If true, VPC SC is enabled for the cluster.", + "type": "boolean" } }, "type": "object" @@ -2091,6 +2835,21 @@ "description": "Output only. The name of the provisioning quota.", "readOnly": true, "type": "string" + }, + "networkBandwidth": { + "description": "Network bandwidth, Gbps", + "format": "int64", + "type": "string" + }, + "serverCount": { + "description": "Server count.", + "format": "int64", + "type": "string" + }, + "storageGib": { + "description": "Storage size (GB).", + "format": "int64", + "type": "string" } }, "type": "object" @@ -2113,28 +2872,62 @@ "properties": {}, "type": "object" }, + "ResizeVolumeRequest": { + "description": "Request for emergency resize Volume.", + "id": "ResizeVolumeRequest", + "properties": { + "sizeGib": { + "description": "New Volume size, in GiB.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "RestoreVolumeSnapshotRequest": { "description": "Message for restoring a volume snapshot.", "id": "RestoreVolumeSnapshotRequest", "properties": {}, "type": "object" }, - "Schedule": { - "description": "A snapshot schedule.", - "id": "Schedule", + "SSHKey": { + "description": "An SSH key, used for authorizing with the interactive serial console feature.", + "id": "SSHKey", "properties": { - "crontabSpec": { - "description": "A crontab-like specification that the schedule uses to take snapshots.", + "name": { + "description": "Output only. The name of this SSH key. Currently, the only valid value for the location is \"global\".", + "readOnly": true, "type": "string" }, - "prefix": { - "description": "A list of snapshot names created in this schedule.", + "publicKey": { + "description": "The public SSH key. This must be in OpenSSH .authorized_keys format.", "type": "string" + } + }, + "type": "object" + }, + "ServerNetworkTemplate": { + "description": "Network template.", + "id": "ServerNetworkTemplate", + "properties": { + "applicableInstanceTypes": { + "description": "Instance types this template is applicable to.", + "items": { + "type": "string" + }, + "type": "array" }, - "retentionCount": { - "description": "The maximum number of snapshots to retain in this schedule.", - "format": "int32", - "type": "integer" + "logicalInterfaces": { + "description": "Logical interfaces.", + "items": { + "$ref": "GoogleCloudBaremetalsolutionV2ServerNetworkTemplateLogicalInterface" + }, + "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" @@ -2148,6 +2941,11 @@ "format": "int64", "type": "string" }, + "reservedSpacePercent": { + "description": "Percent of the total Volume size reserved for snapshot copies. Enabling snapshots requires reserving 20% or more of the storage volume space for snapshots. Maximum reserved space for snapshots is 40%. Setting this field will effectively set snapshot_enabled to true.", + "format": "int32", + "type": "integer" + }, "reservedSpaceRemainingGib": { "description": "The amount, in GiB, of available space in this storage volume's reserved snapshot space.", "format": "int64", @@ -2161,52 +2959,6 @@ }, "type": "object" }, - "SnapshotSchedulePolicy": { - "description": "A snapshot schedule policy.", - "id": "SnapshotSchedulePolicy", - "properties": { - "description": { - "description": "The description of the snapshot schedule policy.", - "type": "string" - }, - "id": { - "description": "An identifier for the snapshot schedule policy, generated by the backend.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels as key value pairs.", - "type": "object" - }, - "name": { - "description": "Output only. The name of the snapshot schedule policy.", - "readOnly": true, - "type": "string" - }, - "schedules": { - "description": "The snapshot schedules contained in this policy. You can specify a maximum of 5 schedules.", - "items": { - "$ref": "Schedule" - }, - "type": "array" - }, - "state": { - "description": "The state of the snapshot schedule policy.", - "enum": [ - "STATE_UNSPECIFIED", - "PROVISIONED" - ], - "enumDescriptions": [ - "The policy is in an unknown state.", - "The policy is been provisioned." - ], - "type": "string" - } - }, - "type": "object" - }, "StartInstanceRequest": { "description": "Message requesting to start a server.", "id": "StartInstanceRequest", @@ -2240,6 +2992,12 @@ }, "type": "object" }, + "StopInstanceRequest": { + "description": "Message requesting to stop a server.", + "id": "StopInstanceRequest", + "properties": {}, + "type": "object" + }, "SubmitProvisioningConfigRequest": { "description": "Request for SubmitProvisioningConfig.", "id": "SubmitProvisioningConfigRequest", @@ -2276,7 +3034,7 @@ }, "qosPolicy": { "$ref": "QosPolicy", - "description": "The QOS policy applied to this VRF." + "description": "The QOS policy applied to this VRF. The value is only meaningful when all the vlan attachments have the same QoS. This field should not be used for new integrations, use vlan attachment level qos instead. The field is left for backward-compatibility." }, "state": { "description": "The possible state of VRF.", @@ -2306,6 +3064,14 @@ "description": "VLAN attachment details.", "id": "VlanAttachment", "properties": { + "id": { + "description": "Immutable. The identifier of the attachment within vrf.", + "type": "string" + }, + "pairingKey": { + "description": "Input only. Pairing key.", + "type": "string" + }, "peerIp": { "description": "The peer IP of the attachment.", "type": "string" @@ -2315,6 +3081,10 @@ "format": "int64", "type": "string" }, + "qosPolicy": { + "$ref": "QosPolicy", + "description": "The QOS policy applied to this VLAN attachment. This value should be preferred to using qos at vrf level." + }, "routerIp": { "description": "The router IP of the attachment.", "type": "string" @@ -2331,11 +3101,21 @@ "format": "int64", "type": "string" }, + "bootVolume": { + "description": "Output only. Whether this volume is a boot volume. A boot volume is one which contains a boot LUN.", + "readOnly": true, + "type": "boolean" + }, "currentSizeGib": { "description": "The current size of this storage volume, in GiB, including space reserved for snapshots. This size might be different than the requested size if the storage volume has been configured with auto grow or auto shrink.", "format": "int64", "type": "string" }, + "emergencySizeGib": { + "description": "Additional emergency size that was requested for this Volume, in GiB. current_size_gib includes this value.", + "format": "int64", + "type": "string" + }, "id": { "description": "An identifier for the `Volume`, generated by the backend.", "type": "string" @@ -2347,11 +3127,60 @@ "description": "Labels as key value pairs.", "type": "object" }, + "maxSizeGib": { + "description": "Maximum size volume can be expanded to in case of evergency, in GiB.", + "format": "int64", + "type": "string" + }, "name": { "description": "Output only. The resource name of this `Volume`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/volumes/{volume}`", "readOnly": true, "type": "string" }, + "notes": { + "description": "Input only. User-specified notes for new Volume. Used to provision Volumes that require manual intervention.", + "type": "string" + }, + "originallyRequestedSizeGib": { + "description": "Originally requested size, in GiB.", + "format": "int64", + "type": "string" + }, + "performanceTier": { + "description": "Immutable. Performance tier of the Volume. Default is SHARED.", + "enum": [ + "VOLUME_PERFORMANCE_TIER_UNSPECIFIED", + "VOLUME_PERFORMANCE_TIER_SHARED", + "VOLUME_PERFORMANCE_TIER_ASSIGNED", + "VOLUME_PERFORMANCE_TIER_HT" + ], + "enumDescriptions": [ + "Value is not specified.", + "Regular volumes, shared aggregates.", + "Assigned aggregates.", + "High throughput aggregates." + ], + "type": "string" + }, + "pod": { + "description": "Immutable. Pod name.", + "type": "string" + }, + "protocol": { + "description": "Output only. Storage protocol for the Volume.", + "enum": [ + "PROTOCOL_UNSPECIFIED", + "FIBRE_CHANNEL", + "NFS" + ], + "enumDescriptions": [ + "Value is not specified.", + "Fibre Channel protocol.", + "NFS protocol means Volume is a NFS Share volume. Such volumes cannot be manipulated via Volumes API." + ], + "readOnly": true, + "type": "string" + }, "remainingSpaceGib": { "description": "The space remaining in the storage volume for new LUNs, in GiB, excluding space reserved for snapshots.", "format": "int64", @@ -2378,6 +3207,10 @@ ], "type": "string" }, + "snapshotEnabled": { + "description": "Whether snapshots are enabled.", + "type": "boolean" + }, "snapshotReservationDetail": { "$ref": "SnapshotReservationDetail", "description": "Details about snapshot space reservation and usage on the storage volume." @@ -2392,16 +3225,22 @@ "STATE_UNSPECIFIED", "CREATING", "READY", - "DELETING" + "DELETING", + "UPDATING" ], "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 has been requested to be deleted.", + "The storage volume is being updated." ], "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": [ @@ -2415,6 +3254,20 @@ "This storage type for this volume is HDD." ], "type": "string" + }, + "workloadProfile": { + "description": "The workload profile for the volume.", + "enum": [ + "WORKLOAD_PROFILE_UNSPECIFIED", + "GENERIC", + "HANA" + ], + "enumDescriptions": [ + "The workload profile is in an unknown state.", + "The workload profile is generic.", + "The workload profile is hana." + ], + "type": "string" } }, "type": "object" @@ -2423,6 +3276,10 @@ "description": "Configuration parameters for a new volume.", "id": "VolumeConfig", "properties": { + "gcpService": { + "description": "The GCP service of the storage volume. Available gcp_service are in https://cloud.google.com/bare-metal/docs/bms-planning.", + "type": "string" + }, "id": { "description": "A transient unique identifier to identify a volume within an ProvisioningConfig request.", "type": "string" @@ -2453,6 +3310,22 @@ }, "type": "array" }, + "performanceTier": { + "description": "Performance tier of the Volume. Default is SHARED.", + "enum": [ + "VOLUME_PERFORMANCE_TIER_UNSPECIFIED", + "VOLUME_PERFORMANCE_TIER_SHARED", + "VOLUME_PERFORMANCE_TIER_ASSIGNED", + "VOLUME_PERFORMANCE_TIER_HT" + ], + "enumDescriptions": [ + "Value is not specified.", + "Regular volumes, shared aggregates.", + "Assigned aggregates.", + "High throughput aggregates." + ], + "type": "string" + }, "protocol": { "description": "Volume protocol.", "enum": [ @@ -2476,6 +3349,10 @@ "description": "Whether snapshots should be enabled.", "type": "boolean" }, + "storageAggregatePool": { + "description": "Input only. Name of the storage aggregate pool to allocate the volume in. Can be used only for VOLUME_PERFORMANCE_TIER_ASSIGNED volumes.", + "type": "string" + }, "type": { "description": "The type of this Volume.", "enum": [ @@ -2491,42 +3368,53 @@ "type": "string" }, "userNote": { - "description": "User note field, it can be used by customers to add additional information for the BMS Ops team (b/194021617).", + "description": "User note field, it can be used by customers to add additional information for the BMS Ops team .", "type": "string" } }, "type": "object" }, "VolumeSnapshot": { - "description": "Snapshot registered for a given storage volume.", + "description": "A snapshot of a volume. Only boot volumes can have snapshots.", "id": "VolumeSnapshot", "properties": { "createTime": { - "description": "Output only. The creation time of the storage volume snapshot.", + "description": "Output only. The creation time of the snapshot.", "format": "google-datetime", "readOnly": true, "type": "string" }, "description": { - "description": "The description of the storage volume snapshot.", + "description": "The description of the snapshot.", "type": "string" }, "id": { - "description": "An identifier for the snapshot, generated by the backend.", - "type": "string" - }, - "name": { - "description": "Output only. The name of the storage volume snapshot.", + "description": "Output only. An identifier for the snapshot, generated by the backend.", "readOnly": true, "type": "string" }, - "sizeBytes": { - "description": "The size of the storage volume snapshot, in bytes.", - "format": "int64", + "name": { + "description": "The name of the snapshot.", "type": "string" }, "storageVolume": { - "description": "The storage volume this snapshot belongs to.", + "description": "Output only. The name of the volume which this snapshot belongs to.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The type of the snapshot which indicates whether it was scheduled or manual/ad-hoc.", + "enum": [ + "SNAPSHOT_TYPE_UNSPECIFIED", + "AD_HOC", + "SCHEDULED" + ], + "enumDescriptions": [ + "Type is not specified.", + "Snapshot was taken manually by user.", + "Snapshot was taken automatically as a part of a snapshot schedule." + ], + "readOnly": true, "type": "string" } }, diff --git a/etc/api/bigquery/v2/bigquery-api.json b/etc/api/bigquery/v2/bigquery-api.json index dbf7118071..e89df27e50 100644 --- a/etc/api/bigquery/v2/bigquery-api.json +++ b/etc/api/bigquery/v2/bigquery-api.json @@ -1109,7 +1109,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$", "required": true, @@ -1193,7 +1193,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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, @@ -1222,7 +1222,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/datasets/[^/]+/tables/[^/]+/rowAccessPolicies/[^/]+$", "required": true, @@ -1420,6 +1420,23 @@ "location": "path", "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.", + "enum": [ + "BASIC", + "FULL", + "STORAGE_STATS", + "TABLE_METADATA_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "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." + ], + "location": "query", + "type": "string" } }, "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", @@ -1442,7 +1459,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/datasets/[^/]+/tables/[^/]+$", "required": true, @@ -1595,7 +1612,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -1624,7 +1641,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/datasets/[^/]+/tables/[^/]+$", "required": true, @@ -1693,7 +1710,7 @@ } } }, - "revision": "20220222", + "revision": "20230114", "rootUrl": "https://bigquery.googleapis.com/", "schemas": { "AggregateClassificationMetrics": { @@ -2100,7 +2117,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -2161,12 +2178,12 @@ "id": "BiEngineReason", "properties": { "code": { - "default": "$(reason.code)", + "default": "", "description": "[Output-only] High-level BI Engine reason for partial or disabled acceleration.", "type": "string" }, "message": { - "default": "$(reason.message)", + "default": "", "description": "[Output-only] Free form human-readable reason for partial or disabled acceleration.", "type": "string" } @@ -2176,8 +2193,13 @@ "BiEngineStatistics": { "id": "BiEngineStatistics", "properties": { + "accelerationMode": { + "default": "", + "description": "[Output-only] Specifies which mode of BI Engine acceleration was performed (if any).", + "type": "string" + }, "biEngineMode": { - "default": "$(stats.bi_engine_mode)", + "default": "", "description": "[Output-only] Specifies which mode of BI Engine acceleration was performed (if any).", "type": "string" }, @@ -2374,7 +2396,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2509,6 +2531,21 @@ }, "type": "object" }, + "CloneDefinition": { + "id": "CloneDefinition", + "properties": { + "baseTableReference": { + "$ref": "TableReference", + "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.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, "Cluster": { "description": "Message containing the information about one cluster.", "id": "Cluster", @@ -2648,6 +2685,10 @@ "description": "[Optional] An 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.", + "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.", @@ -2662,6 +2703,17 @@ }, "type": "object" }, + "DataMaskingStatistics": { + "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.", + "type": "boolean" + } + }, + "type": "object" + }, "DataSplitResult": { "description": "Data split result. This contains references to the training and evaluation data tables that were used to train the model.", "id": "DataSplitResult", @@ -2670,6 +2722,10 @@ "$ref": "TableReference", "description": "Table reference of the evaluation data after split." }, + "testTable": { + "$ref": "TableReference", + "description": "Table reference of the test data after split." + }, "trainingTable": { "$ref": "TableReference", "description": "Table reference of the training data after split." @@ -2792,7 +2848,12 @@ "description": "The geographic location where the dataset should reside. The default value is US. See details at https://cloud.google.com/bigquery/docs/locations.", "type": "string" }, - "satisfiesPZS": { + "maxTimeTravelHours": { + "description": "[Optional] Number of hours for the max time travel for all tables in the dataset.", + "format": "int64", + "type": "string" + }, + "satisfiesPzs": { "description": "[Output-only] Reserved for future use.", "type": "boolean" }, @@ -2800,6 +2861,10 @@ "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.", "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.", + "type": "string" + }, "tags": { "description": "[Optional]The tags associated with this dataset. Tag keys are globally unique.", "items": { @@ -2831,11 +2896,13 @@ "items": { "enum": [ "TARGET_TYPE_UNSPECIFIED", - "VIEWS" + "VIEWS", + "ROUTINES" ], "enumDescriptions": [ "Do not use. You must set a target type explicitly.", - "This entry applies to views in the dataset." + "This entry applies to views in the dataset.", + "This entry applies to routines in the dataset." ], "type": "string" }, @@ -2950,6 +3017,18 @@ }, "type": "object" }, + "DimensionalityReductionMetrics": { + "description": "Model evaluation metrics for dimensionality reduction models.", + "id": "DimensionalityReductionMetrics", + "properties": { + "totalExplainedVarianceRatio": { + "description": "Total percentage of variance explained by the selected principal components.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "DmlStatistics": { "id": "DmlStatistics", "properties": { @@ -2971,6 +3050,53 @@ }, "type": "object" }, + "DoubleCandidates": { + "description": "Discrete candidates of a double hyperparameter.", + "id": "DoubleCandidates", + "properties": { + "candidates": { + "description": "Candidates for the double parameter in increasing order.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "DoubleHparamSearchSpace": { + "description": "Search space for a double hyperparameter.", + "id": "DoubleHparamSearchSpace", + "properties": { + "candidates": { + "$ref": "DoubleCandidates", + "description": "Candidates of the double hyperparameter." + }, + "range": { + "$ref": "DoubleRange", + "description": "Range of the double hyperparameter." + } + }, + "type": "object" + }, + "DoubleRange": { + "description": "Range of a double hyperparameter.", + "id": "DoubleRange", + "properties": { + "max": { + "description": "Max value of the double parameter.", + "format": "double", + "type": "number" + }, + "min": { + "description": "Min value of the double parameter.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "EncryptionConfiguration": { "id": "EncryptionConfiguration", "properties": { @@ -3035,6 +3161,10 @@ "$ref": "ClusteringMetrics", "description": "Populated for clustering models." }, + "dimensionalityReductionMetrics": { + "$ref": "DimensionalityReductionMetrics", + "description": "Evaluation metrics when the model is a dimensionality reduction model, which currently includes PCA." + }, "multiClassClassificationMetrics": { "$ref": "MultiClassClassificationMetrics", "description": "Populated for multi-class classification/classifier models." @@ -3226,6 +3356,22 @@ }, "type": "object" }, + "Explanation": { + "description": "Explanation for a single feature.", + "id": "Explanation", + "properties": { + "attribution": { + "description": "Attribution of feature.", + "format": "double", + "type": "number" + }, + "featureName": { + "description": "The full feature name. For non-numerical features, will be formatted like `.`. Overall size of feature name will always be truncated to first 120 characters.", + "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", @@ -3300,10 +3446,22 @@ "format": "int32", "type": "integer" }, + "metadataCacheMode": { + "description": "[Optional] Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.", + "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.", + "type": "string" + }, "parquetOptions": { "$ref": "ParquetOptions", "description": "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.", + "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." @@ -3444,6 +3602,24 @@ }, "type": "object" }, + "GlobalExplanation": { + "description": "Global explanations containing the top most important features after training.", + "id": "GlobalExplanation", + "properties": { + "classLabel": { + "description": "Class label for this set of global explanations. Will be empty/null for binary logistic and linear regression models. Sorted alphabetically in descending order.", + "type": "string" + }, + "explanations": { + "description": "A list of the top global explanations. Sorted by absolute value of attribution in descending order.", + "items": { + "$ref": "Explanation" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleSheetsOptions": { "id": "GoogleSheetsOptions", "properties": { @@ -3477,6 +3653,272 @@ }, "type": "object" }, + "HparamSearchSpaces": { + "description": "Hyperparameter search spaces. These should be a subset of training_options.", + "id": "HparamSearchSpaces", + "properties": { + "activationFn": { + "$ref": "StringHparamSearchSpace", + "description": "Activation functions of neural network models." + }, + "batchSize": { + "$ref": "IntHparamSearchSpace", + "description": "Mini batch sample size." + }, + "boosterType": { + "$ref": "StringHparamSearchSpace", + "description": "Booster type for boosted tree models." + }, + "colsampleBylevel": { + "$ref": "DoubleHparamSearchSpace", + "description": "Subsample ratio of columns for each level for boosted tree models." + }, + "colsampleBynode": { + "$ref": "DoubleHparamSearchSpace", + "description": "Subsample ratio of columns for each node(split) for boosted tree models." + }, + "colsampleBytree": { + "$ref": "DoubleHparamSearchSpace", + "description": "Subsample ratio of columns when constructing each tree for boosted tree models." + }, + "dartNormalizeType": { + "$ref": "StringHparamSearchSpace", + "description": "Dart normalization type for boosted tree models." + }, + "dropout": { + "$ref": "DoubleHparamSearchSpace", + "description": "Dropout probability for dnn model training and boosted tree models using dart booster." + }, + "hiddenUnits": { + "$ref": "IntArrayHparamSearchSpace", + "description": "Hidden units for neural network models." + }, + "l1Reg": { + "$ref": "DoubleHparamSearchSpace", + "description": "L1 regularization coefficient." + }, + "l2Reg": { + "$ref": "DoubleHparamSearchSpace", + "description": "L2 regularization coefficient." + }, + "learnRate": { + "$ref": "DoubleHparamSearchSpace", + "description": "Learning rate of training jobs." + }, + "maxTreeDepth": { + "$ref": "IntHparamSearchSpace", + "description": "Maximum depth of a tree for boosted tree models." + }, + "minSplitLoss": { + "$ref": "DoubleHparamSearchSpace", + "description": "Minimum split loss for boosted tree models." + }, + "minTreeChildWeight": { + "$ref": "IntHparamSearchSpace", + "description": "Minimum sum of instance weight needed in a child for boosted tree models." + }, + "numClusters": { + "$ref": "IntHparamSearchSpace", + "description": "Number of clusters for k-means." + }, + "numFactors": { + "$ref": "IntHparamSearchSpace", + "description": "Number of latent factors to train on." + }, + "numParallelTree": { + "$ref": "IntHparamSearchSpace", + "description": "Number of parallel trees for boosted tree models." + }, + "optimizer": { + "$ref": "StringHparamSearchSpace", + "description": "Optimizer of TF models." + }, + "subsample": { + "$ref": "DoubleHparamSearchSpace", + "description": "Subsample the training data to grow tree to prevent overfitting for boosted tree models." + }, + "treeMethod": { + "$ref": "StringHparamSearchSpace", + "description": "Tree construction algorithm for boosted tree models." + }, + "walsAlpha": { + "$ref": "DoubleHparamSearchSpace", + "description": "Hyperparameter for matrix factoration when implicit feedback type is specified." + } + }, + "type": "object" + }, + "HparamTuningTrial": { + "description": "Training info of a trial in [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models.", + "id": "HparamTuningTrial", + "properties": { + "endTimeMs": { + "description": "Ending time of the trial.", + "format": "int64", + "type": "string" + }, + "errorMessage": { + "description": "Error message for FAILED and INFEASIBLE trial.", + "type": "string" + }, + "evalLoss": { + "description": "Loss computed on the eval data at the end of trial.", + "format": "double", + "type": "number" + }, + "evaluationMetrics": { + "$ref": "EvaluationMetrics", + "description": "Evaluation metrics of this trial calculated on the test data. Empty in Job API." + }, + "hparamTuningEvaluationMetrics": { + "$ref": "EvaluationMetrics", + "description": "Hyperparameter tuning evaluation metrics of this trial calculated on the eval data. Unlike evaluation_metrics, only the fields corresponding to the hparam_tuning_objectives are set." + }, + "hparams": { + "$ref": "TrainingOptions", + "description": "The hyperprameters selected for this trial." + }, + "startTimeMs": { + "description": "Starting time of the trial.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "The status of the trial.", + "enum": [ + "TRIAL_STATUS_UNSPECIFIED", + "NOT_STARTED", + "RUNNING", + "SUCCEEDED", + "FAILED", + "INFEASIBLE", + "STOPPED_EARLY" + ], + "enumDescriptions": [ + "", + "Scheduled but not started.", + "Running state.", + "The trial succeeded.", + "The trial failed.", + "The trial is infeasible due to the invalid params.", + "Trial stopped early because it's not promising." + ], + "type": "string" + }, + "trainingLoss": { + "description": "Loss computed on the training data at the end of trial.", + "format": "double", + "type": "number" + }, + "trialId": { + "description": "1-based index of the trial.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "IndexUnusedReason": { + "id": "IndexUnusedReason", + "properties": { + "base_table": { + "$ref": "TableReference", + "description": "[Output-only] 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.", + "type": "string" + }, + "index_name": { + "default": "$(reason.index_name)", + "description": "[Output-only] 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.", + "type": "string" + } + }, + "type": "object" + }, + "IntArray": { + "description": "An array of int.", + "id": "IntArray", + "properties": { + "elements": { + "description": "Elements in the int array.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "IntArrayHparamSearchSpace": { + "description": "Search space for int array.", + "id": "IntArrayHparamSearchSpace", + "properties": { + "candidates": { + "description": "Candidates for the int array parameter.", + "items": { + "$ref": "IntArray" + }, + "type": "array" + } + }, + "type": "object" + }, + "IntCandidates": { + "description": "Discrete candidates of an int hyperparameter.", + "id": "IntCandidates", + "properties": { + "candidates": { + "description": "Candidates for the int parameter in increasing order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "IntHparamSearchSpace": { + "description": "Search space for an int hyperparameter.", + "id": "IntHparamSearchSpace", + "properties": { + "candidates": { + "$ref": "IntCandidates", + "description": "Candidates of the int hyperparameter." + }, + "range": { + "$ref": "IntRange", + "description": "Range of the int hyperparameter." + } + }, + "type": "object" + }, + "IntRange": { + "description": "Range of an int hyperparameter.", + "id": "IntRange", + "properties": { + "max": { + "description": "Max value of the int parameter.", + "format": "int64", + "type": "string" + }, + "min": { + "description": "Min value of the int parameter.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "IterationResult": { "id": "IterationResult", "properties": { @@ -3673,10 +4115,21 @@ "$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." }, + "connectionProperties": { + "description": "Connection properties.", + "items": { + "$ref": "ConnectionProperty" + }, + "type": "array" + }, "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.", "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.", + "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.", "items": { @@ -3750,6 +4203,10 @@ "$ref": "RangePartitioning", "description": "[TrustedTester] Range partitioning specification for this 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.", + "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." @@ -4066,11 +4523,19 @@ "format": "double", "type": "number" }, + "copy": { + "$ref": "JobStatistics5", + "description": "[Output-only] Statistics for a copy job." + }, "creationTime": { "description": "[Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.", "format": "int64", "type": "string" }, + "dataMaskingStatistics": { + "$ref": "DataMaskingStatistics", + "description": "[Output-only] Statistics for data masking. Present only for query and extract jobs." + }, "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.", "format": "int64", @@ -4165,25 +4630,25 @@ "properties": { "biEngineStatistics": { "$ref": "BiEngineStatistics", - "description": "BI Engine specific Statistics. [Output-only] BI Engine specific Statistics." + "description": "BI Engine specific Statistics. [Output only] BI Engine specific Statistics." }, "billingTier": { - "description": "[Output-only] Billing tier for the job.", + "description": "[Output only] Billing tier for the job.", "format": "int32", "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.", "type": "boolean" }, "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] [Preview] The number of row access policies affected by a DDL statement. Present only for DROP ALL ROW ACCESS POLICIES queries.", "format": "int64", "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 DDL destination table. Present only for ALTER TABLE RENAME TO queries. Note that ddl_target_table is used just for its type information." }, "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.", @@ -4191,7 +4656,7 @@ }, "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 queries." }, "ddlTargetRoutine": { "$ref": "RoutineReference", @@ -4199,75 +4664,75 @@ }, "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] [Preview] The DDL target row access policy. Present only for CREATE/DROP ROW ACCESS POLICY queries." }, "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." }, "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 Present only for DML statements INSERT, UPDATE, DELETE or TRUNCATE." }, "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", "type": "string" }, "mlStatistics": { "$ref": "MlStatistics", - "description": "[Output-only] Statistics of a BigQuery ML training job." + "description": "[Output only] Statistics of a BigQuery ML training job." }, "modelTraining": { "$ref": "BigQueryModelTraining", - "description": "[Output-only, Beta] Information about create model query job progress." + "description": "[Output only, Beta] Information about create model query job progress." }, "modelTrainingCurrentIteration": { - "description": "[Output-only, Beta] Deprecated; do not use.", + "description": "[Output only, Beta] Deprecated; do not use.", "format": "int32", "type": "integer" }, "modelTrainingExpectedTotalIteration": { - "description": "[Output-only, Beta] Deprecated; do not use.", + "description": "[Output only, Beta] Deprecated; do not use.", "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", "type": "string" }, "queryPlan": { - "description": "[Output-only] Describes execution plan for the query.", + "description": "[Output only] Describes execution plan for the query.", "items": { "$ref": "ExplainQueryStage" }, "type": "array" }, "referencedRoutines": { - "description": "[Output-only] Referenced routines (persistent user-defined functions and stored procedures) for the job.", + "description": "[Output only] Referenced routines (persistent user-defined functions and stored procedures) for the job.", "items": { "$ref": "RoutineReference" }, "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" }, "type": "array" }, "reservationUsage": { - "description": "[Output-only] Job resource usage breakdown by reservation.", + "description": "[Output only] Job resource usage breakdown by reservation.", "items": { "properties": { "name": { - "description": "[Output-only] Reservation name or \"unreserved\" for on-demand resources usage.", + "description": "[Output only] 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": "[Output only] Slot-milliseconds the job spent in the given reservation.", "format": "int64", "type": "string" } @@ -4278,40 +4743,53 @@ }, "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." + }, + "searchStatistics": { + "$ref": "SearchStatistics", + "description": "[Output only] Search query specific statistics." + }, + "sparkStatistics": { + "$ref": "SparkStatistics", + "description": "[Output only] Statistics of a Spark procedure job." }, "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.", "type": "string" }, "timeline": { - "description": "[Output-only] [Beta] Describes a timeline of job execution.", + "description": "[Output only] [Beta] Describes a timeline of job execution.", "items": { "$ref": "QueryTimelineSample" }, "type": "array" }, "totalBytesBilled": { - "description": "[Output-only] Total bytes billed for the job.", + "description": "[Output only] Total bytes billed for the job.", "format": "int64", "type": "string" }, "totalBytesProcessed": { - "description": "[Output-only] Total bytes processed for the job.", + "description": "[Output only] Total bytes processed for the job.", "format": "int64", "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.", "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", "type": "string" }, "totalSlotMs": { - "description": "[Output-only] Slot-milliseconds for the job.", + "description": "[Output only] Slot-milliseconds for the job.", + "format": "int64", + "type": "string" + }, + "transferredBytes": { + "description": "[Output-only] Total bytes transferred for cross-cloud queries such as Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS).", "format": "int64", "type": "string" }, @@ -4375,6 +4853,22 @@ }, "type": "object" }, + "JobStatistics5": { + "id": "JobStatistics5", + "properties": { + "copied_logical_bytes": { + "description": "[Output-only] Number of logical bytes copied to the destination table.", + "format": "int64", + "type": "string" + }, + "copied_rows": { + "description": "[Output-only] Number of rows copied to the destination table.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "JobStatus": { "id": "JobStatus", "properties": { @@ -4433,7 +4927,7 @@ "type": "string" }, "routines": { - "description": "Routines in the requested dataset. Unless read_mask is set in the request, only the following fields are populated: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, and language.", + "description": "Routines in the requested dataset. Unless read_mask is set in the request, only the following fields are populated: etag, project_id, dataset_id, routine_id, routine_type, creation_time, last_modified_time, language, and remote_function_options.", "items": { "$ref": "Routine" }, @@ -4474,6 +4968,10 @@ "MaterializedViewDefinition": { "id": "MaterializedViewDefinition", "properties": { + "allow_non_incremental_definition": { + "description": "[Optional] Allow non incremental materialized view definition. The default value is \"false\".", + "type": "boolean" + }, "enableRefresh": { "description": "[Optional] [TrustedTester] Enable automatic refresh of the materialized view when the base table is updated. The default value is \"true\".", "type": "boolean" @@ -4483,6 +4981,11 @@ "format": "int64", "type": "string" }, + "maxStaleness": { + "description": "[Optional] Max staleness of data that could be returned when materizlized view is queried (formatted as Google SQL Interval type).", + "format": "byte", + "type": "string" + }, "query": { "description": "[Required] A query whose result is persisted.", "type": "string" @@ -4527,6 +5030,12 @@ "readOnly": true, "type": "string" }, + "defaultTrialId": { + "description": "Output only. The default trial_id to use in TVFs when the trial_id is not passed in. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the best trial ID. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, this is the smallest trial ID among all Pareto optimal trials.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "description": { "description": "Optional. A user-friendly description of this model.", "type": "string" @@ -4557,6 +5066,19 @@ "description": "Optional. A descriptive name for this model.", "type": "string" }, + "hparamSearchSpaces": { + "$ref": "HparamSearchSpaces", + "description": "Output only. All hyperparameter search spaces in this model.", + "readOnly": true + }, + "hparamTrials": { + "description": "Output only. Trials of a [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) model sorted by trial_id.", + "items": { + "$ref": "HparamTuningTrial" + }, + "readOnly": true, + "type": "array" + }, "labelColumns": { "description": "Output only. Label columns that were used to train this model. The output of the model will have a \"predicted_\" prefix to these columns.", "items": { @@ -4603,7 +5125,13 @@ "ARIMA", "AUTOML_REGRESSOR", "AUTOML_CLASSIFIER", - "ARIMA_PLUS" + "PCA", + "DNN_LINEAR_COMBINED_CLASSIFIER", + "DNN_LINEAR_COMBINED_REGRESSOR", + "AUTOENCODER", + "ARIMA_PLUS", + "RANDOM_FOREST_REGRESSOR", + "RANDOM_FOREST_CLASSIFIER" ], "enumDescriptions": [ "", @@ -4619,17 +5147,31 @@ "ARIMA model.", "AutoML Tables regression model.", "AutoML Tables classification model.", - "New name for the ARIMA model." + "Prinpical Component Analysis model.", + "Wide-and-deep classifier model.", + "Wide-and-deep regressor model.", + "Autoencoder model.", + "New name for the ARIMA model.", + "Random Forest regressor model.", + "Random Forest classifier model." ], "readOnly": true, "type": "string" }, + "optimalTrialIds": { + "description": "Output only. For single-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it only contains the best trial. For multi-objective [hyperparameter tuning](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) models, it contains all Pareto optimal trials sorted by trial_id.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "trainingRuns": { - "description": "Output only. Information for all training runs in increasing order of start_time.", + "description": "Information for all training runs in increasing order of start_time.", "items": { "$ref": "TrainingRun" }, - "readOnly": true, "type": "array" } }, @@ -4747,6 +5289,33 @@ }, "type": "object" }, + "PrincipalComponentInfo": { + "description": "Principal component infos, used only for eigen decomposition based models, e.g., PCA. Ordered by explained_variance in the descending order.", + "id": "PrincipalComponentInfo", + "properties": { + "cumulativeExplainedVarianceRatio": { + "description": "The explained_variance is pre-ordered in the descending order to compute the cumulative explained variance ratio.", + "format": "double", + "type": "number" + }, + "explainedVariance": { + "description": "Explained variance by this principal component, which is simply the eigenvalue.", + "format": "double", + "type": "number" + }, + "explainedVarianceRatio": { + "description": "Explained_variance over the total explained variance.", + "format": "double", + "type": "number" + }, + "principalComponentId": { + "description": "Id of the principal component.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ProjectList": { "id": "ProjectList", "properties": { @@ -5069,8 +5638,13 @@ "format": "int64", "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.", + "format": "int64", + "type": "string" + }, "pendingUnits": { - "description": "Total parallel units of work remaining for the active stages.", + "description": "Total units of work remaining for the query. This number can be revised (increased or decreased) while the query is running.", "format": "int64", "type": "string" }, @@ -5172,6 +5746,33 @@ }, "type": "object" }, + "RemoteFunctionOptions": { + "description": "Options for a remote user-defined function.", + "id": "RemoteFunctionOptions", + "properties": { + "connection": { + "description": "Fully qualified name of the user-provided connection object which holds the authentication information to send requests to the remote service. Format: ```\"projects/{projectId}/locations/{locationId}/connections/{connectionId}\"```", + "type": "string" + }, + "endpoint": { + "description": "Endpoint of the user-provided remote service, e.g. ```https://us-east1-my_gcf_project.cloudfunctions.net/remote_add```", + "type": "string" + }, + "maxBatchingRows": { + "description": "Max number of rows in each batch sent to the remote service. If absent or if 0, BigQuery dynamically decides the number of rows in a batch.", + "format": "int64", + "type": "string" + }, + "userDefinedContext": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined context as a set of key/value pairs, which will be sent as function invocation context together with batched arguments in the requests to the remote service. The total number of bytes of keys and values must be less than 8KB.", + "type": "object" + } + }, + "type": "object" + }, "Routine": { "description": "A user-defined function or a stored procedure.", "id": "Routine", @@ -5224,16 +5825,18 @@ "type": "array" }, "language": { - "description": "Optional. Defaults to \"SQL\".", + "description": "Optional. Defaults to \"SQL\" if remote_function_options field is absent, not set otherwise.", "enum": [ "LANGUAGE_UNSPECIFIED", "SQL", - "JAVASCRIPT" + "JAVASCRIPT", + "PYTHON" ], "enumDescriptions": [ "", "SQL language.", - "JavaScript language." + "JavaScript language.", + "Python language." ], "type": "string" }, @@ -5243,9 +5846,13 @@ "readOnly": true, "type": "string" }, + "remoteFunctionOptions": { + "$ref": "RemoteFunctionOptions", + "description": "Optional. Remote function specific options." + }, "returnTableType": { "$ref": "StandardSqlTableType", - "description": "Optional. Can be set only if routine_type = \"TABLE_VALUED_FUNCTION\". If absent, the return table type is inferred from definition_body at query time in each query that references this routine. If present, then the columns in the evaluated table result will be cast to match the column types specificed in return table type, at query time." + "description": "Optional. Can be set only if routine_type = \"TABLE_VALUED_FUNCTION\". If absent, the return table type is inferred from definition_body at query time in each query that references this routine. If present, then the columns in the evaluated table result will be cast to match the column types specified in return table type, at query time." }, "returnType": { "$ref": "StandardSqlDataType", @@ -5271,6 +5878,10 @@ ], "type": "string" }, + "sparkOptions": { + "$ref": "SparkOptions", + "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.", "type": "boolean" @@ -5429,6 +6040,23 @@ }, "type": "object" }, + "SearchStatistics": { + "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.", + "items": { + "$ref": "IndexUnusedReason" + }, + "type": "array" + }, + "indexUsageMode": { + "description": "Specifies index usage mode for the query.", + "type": "string" + } + }, + "type": "object" + }, "SessionInfo": { "id": "SessionInfo", "properties": { @@ -5445,7 +6073,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -5470,8 +6098,105 @@ }, "type": "object" }, + "SparkLoggingInfo": { + "id": "SparkLoggingInfo", + "properties": { + "project_id": { + "description": "[Output-only] Project ID used for logging", + "type": "string" + }, + "resource_type": { + "description": "[Output-only] Resource type used for logging", + "type": "string" + } + }, + "type": "object" + }, + "SparkOptions": { + "description": "Options for a user-defined Spark routine.", + "id": "SparkOptions", + "properties": { + "archiveUris": { + "description": "Archive files to be extracted into the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", + "items": { + "type": "string" + }, + "type": "array" + }, + "connection": { + "description": "Fully qualified name of the user-provided Spark connection object. Format: ```\"projects/{project_id}/locations/{location_id}/connections/{connection_id}\"```", + "type": "string" + }, + "containerImage": { + "description": "Custom container image for the runtime environment.", + "type": "string" + }, + "fileUris": { + "description": "Files to be placed in the working directory of each executor. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", + "items": { + "type": "string" + }, + "type": "array" + }, + "jarUris": { + "description": "JARs to include on the driver and executor CLASSPATH. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "properties": { + "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).", + "type": "object" + }, + "pyFileUris": { + "description": "Python files to be placed on the PYTHONPATH for PySpark application. Supported file types: `.py`, `.egg`, and `.zip`. For more information about Apache Spark, see [Apache Spark](https://spark.apache.org/docs/latest/index.html).", + "items": { + "type": "string" + }, + "type": "array" + }, + "runtimeVersion": { + "description": "Runtime version. If not specified, the default runtime version is used.", + "type": "string" + } + }, + "type": "object" + }, + "SparkStatistics": { + "id": "SparkStatistics", + "properties": { + "endpoints": { + "additionalProperties": { + "type": "string" + }, + "description": "[Output-only] Endpoints generated for the Spark job.", + "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.", + "type": "string" + }, + "spark_job_location": { + "description": "[Output-only] Location where the Spark job is executed.", + "type": "string" + } + }, + "type": "object" + }, "StandardSqlDataType": { - "description": "The data type of a variable such as a function argument. Examples include: * INT64: `{\"typeKind\": \"INT64\"}` * ARRAY: { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typeKind\": \"STRING\"} } * STRUCT>: { \"typeKind\": \"STRUCT\", \"structType\": { \"fields\": [ { \"name\": \"x\", \"type\": {\"typeKind: \"STRING\"} }, { \"name\": \"y\", \"type\": { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typekind\": \"DATE\"} } } ] } }", + "description": "The data type of a variable such as a function argument. Examples include: * INT64: `{\"typeKind\": \"INT64\"}` * ARRAY: { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typeKind\": \"STRING\"} } * STRUCT>: { \"typeKind\": \"STRUCT\", \"structType\": { \"fields\": [ { \"name\": \"x\", \"type\": {\"typeKind\": \"STRING\"} }, { \"name\": \"y\", \"type\": { \"typeKind\": \"ARRAY\", \"arrayElementType\": {\"typeKind\": \"DATE\"} } } ] } }", "id": "StandardSqlDataType", "properties": { "arrayElementType": { @@ -5589,9 +6314,27 @@ }, "type": "object" }, + "StringHparamSearchSpace": { + "description": "Search space for string and enum.", + "id": "StringHparamSearchSpace", + "properties": { + "candidates": { + "description": "Canididates for the string or enum parameter in lower case.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Table": { "id": "Table", "properties": { + "cloneDefinition": { + "$ref": "CloneDefinition", + "description": "[Output-only] Clone definition." + }, "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." @@ -5659,6 +6402,11 @@ "$ref": "MaterializedViewDefinition", "description": "[Optional] Materialized view definition." }, + "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", + "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." @@ -5683,6 +6431,46 @@ "format": "uint64", "type": "string" }, + "num_active_logical_bytes": { + "description": "[Output-only] Number of logical bytes that are less than 90 days old.", + "format": "int64", + "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.", + "format": "int64", + "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.", + "format": "int64", + "type": "string" + }, "rangePartitioning": { "$ref": "RangePartitioning", "description": "[TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified." @@ -5855,10 +6643,14 @@ }, "type": "object" }, - "collationSpec": { + "collation": { "description": "Optional. Collation specification of the field. It only can be set on string type field.", "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']", + "type": "string" + }, "description": { "description": "[Optional] The field description. The maximum length is 1,024 characters.", "type": "string" @@ -6069,7 +6861,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -6150,10 +6942,34 @@ ], "type": "string" }, + "calculatePValues": { + "description": "Whether or not p-value test should be computed for this model. Only available for linear and logistic regression models.", + "type": "boolean" + }, "cleanSpikesAndDips": { "description": "If true, clean spikes and dips in the input time series.", "type": "boolean" }, + "colorSpace": { + "description": "Enums for color space, used for processing images in Object Table. See more details at https://www.tensorflow.org/io/tutorials/colorspace.", + "enum": [ + "COLOR_SPACE_UNSPECIFIED", + "RGB", + "HSV", + "YIQ", + "YUV", + "GRAYSCALE" + ], + "enumDescriptions": [ + "Unspecified color space", + "RGB", + "HSV", + "YIQ", + "YUV", + "GRAYSCALE" + ], + "type": "string" + }, "colsampleBylevel": { "description": "Subsample ratio of columns for each level for boosted tree models.", "format": "double", @@ -6265,6 +7081,10 @@ "description": "Whether to stop early when the loss doesn't improve significantly any more (compared to min_relative_progress). Used only for iterative training algorithms.", "type": "boolean" }, + "enableGlobalExplain": { + "description": "If true, enable global explanation during training.", + "type": "boolean" + }, "feedbackType": { "description": "Feedback type that specifies which algorithm to run for matrix factorization.", "enum": [ @@ -6438,6 +7258,51 @@ "format": "int64", "type": "string" }, + "hparamTuningObjectives": { + "description": "The target evaluation metrics to optimize the hyperparameters for.", + "items": { + "enum": [ + "HPARAM_TUNING_OBJECTIVE_UNSPECIFIED", + "MEAN_ABSOLUTE_ERROR", + "MEAN_SQUARED_ERROR", + "MEAN_SQUARED_LOG_ERROR", + "MEDIAN_ABSOLUTE_ERROR", + "R_SQUARED", + "EXPLAINED_VARIANCE", + "PRECISION", + "RECALL", + "ACCURACY", + "F1_SCORE", + "LOG_LOSS", + "ROC_AUC", + "DAVIES_BOULDIN_INDEX", + "MEAN_AVERAGE_PRECISION", + "NORMALIZED_DISCOUNTED_CUMULATIVE_GAIN", + "AVERAGE_RANK" + ], + "enumDescriptions": [ + "Unspecified evaluation metric.", + "Mean absolute error. mean_absolute_error = AVG(ABS(label - predicted))", + "Mean squared error. mean_squared_error = AVG(POW(label - predicted, 2))", + "Mean squared log error. mean_squared_log_error = AVG(POW(LN(1 + label) - LN(1 + predicted), 2))", + "Mean absolute error. median_absolute_error = APPROX_QUANTILES(absolute_error, 2)[OFFSET(1)]", + "R^2 score. This corresponds to r2_score in ML.EVALUATE. r_squared = 1 - SUM(squared_error)/(COUNT(label)*VAR_POP(label))", + "Explained variance. explained_variance = 1 - VAR_POP(label_error)/VAR_POP(label)", + "Precision is the fraction of actual positive predictions that had positive actual labels. For multiclass this is a macro-averaged metric treating each class as a binary classifier.", + "Recall is the fraction of actual positive labels that were given a positive prediction. For multiclass this is a macro-averaged metric.", + "Accuracy is the fraction of predictions given the correct label. For multiclass this is a globally micro-averaged metric.", + "The F1 score is an average of recall and precision. For multiclass this is a macro-averaged metric.", + "Logorithmic Loss. For multiclass this is a macro-averaged metric.", + "Area Under an ROC Curve. For multiclass this is a macro-averaged metric.", + "Davies-Bouldin Index.", + "Mean Average Precision.", + "Normalized Discounted Cumulative Gain.", + "Average Rank." + ], + "type": "string" + }, + "type": "array" + }, "includeDrift": { "description": "Include drift when fitting an ARIMA model.", "type": "boolean" @@ -6454,6 +7319,11 @@ }, "type": "array" }, + "integratedGradientsNumSteps": { + "description": "Number of integral steps for the integrated gradients explain method.", + "format": "int64", + "type": "string" + }, "itemColumn": { "description": "Item column specified for matrix factorization models.", "type": "string" @@ -6534,6 +7404,16 @@ "format": "int64", "type": "string" }, + "maxParallelTrials": { + "description": "Maximum number of trials to run in parallel.", + "format": "int64", + "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.", + "format": "int64", + "type": "string" + }, "maxTreeDepth": { "description": "Maximum depth of a tree for boosted tree models.", "format": "int64", @@ -6549,6 +7429,11 @@ "format": "double", "type": "number" }, + "minTimeSeriesLength": { + "description": "Set fast trend ARIMA_PLUS model minimum training length. Use in pair with time_series_length_fraction.", + "format": "int64", + "type": "string" + }, "minTreeChildWeight": { "description": "Minimum sum of instance weight needed in a child for boosted tree models.", "format": "int64", @@ -6577,6 +7462,11 @@ "format": "int64", "type": "string" }, + "numTrials": { + "description": "Number of trials to run this hyperparameter tuning job.", + "format": "int64", + "type": "string" + }, "optimizationStrategy": { "description": "Optimization strategy for training linear regression models.", "enum": [ @@ -6595,6 +7485,11 @@ "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" }, + "sampledShapleyNumPaths": { + "description": "Number of paths for the sampled Shapley explain method.", + "format": "int64", + "type": "string" + }, "subsample": { "description": "Subsample fraction of the training data to grow tree to prevent overfitting for boosted tree models.", "format": "double", @@ -6615,6 +7510,11 @@ }, "type": "array" }, + "timeSeriesLengthFraction": { + "description": "Get truncated length by fraction in time series.", + "format": "double", + "type": "number" + }, "timeSeriesTimestampColumn": { "description": "Column to be designated as time series timestamp for ARIMA model.", "type": "string" @@ -6637,6 +7537,11 @@ ], "type": "string" }, + "trendSmoothingWindowSize": { + "description": "The smoothing window size for the trend component of the time series.", + "format": "int64", + "type": "string" + }, "userColumn": { "description": "User column specified for matrix factorization models.", "type": "string" @@ -6657,29 +7562,62 @@ "description": "Information about a single training query run for the model.", "id": "TrainingRun", "properties": { + "classLevelGlobalExplanations": { + "description": "Output only. Global explanation contains the explanation of top features on the class level. Applies to classification models only.", + "items": { + "$ref": "GlobalExplanation" + }, + "readOnly": true, + "type": "array" + }, "dataSplitResult": { "$ref": "DataSplitResult", - "description": "Data split result of the training run. Only set when the input data is actually split." + "description": "Output only. Data split result of the training run. Only set when the input data is actually split.", + "readOnly": true }, "evaluationMetrics": { "$ref": "EvaluationMetrics", - "description": "The evaluation metrics over training/eval data that were computed at the end of training." + "description": "Output only. The evaluation metrics over training/eval data that were computed at the end of training.", + "readOnly": true + }, + "modelLevelGlobalExplanation": { + "$ref": "GlobalExplanation", + "description": "Output only. Global explanation contains the explanation of top features on the model level. Applies to both regression and classification models.", + "readOnly": true }, "results": { - "description": "Output of each iteration run, results.size() <= max_iterations.", + "description": "Output only. Output of each iteration run, results.size() <= max_iterations.", "items": { "$ref": "IterationResult" }, + "readOnly": true, "type": "array" }, "startTime": { - "description": "The start time of this training run.", + "description": "Output only. The start time of this training run.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "trainingOptions": { "$ref": "TrainingOptions", - "description": "Options that were used for this training run, includes user specified and default options that were used." + "description": "Output only. Options that were used for this training run, includes user specified and default options that were used.", + "readOnly": true + }, + "trainingStartTime": { + "description": "Output only. The start time of this training run, in milliseconds since epoch.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "vertexAiModelId": { + "description": "The model id in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.", + "type": "string" + }, + "vertexAiModelVersion": { + "description": "Output only. The model version in the [Vertex AI Model Registry](https://cloud.google.com/vertex-ai/docs/model-registry/introduction) for this training run.", + "readOnly": true, + "type": "string" } }, "type": "object" diff --git a/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json index 5882788aba..34a83d530a 100644 --- a/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json +++ b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json @@ -210,7 +210,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -311,7 +311,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -340,7 +340,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -395,11 +395,11 @@ } } }, - "revision": "20220226", + "revision": "20230115", "rootUrl": "https://bigqueryconnection.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -455,7 +455,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -499,6 +499,11 @@ "description": "Cloud SQL instance ID in the form `project:location:instance`.", "type": "string" }, + "serviceAccountId": { + "description": "Output only. The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.", + "readOnly": true, + "type": "string" + }, "type": { "description": "Type of the Cloud SQL database.", "enum": [ @@ -568,7 +573,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -674,7 +679,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -689,7 +694,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json index 9d6a833f06..366bc033e2 100644 --- a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json +++ b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json @@ -114,7 +114,7 @@ "projects": { "methods": { "enrollDataSources": { - "description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the BigQuery UI 'https://bigquery.cloud.google.com' (and the documents can be found at https://cloud.google.com/bigquery/bigquery-web-ui and https://cloud.google.com/bigquery/docs/working-with-transfers).", + "description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the [BigQuery UI](https://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).", "flatPath": "v1/projects/{projectsId}:enrollDataSources", "httpMethod": "POST", "id": "bigquerydatatransfer.projects.enrollDataSources", @@ -246,7 +246,7 @@ "locations": { "methods": { "enrollDataSources": { - "description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the BigQuery UI 'https://bigquery.cloud.google.com' (and the documents can be found at https://cloud.google.com/bigquery/bigquery-web-ui and https://cloud.google.com/bigquery/docs/working-with-transfers).", + "description": "Enroll data sources in a user project. This allows users to create transfer configurations for these data sources. They will also appear in the ListDataSources RPC and as such, will appear in the [BigQuery UI](https://console.cloud.google.com/bigquery), and the documents can be found in the public guide for [BigQuery Web UI](https://cloud.google.com/bigquery/bigquery-web-ui) and [Data Transfer Service](https://cloud.google.com/bigquery/docs/working-with-transfers).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:enrollDataSources", "httpMethod": "POST", "id": "bigquerydatatransfer.projects.locations.enrollDataSources", @@ -311,7 +311,7 @@ ], "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).", + "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" }, @@ -457,7 +457,7 @@ ], "parameters": { "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", "location": "query", "type": "string" }, @@ -469,12 +469,12 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, transfer config will be created with this service account credential. It requires that 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 transfer config. Please refer to this public guide for the latest list of data sources with service account support: https://cloud.google.com/bigquery-transfer/docs/use-service-accounts", + "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).", "location": "query", "type": "string" }, "versionInfo": { - "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is anything else but 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", "location": "query", "type": "string" } @@ -597,7 +597,7 @@ ], "parameters": { "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", "location": "query", "type": "string" }, @@ -609,7 +609,7 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set and \"service_account_name\" is set in update_mask, transfer config will be created with this service account credential. It requires that 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 transfer config. Please refer to this public guide for the latest list of data sources with service account support: https://cloud.google.com/bigquery-transfer/docs/use-service-accounts", + "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).", "location": "query", "type": "string" }, @@ -620,7 +620,7 @@ "type": "string" }, "versionInfo": { - "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is anything else but 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", "location": "query", "type": "string" } @@ -904,7 +904,7 @@ ], "parameters": { "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", "location": "query", "type": "string" }, @@ -916,12 +916,12 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set, transfer config will be created with this service account credential. It requires that 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 transfer config. Please refer to this public guide for the latest list of data sources with service account support: https://cloud.google.com/bigquery-transfer/docs/use-service-accounts", + "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).", "location": "query", "type": "string" }, "versionInfo": { - "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is anything else but 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", "location": "query", "type": "string" } @@ -1044,7 +1044,7 @@ ], "parameters": { "authorizationCode": { - "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional OAuth2 authorization code to use with this transfer configuration. This is required only if `transferConfig.dataSourceId` is 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain authorization_code, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=authorization_code&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", "location": "query", "type": "string" }, @@ -1056,7 +1056,7 @@ "type": "string" }, "serviceAccountName": { - "description": "Optional service account name. If this field is set and \"service_account_name\" is set in update_mask, transfer config will be created with this service account credential. It requires that 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 transfer config. Please refer to this public guide for the latest list of data sources with service account support: https://cloud.google.com/bigquery-transfer/docs/use-service-accounts", + "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).", "location": "query", "type": "string" }, @@ -1067,7 +1067,7 @@ "type": "string" }, "versionInfo": { - "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is anything else but 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, please make a request to https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?client_id=&scope=&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info * client_id should be OAuth client_id of BigQuery DTS API for the given data source returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to create the transfer config.", + "description": "Optional version info. This is required only if `transferConfig.dataSourceId` is not 'youtube_channel' and new credentials are needed, as indicated by `CheckValidCreds`. In order to obtain version info, make a request to the following URL: https://www.gstatic.com/bigquerydatatransfer/oauthz/auth?redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=version_info&client_id=client_id&scope=data_source_scopes * The client_id is the OAuth client_id of the a data source as returned by ListDataSources method. * data_source_scopes are the scopes returned by ListDataSources method. Note that this should not be set when `service_account_name` is used to update the transfer config.", "location": "query", "type": "string" } @@ -1340,7 +1340,7 @@ } } }, - "revision": "20220225", + "revision": "20230115", "rootUrl": "https://bigquerydatatransfer.googleapis.com/", "schemas": { "CheckValidCredsRequest": { @@ -1516,7 +1516,7 @@ "type": "boolean" }, "maxValue": { - "description": "For integer and double values specifies maxminum allowed value.", + "description": "For integer and double values specifies maximum allowed value.", "format": "double", "type": "number" }, @@ -1590,7 +1590,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1876,7 +1876,7 @@ "type": "integer" }, "dataSourceId": { - "description": "Data source id. Cannot be changed once data transfer is created.", + "description": "Data source ID. This cannot be changed once data transfer is created. The full list of available data source IDs can be returned through an API call: https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list", "type": "string" }, "datasetRegion": { diff --git a/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json index 6a0ead2b0b..d7f8575800 100644 --- a/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json +++ b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json @@ -433,7 +433,7 @@ ], "parameters": { "name": { - "description": "Output only. The resource name of the capacity commitment, e.g., `projects/myproject/locations/US/capacityCommitments/123` For the commitment id, it must only contain lower case alphanumeric characters or dashes.It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", + "description": "Output only. The resource name of the capacity commitment, e.g., `projects/myproject/locations/US/capacityCommitments/123` The commitment_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/capacityCommitments/[^/]+$", "required": true, @@ -459,7 +459,7 @@ ] }, "split": { - "description": "Splits capacity commitment to two commitments of the same plan and `commitment_end_time`. A common use case is to enable downgrading commitments. For example, in order to downgrade from 10000 slots to 8000, you might split a 10000 capacity commitment into commitments of 2000 and 8000. Then, you would change the plan of the first one to `FLEX` and then delete it.", + "description": "Splits capacity commitment to two commitments of the same plan and `commitment_end_time`. A common use case is to enable downgrading commitments. For example, in order to downgrade from 10000 slots to 8000, you might split a 10000 capacity commitment into commitments of 2000 and 8000. Then, you delete the first one after the commitment end time passes.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/capacityCommitments/{capacityCommitmentsId}:split", "httpMethod": "POST", "id": "bigqueryreservation.projects.locations.capacityCommitments.split", @@ -508,7 +508,7 @@ "type": "string" }, "reservationId": { - "description": "The reservation ID. It must only contain lower case alphanumeric characters or dashes.It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", + "description": "The reservation ID. It must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "location": "query", "type": "string" } @@ -624,7 +624,7 @@ ], "parameters": { "name": { - "description": "The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. For the reservation id, it must only contain lower case alphanumeric characters or dashes.It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", + "description": "The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+$", "required": true, @@ -778,6 +778,41 @@ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform" ] + }, + "patch": { + "description": "Updates an existing assignment. Only the `priority` field can be updated.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}/assignments/{assignmentsId}", + "httpMethod": "PATCH", + "id": "bigqueryreservation.projects.locations.reservations.assignments.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Name of the resource. E.g.: `projects/myproject/locations/US/reservations/team1-prod/assignments/123`. The assignment_id must only contain lower case alphanumeric characters or dashes and the max length is 64 characters.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+/assignments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Standard field mask for the set of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Assignment" + }, + "response": { + "$ref": "Assignment" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -788,7 +823,7 @@ } } }, - "revision": "20220226", + "revision": "20230117", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { @@ -805,18 +840,20 @@ "JOB_TYPE_UNSPECIFIED", "PIPELINE", "QUERY", - "ML_EXTERNAL" + "ML_EXTERNAL", + "BACKGROUND" ], "enumDescriptions": [ "Invalid type. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", "Pipeline (load/export) jobs from the project will use the reservation.", "Query jobs from the project will use the reservation.", - "BigQuery ML jobs that use services external to BigQuery for model training. These jobs will not utilize idle slots from other reservations." + "BigQuery ML jobs that use services external to BigQuery for model training. These jobs will not utilize idle slots from other reservations.", + "Background jobs that BigQuery runs for the customers in the background." ], "type": "string" }, "name": { - "description": "Output only. Name of the resource. E.g.: `projects/myproject/locations/US/reservations/team1-prod/assignments/123`. For the assignment id, it must only contain lower case alphanumeric characters or dashes and the max length is 64 characters.", + "description": "Output only. Name of the resource. E.g.: `projects/myproject/locations/US/reservations/team1-prod/assignments/123`. The assignment_id must only contain lower case alphanumeric characters or dashes and the max length is 64 characters.", "readOnly": true, "type": "string" }, @@ -846,6 +883,13 @@ "description": "The resource name of the singleton BI reservation. Reservation names have the form `projects/{project_id}/locations/{location_id}/biReservation`.", "type": "string" }, + "preferredTables": { + "description": "Preferred tables to use BI capacity for.", + "items": { + "$ref": "TableReference" + }, + "type": "array" + }, "size": { "description": "Size of a reservation, in bytes.", "format": "int64", @@ -886,7 +930,7 @@ "type": "boolean" }, "name": { - "description": "Output only. The resource name of the capacity commitment, e.g., `projects/myproject/locations/US/capacityCommitments/123` For the commitment id, it must only contain lower case alphanumeric characters or dashes.It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", + "description": "Output only. The resource name of the capacity commitment, e.g., `projects/myproject/locations/US/capacityCommitments/123` The commitment_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "readOnly": true, "type": "string" }, @@ -952,7 +996,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1041,7 +1085,7 @@ "id": "Reservation", "properties": { "concurrency": { - "description": "Maximum number of queries that are allowed to run concurrently in this reservation. This is a soft limit due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency will be automatically set based on the reservation size.", + "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", "type": "string" }, @@ -1060,11 +1104,11 @@ "type": "boolean" }, "name": { - "description": "The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. For the reservation id, it must only contain lower case alphanumeric characters or dashes.It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", + "description": "The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "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 the new reservation's slot capacity exceed the project's slot capacity or if total slot capacity of the new reservation and its siblings exceeds the project's slot capacity, the request will fail with `google.rpc.Code.RESOURCE_EXHAUSTED`. NOTE: for reservations in US or EU multi-regions slot capacity constraints are checked separately for default and auxiliary regions. See multi_region_auxiliary flag for more details.", + "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.", "format": "int64", "type": "string" }, @@ -1166,6 +1210,25 @@ } }, "type": "object" + }, + "TableReference": { + "description": "Fully qualified reference to BigQuery table. Internally stored as google.cloud.bi.v1.BqTableReference.", + "id": "TableReference", + "properties": { + "datasetId": { + "description": "The ID of the dataset in the above project.", + "type": "string" + }, + "projectId": { + "description": "The assigned project ID of the project.", + "type": "string" + }, + "tableId": { + "description": "The ID of the table in the above dataset.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/bigtableadmin/v2/bigtableadmin-api.json b/etc/api/bigtableadmin/v2/bigtableadmin-api.json index 4c26455656..48b5454152 100644 --- a/etc/api/bigtableadmin/v2/bigtableadmin-api.json +++ b/etc/api/bigtableadmin/v2/bigtableadmin-api.json @@ -389,7 +389,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -497,7 +497,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -530,7 +530,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -999,6 +999,38 @@ "resources": { "backups": { "methods": { + "copy": { + "description": "Copy a Cloud Bigtable backup to a new backup in the destination cluster located in the destination instance and project.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups:copy", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.clusters.backups.copy", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the destination cluster that will contain the backup copy. The cluster must already exists. Values are of the form: `projects/{project}/instances/{instance}/clusters/{cluster}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/backups:copy", + "request": { + "$ref": "CopyBackupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Starts creating a new Cloud Bigtable Backup. The returned backup long-running operation can be used to track creation of the backup. The metadata field type is CreateBackupMetadata. The response field type is Backup, if successful. Cancelling the returned operation will stop the creation and delete the backup.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/backups", @@ -1104,7 +1136,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$", "required": true, @@ -1224,7 +1256,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$", "required": true, @@ -1256,7 +1288,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/clusters/[^/]+/backups/[^/]+$", "required": true, @@ -1279,6 +1311,63 @@ ] } } + }, + "hotTablets": { + "methods": { + "list": { + "description": "Lists hot tablets in a cluster, within the time range provided. Hot tablets are ordered based on CPU usage.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/clusters/{clustersId}/hotTablets", + "httpMethod": "GET", + "id": "bigtableadmin.projects.instances.clusters.hotTablets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "endTime": { + "description": "The end time to list hot tablets.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results per page. A page_size that is empty or zero lets the server choose the number of items to return. A page_size which is strictly positive will return at most that many items. A negative page_size will cause an error. Following the first request, subsequent paginated calls do not need a page_size field. If a page_size is set in subsequent calls, it must match the page_size given in the first request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value of `next_page_token` returned by a previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The cluster name to list hot tablets. Value is in the following form: `projects/{project}/instances/{instance}/clusters/{cluster}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/clusters/[^/]+$", + "required": true, + "type": "string" + }, + "startTime": { + "description": "The start time to list hot tablets. The hot tablets in the response will have start times between the requested start time and end time. Start time defaults to Now if it is unset, and end time defaults to Now - 24 hours if it is unset. The start time should be less than the end time, and the maximum allowed time range between start time and end time is 48 hours. Start time and end time should have values between Now and Now - 14 days.", + "format": "google-datetime", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/hotTablets", + "response": { + "$ref": "ListHotTabletsResponse" + }, + "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" + ] + } + } } } }, @@ -1465,6 +1554,7 @@ "SCHEMA_VIEW", "REPLICATION_VIEW", "ENCRYPTION_VIEW", + "STATS_VIEW", "FULL" ], "enumDescriptions": [ @@ -1473,7 +1563,8 @@ "Only populates `name` and fields related to the table's schema.", "Only populates `name` and fields related to the table's replication state.", "Only populates `name` and fields related to the table's encryption state.", - "Populates all fields." + "Only populates `name` and fields related to the table's stats (e.g. TableStats and ColumnFamilyStats).", + "Populates all fields except for stats. See STATS_VIEW to request stats." ], "location": "query", "type": "string" @@ -1502,7 +1593,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/tables/[^/]+$", "required": true, @@ -1559,6 +1650,7 @@ "SCHEMA_VIEW", "REPLICATION_VIEW", "ENCRYPTION_VIEW", + "STATS_VIEW", "FULL" ], "enumDescriptions": [ @@ -1567,7 +1659,8 @@ "Only populates `name` and fields related to the table's schema.", "Only populates `name` and fields related to the table's replication state.", "Only populates `name` and fields related to the table's encryption state.", - "Populates all fields." + "Only populates `name` and fields related to the table's stats (e.g. TableStats and ColumnFamilyStats).", + "Populates all fields except for stats. See STATS_VIEW to request stats." ], "location": "query", "type": "string" @@ -1618,8 +1711,46 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "patch": { + "description": "Updates a specified table.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}", + "httpMethod": "PATCH", + "id": "bigtableadmin.projects.instances.tables.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `STATS_VIEW`, `FULL`", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. A mask specifying which fields (e.g. `change_stream_config`) in the `table` field should be updated. This mask is relative to the `table` field, not to the request message. The wildcard (*) path is currently not supported. Currently UpdateTable is only supported for the following fields: * `change_stream_config` * `change_stream_config.retention_period` * `deletion_protection` If `column_families` is set in `update_mask`, it will return an UNIMPLEMENTED error.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "Table" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "restore": { - "description": "Create a new table by restoring from a completed backup. The new table must be in the same project as the instance containing the backup. The returned table long-running operation can be used to track the progress of the operation, and to cancel it. The metadata field type is RestoreTableMetadata. The response type is Table, if successful.", + "description": "Create a new table by restoring from a completed backup. The returned table long-running operation can be used to track the progress of the operation, and to cancel it. The metadata field type is RestoreTableMetadata. The response type is Table, if successful.", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables:restore", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.tables.restore", @@ -1628,7 +1759,7 @@ ], "parameters": { "parent": { - "description": "Required. The name of the instance in which to create the restored table. This instance must be in the same project as the source backup. Values are of the form `projects//instances/`.", + "description": "Required. The name of the instance in which to create the restored table. Values are of the form `projects//instances/`.", "location": "path", "pattern": "^projects/[^/]+/instances/[^/]+$", "required": true, @@ -1660,7 +1791,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/tables/[^/]+$", "required": true, @@ -1692,7 +1823,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/tables/[^/]+$", "required": true, @@ -1713,6 +1844,38 @@ "https://www.googleapis.com/auth/cloud-bigtable.admin.table", "https://www.googleapis.com/auth/cloud-platform" ] + }, + "undelete": { + "description": "Restores a specified table which was accidentally deleted.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:undelete", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.tables.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The unique name of the table to be restored. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:undelete", + "request": { + "$ref": "UndeleteTableRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1761,7 +1924,7 @@ ], "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).", + "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" }, @@ -1803,7 +1966,7 @@ } } }, - "revision": "20220222", + "revision": "20230110", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "AppProfile": { @@ -1834,7 +1997,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1903,7 +2066,12 @@ "id": "AutoscalingTargets", "properties": { "cpuUtilizationPercent": { - "description": "The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80.", + "description": "The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.", + "format": "int32", + "type": "integer" + }, + "storageUtilizationGibPerNode": { + "description": "The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.", "format": "int32", "type": "integer" } @@ -1940,6 +2108,11 @@ "readOnly": true, "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/.", + "readOnly": true, + "type": "string" + }, "sourceTable": { "description": "Required. Immutable. Name of the table from which this backup was created. This needs to be in the same instance as the backup. Values are of the form `projects/{project}/instances/{instance}/tables/{source_table}`.", "type": "string" @@ -1983,6 +2156,11 @@ "readOnly": true, "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/.", + "readOnly": true, + "type": "string" + }, "sourceTable": { "description": "Output only. Name of the table the backup was created from.", "readOnly": true, @@ -2006,7 +2184,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2171,6 +2349,71 @@ "gcRule": { "$ref": "GcRule", "description": "Garbage collection rule specified as a protobuf. Must serialize to at most 500 bytes. NOTE: Garbage collection executes opportunistically in the background, and so it's possible for reads to return a cell even if it matches the active GC expression for its family." + }, + "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." + } + }, + "type": "object" + }, + "ColumnFamilyStats": { + "description": "Approximate statistics related to a single column family within a table. This information may change rapidly, interpreting these values at a point in time may already preset out-of-date information. Everything below is approximate, unless otherwise specified.", + "id": "ColumnFamilyStats", + "properties": { + "averageCellsPerColumn": { + "description": "How many cells are present per column qualifier in this column family, averaged over all rows containing any column in the column family. e.g. For column family \"family\" in a table with 3 rows: * A row with 3 cells in \"family:col\" and 1 cell in \"other:col\" (3 cells / 1 column in \"family\") * A row with 1 cell in \"family:col\", 7 cells in \"family:other_col\", and 7 cells in \"other:data\" (8 cells / 2 columns in \"family\") * A row with 3 cells in \"other:col\" (0 columns in \"family\", \"family\" not present) would report (3 + 8 + 0)/(1 + 2 + 0) = 3.66 in this field.", + "format": "double", + "type": "number" + }, + "averageColumnsPerRow": { + "description": "How many column qualifiers are present in this column family, averaged over all rows in the table. e.g. For column family \"family\" in a table with 3 rows: * A row with cells in \"family:col\" and \"other:col\" (1 column in \"family\") * A row with cells in \"family:col\", \"family:other_col\", and \"other:data\" (2 columns in \"family\") * A row with cells in \"other:col\" (0 columns in \"family\", \"family\" not present) would report (1 + 2 + 0)/3 = 1.5 in this field.", + "format": "double", + "type": "number" + }, + "logicalDataBytes": { + "description": "How much space the data in the column family occupies. This is roughly how many bytes would be needed to read the contents of the entire column family (e.g. by streaming all contents out).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CopyBackupMetadata": { + "description": "Metadata type for the google.longrunning.Operation returned by CopyBackup.", + "id": "CopyBackupMetadata", + "properties": { + "name": { + "description": "The name of the backup being created through the copy operation. Values are of the form `projects//instances//clusters//backups/`.", + "type": "string" + }, + "progress": { + "$ref": "OperationProgress", + "description": "The progress of the CopyBackup operation." + }, + "sourceBackupInfo": { + "$ref": "BackupInfo", + "description": "Information about the source backup that is being copied from." + } + }, + "type": "object" + }, + "CopyBackupRequest": { + "description": "The request for CopyBackup.", + "id": "CopyBackupRequest", + "properties": { + "backupId": { + "description": "Required. The id of the new backup. The `backup_id` along with `parent` are combined as {parent}/backups/{backup_id} to create the full backup name, of the form: `projects/{project}/instances/{instance}/clusters/{cluster}/backups/{backup_id}`. This string must be between 1 and 50 characters in length and match the regex _a-zA-Z0-9*.", + "type": "string" + }, + "expireTime": { + "description": "Required. Required. The expiration time of the copied backup with microsecond 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.", + "format": "google-datetime", + "type": "string" + }, + "sourceBackup": { + "description": "Required. The source backup to be copied from. The source backup needs to be in READY state for it to be copied. Copying a copied backup is not allowed. Once CopyBackup is in progress, the source backup cannot be deleted or cleaned up on expiration until CopyBackup is finished. Values are of the form: `projects//instances//clusters//backups/`.", + "type": "string" } }, "type": "object" @@ -2276,7 +2519,7 @@ "additionalProperties": { "$ref": "Cluster" }, - "description": "Required. The clusters to be created within the instance, mapped by desired cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank. Currently, at most four clusters can be specified.", + "description": "Required. The clusters to be created within the instance, mapped by desired cluster ID, e.g., just `mycluster` rather than `projects/myproject/instances/myinstance/clusters/mycluster`. Fields marked `OutputOnly` must be left blank.", "type": "object" }, "instance": { @@ -2333,7 +2576,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2343,7 +2586,7 @@ "id": "EncryptionConfig", "properties": { "kmsKeyName": { - "description": "Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. 3) All clusters within an instance must use the same CMEK key. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`", + "description": "Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`", "type": "string" } }, @@ -2469,12 +2712,53 @@ }, "type": "object" }, + "HotTablet": { + "description": "A tablet is a defined by a start and end key and is explained in https://cloud.google.com/bigtable/docs/overview#architecture and https://cloud.google.com/bigtable/docs/performance#optimization. A Hot tablet is a tablet that exhibits high average cpu usage during the time interval from start time to end time.", + "id": "HotTablet", + "properties": { + "endKey": { + "description": "Tablet End Key (inclusive).", + "type": "string" + }, + "endTime": { + "description": "Output only. The end time of the hot tablet.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The unique name of the hot tablet. Values are of the form `projects/{project}/instances/{instance}/clusters/{cluster}/hotTablets/[a-zA-Z0-9_-]*`.", + "type": "string" + }, + "nodeCpuUsagePercent": { + "description": "Output only. The average CPU usage spent by a node on this tablet over the start_time to end_time time range. The percentage is the amount of CPU used by the node to serve the tablet, from 0% (tablet was not interacted with) to 100% (the node spent all cycles serving the hot tablet).", + "format": "float", + "readOnly": true, + "type": "number" + }, + "startKey": { + "description": "Tablet Start Key (inclusive).", + "type": "string" + }, + "startTime": { + "description": "Output only. The start time of the hot tablet.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "tableName": { + "description": "Name of the table that contains the tablet. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`.", + "type": "string" + } + }, + "type": "object" + }, "Instance": { "description": "A collection of Bigtable Tables and the resources that serve them. All tables in an instance are served from all Clusters in the instance.", "id": "Instance", "properties": { "createTime": { - "description": "Output only. A server-assigned timestamp representing when this Instance was created. For instances created before this field was added (August 2021), this value is `seconds: 0, nanos: 1`.", + "description": "Output only. A commit timestamp representing when this Instance was created. For instances created before this field was added (August 2021), this value is `seconds: 0, nanos: 1`.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -2487,13 +2771,18 @@ "additionalProperties": { "type": "string" }, - "description": "Required. Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies. They can be used to filter resources and aggregate metrics. * Label keys must be between 1 and 63 characters long and must conform to the regular expression: `\\p{Ll}\\p{Lo}{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression: `[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}`. * No more than 64 labels can be associated with a given resource. * Keys and values must both be under 128 bytes.", + "description": "Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies. They can be used to filter resources and aggregate metrics. * Label keys must be between 1 and 63 characters long and must conform to the regular expression: `\\p{Ll}\\p{Lo}{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression: `[\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}`. * No more than 64 labels can be associated with a given resource. * Keys and values must both be under 128 bytes.", "type": "object" }, "name": { "description": "The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`.", "type": "string" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "state": { "description": "Output only. The current state of the instance.", "enum": [ @@ -2510,7 +2799,7 @@ "type": "string" }, "type": { - "description": "Required. The type of the instance. Defaults to `PRODUCTION`.", + "description": "The type of the instance. Defaults to `PRODUCTION`.", "enum": [ "TYPE_UNSPECIFIED", "PRODUCTION", @@ -2608,6 +2897,24 @@ }, "type": "object" }, + "ListHotTabletsResponse": { + "description": "Response message for BigtableInstanceAdmin.ListHotTablets.", + "id": "ListHotTabletsResponse", + "properties": { + "hotTablets": { + "description": "List of hot tablets in the tables of the requested cluster that fall within the requested time range. Hot tablets are ordered by node cpu usage percent. If there are multiple hot tablets that correspond to the same tablet within a 15-minute interval, only the hot tablet with the highest node cpu usage will be included in the response.", + "items": { + "$ref": "HotTablet" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Set if not all hot tablets could be returned in a single response. Pass this value to `page_token` in another request to get the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListInstancesResponse": { "description": "Response message for BigtableInstanceAdmin.ListInstances.", "id": "ListInstancesResponse", @@ -3006,7 +3313,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3086,9 +3393,13 @@ "additionalProperties": { "$ref": "ColumnFamily" }, - "description": "The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `FULL`", + "description": "The column families configured for this table, mapped by column family ID. Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL`", "type": "object" }, + "deletionProtection": { + "description": "Set to true to make the table protected against data loss. i.e. deleting the following resources through Admin APIs are prohibited: * The table. * The column families in the table. * The instance containing the table. Note one can still delete the data stored in the table through Data APIs.", + "type": "boolean" + }, "granularity": { "description": "Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored in this table. Timestamps not matching the granularity will be rejected. If unspecified at creation time, the value will be set to `MILLIS`. Views: `SCHEMA_VIEW`, `FULL`.", "enum": [ @@ -3102,13 +3413,17 @@ "type": "string" }, "name": { - "description": "The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL`", + "description": "The unique name of the table. Values are of the form `projects/{project}/instances/{instance}/tables/_a-zA-Z0-9*`. Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `STATS_VIEW`, `FULL`", "type": "string" }, "restoreInfo": { "$ref": "RestoreInfo", "description": "Output only. If this table was restored from another data source (e.g. a backup), this field will be populated with information about the restore.", "readOnly": true + }, + "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." } }, "type": "object" @@ -3147,12 +3462,39 @@ }, "type": "object" }, + "TableStats": { + "description": "Approximate statistics related to a table. These statistics are calculated infrequently, while simultaneously, data in the table can change rapidly. Thus the values reported here (e.g. row count) are very likely out-of date, even the instant they are received in this API. Thus, only treat these values as approximate. IMPORTANT: Everything below is approximate, unless otherwise specified.", + "id": "TableStats", + "properties": { + "averageCellsPerColumn": { + "description": "How many cells are present per column (column family, column qualifier) combinations, averaged over all columns in all rows in the table. e.g. A table with 2 rows: * A row with 3 cells in \"family:col\" and 1 cell in \"other:col\" (4 cells / 2 columns) * A row with 1 cell in \"family:col\", 7 cells in \"family:other_col\", and 7 cells in \"other:data\" (15 cells / 3 columns) would report (4 + 15)/(2 + 3) = 3.8 in this field.", + "format": "double", + "type": "number" + }, + "averageColumnsPerRow": { + "description": "How many (column family, column qualifier) combinations are present per row in the table, averaged over all rows in the table. e.g. A table with 2 rows: * A row with cells in \"family:col\" and \"other:col\" (2 distinct columns) * A row with cells in \"family:col\", \"family:other_col\", and \"other:data\" (3 distinct columns) would report (2 + 3)/2 = 2.5 in this field.", + "format": "double", + "type": "number" + }, + "logicalDataBytes": { + "description": "This is roughly how many bytes would be needed to read the entire table (e.g. by streaming all contents out).", + "format": "int64", + "type": "string" + }, + "rowCount": { + "description": "How many rows are in the table.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -3175,6 +3517,33 @@ }, "type": "object" }, + "UndeleteTableMetadata": { + "description": "Metadata type for the operation returned by google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable.", + "id": "UndeleteTableMetadata", + "properties": { + "endTime": { + "description": "If set, the time at which this operation finished or was cancelled.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name of the table being restored.", + "type": "string" + }, + "startTime": { + "description": "The time at which this operation started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "UndeleteTableRequest": { + "description": "Request message for google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable", + "id": "UndeleteTableRequest", + "properties": {}, + "type": "object" + }, "Union": { "description": "A GcRule which deletes cells matching any of the given rules.", "id": "Union", @@ -3236,6 +3605,27 @@ } }, "type": "object" + }, + "UpdateTableMetadata": { + "description": "Metadata type for the operation returned by UpdateTable.", + "id": "UpdateTableMetadata", + "properties": { + "endTime": { + "description": "If set, the time at which this operation finished or was canceled.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name of the table being updated.", + "type": "string" + }, + "startTime": { + "description": "The time at which this operation started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/billingbudgets/v1/billingbudgets-api.json b/etc/api/billingbudgets/v1/billingbudgets-api.json index 27dbdd42d6..d4e7c5af9c 100644 --- a/etc/api/billingbudgets/v1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1/billingbudgets-api.json @@ -270,7 +270,7 @@ } } }, - "revision": "20220227", + "revision": "20230117", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1Budget": { @@ -400,7 +400,7 @@ "type": "object" }, "projects": { - "description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report includes all usage for the billing account, regardless of which project the usage occurred on. Only zero or one project can be specified currently.", + "description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report includes all usage for the billing account, regardless of which project the usage occurred on.", "items": { "type": "string" }, @@ -500,13 +500,13 @@ "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" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json index 17b13e5897..f92f7c9a6a 100644 --- a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json @@ -264,7 +264,7 @@ } } }, - "revision": "20220227", + "revision": "20230117", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": { @@ -431,7 +431,7 @@ "type": "object" }, "projects": { - "description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on. Only zero or one project can be specified currently.", + "description": "Optional. A set of projects of the form `projects/{project}`, specifying that usage from only this set of projects should be included in the budget. If omitted, the report will include all usage for the billing account, regardless of which project the usage occurred on.", "items": { "type": "string" }, @@ -521,13 +521,13 @@ "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" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/binaryauthorization/v1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1/binaryauthorization-api.json index e8c3a20132..e31fc76643 100644 --- a/etc/api/binaryauthorization/v1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1/binaryauthorization-api.json @@ -263,7 +263,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -324,7 +324,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -352,7 +352,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -446,7 +446,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -471,7 +471,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -499,7 +499,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -551,7 +551,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { @@ -644,7 +644,7 @@ "type": "string" }, "etag": { - "description": "Optional. Used to prevent updating the attestor when another request has updated it since it was retrieved.", + "description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the attestor has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", "type": "string" }, "name": { @@ -696,7 +696,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -710,7 +710,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -874,7 +874,7 @@ "type": "string" }, "etag": { - "description": "Optional. Used to prevent updating the policy when another request has updated it since it was retrieved.", + "description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the policy has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", "type": "string" }, "globalPolicyEvaluationMode": { @@ -932,7 +932,7 @@ "properties": { "policy": { "$ref": "IamPolicy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -958,7 +958,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json index e5e5d865aa..5d0bcaf8e1 100644 --- a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json @@ -263,7 +263,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -324,7 +324,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -352,7 +352,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/attestors/[^/]+$", "required": true, @@ -446,7 +446,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -471,7 +471,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -499,7 +499,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/policy$", "required": true, @@ -551,7 +551,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { @@ -644,7 +644,7 @@ "type": "string" }, "etag": { - "description": "Optional. Used to prevent updating the attestor when another request has updated it since it was retrieved.", + "description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the attestor has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", "type": "string" }, "name": { @@ -696,7 +696,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -710,7 +710,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -874,7 +874,7 @@ "type": "string" }, "etag": { - "description": "Optional. Used to prevent updating the policy when another request has updated it since it was retrieved.", + "description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the policy has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", "type": "string" }, "globalPolicyEvaluationMode": { @@ -932,7 +932,7 @@ "properties": { "policy": { "$ref": "IamPolicy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -958,7 +958,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/blogger/v2/blogger-api.json b/etc/api/blogger/v2/blogger-api.json index 7dedbde69a..dc059bfef0 100644 --- a/etc/api/blogger/v2/blogger-api.json +++ b/etc/api/blogger/v2/blogger-api.json @@ -401,7 +401,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { @@ -813,6 +813,10 @@ "description": "The title of this entity. This is the name displayed in the Admin user interface.", "type": "string" }, + "trashed": { + "description": "RFC 3339 date-time when this Page was trashed.", + "type": "string" + }, "updated": { "description": "RFC 3339 date-time when this Page was last updated.", "type": "string" @@ -1021,6 +1025,10 @@ "description": "The title link URL, similar to atom's related link.", "type": "string" }, + "trashed": { + "description": "RFC 3339 date-time when this Post was last trashed.", + "type": "string" + }, "updated": { "description": "RFC 3339 date-time when this Post was last updated.", "type": "string" @@ -1125,6 +1133,6 @@ } }, "servicePath": "", - "title": "Blogger API v3", + "title": "Blogger API", "version": "v2" } \ No newline at end of file diff --git a/etc/api/blogger/v3/blogger-api.json b/etc/api/blogger/v3/blogger-api.json index a68575054a..ae5b60eca0 100644 --- a/etc/api/blogger/v3/blogger-api.json +++ b/etc/api/blogger/v3/blogger-api.json @@ -713,6 +713,11 @@ "location": "path", "required": true, "type": "string" + }, + "useTrash": { + "description": "Move to Trash if possible", + "location": "query", + "type": "boolean" } }, "path": "v3/blogs/{blogId}/pages/{pageId}", @@ -1174,6 +1179,11 @@ "location": "path", "required": true, "type": "string" + }, + "useTrash": { + "description": "Move to Trash if possible", + "location": "query", + "type": "boolean" } }, "path": "v3/blogs/{blogId}/posts/{postId}", @@ -1386,6 +1396,22 @@ "location": "query", "type": "string" }, + "sortOption": { + "default": "DESCENDING", + "description": "Sort direction applied to post list.", + "enum": [ + "SORT_OPTION_UNSPECIFIED", + "DESCENDING", + "ASCENDING" + ], + "enumDescriptions": [ + "The unspecified sort option.", + "The option to sort posts in descending order in time.", + "The option to sort posts in ascending order in time." + ], + "location": "query", + "type": "string" + }, "startDate": { "location": "query", "type": "string" @@ -1684,7 +1710,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { @@ -2096,6 +2122,10 @@ "description": "The title of this entity. This is the name displayed in the Admin user interface.", "type": "string" }, + "trashed": { + "description": "RFC 3339 date-time when this Page was trashed.", + "type": "string" + }, "updated": { "description": "RFC 3339 date-time when this Page was last updated.", "type": "string" @@ -2346,6 +2376,10 @@ "description": "The title link URL, similar to atom's related link.", "type": "string" }, + "trashed": { + "description": "RFC 3339 date-time when this Post was last trashed.", + "type": "string" + }, "updated": { "description": "RFC 3339 date-time when this Post was last updated.", "type": "string" @@ -2515,6 +2549,6 @@ } }, "servicePath": "", - "title": "Blogger API v3", + "title": "Blogger API", "version": "v3" } \ No newline at end of file diff --git a/etc/api/books/v1/books-api.json b/etc/api/books/v1/books-api.json index 4c3a5a95f3..ae39413be4 100644 --- a/etc/api/books/v1/books-api.json +++ b/etc/api/books/v1/books-api.json @@ -2671,7 +2671,7 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://books.googleapis.com/", "schemas": { "Annotation": { @@ -3470,7 +3470,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/calendar/v3/calendar-api.json b/etc/api/calendar/v3/calendar-api.json index 6576dcbbc1..cc838c64c5 100644 --- a/etc/api/calendar/v3/calendar-api.json +++ b/etc/api/calendar/v3/calendar-api.json @@ -827,7 +827,7 @@ ] }, "get": { - "description": "Returns an event.", + "description": "Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.", "httpMethod": "GET", "id": "calendar.events.get", "parameterOrder": [ @@ -1088,7 +1088,7 @@ "type": "string" }, "iCalUID": { - "description": "Specifies event ID in the iCalendar format to be included in the response. Optional.", + "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", "type": "string" }, @@ -1132,7 +1132,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in any field, except for extended properties. Optional.", + "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.", "location": "query", "type": "string" }, @@ -1485,7 +1485,7 @@ "type": "string" }, "iCalUID": { - "description": "Specifies event ID in the iCalendar format to be included in the response. Optional.", + "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", "type": "string" }, @@ -1529,7 +1529,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in any field, except for extended properties. Optional.", + "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.", "location": "query", "type": "string" }, @@ -1723,7 +1723,7 @@ } } }, - "revision": "20220217", + "revision": "20221229", "rootUrl": "https://www.googleapis.com/", "schemas": { "Acl": { @@ -2300,7 +2300,7 @@ "type": "boolean" }, "attachments": { - "description": "File attachments for the event. Currently only Google Drive attachments are supported.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,", + "description": "File attachments for the event.\nIn order to modify attachments the supportsAttachments request parameter should be set to true.\nThere can be at most 25 attachments per event,", "items": { "$ref": "EventAttachment" }, @@ -2478,7 +2478,7 @@ "calendar.events.import" ] }, - "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.", + "description": "Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.\nNote that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.", "type": "string" }, "id": { @@ -2627,7 +2627,7 @@ "type": "string" }, "iconLink": { - "description": "URL link to the attachment's icon. Read-only.", + "description": "URL link to the attachment's icon. This field can only be modified for custom third-party attachments.", "type": "string" }, "mimeType": { @@ -2681,7 +2681,7 @@ "type": "boolean" }, "responseStatus": { - "description": "The attendee's response status. Possible values are: \n- \"needsAction\" - The attendee has not responded to the invitation. \n- \"declined\" - The attendee has declined the invitation. \n- \"tentative\" - The attendee has tentatively accepted the invitation. \n- \"accepted\" - The attendee has accepted the invitation.", + "description": "The attendee's response status. Possible values are: \n- \"needsAction\" - The attendee has not responded to the invitation (recommended for new events). \n- \"declined\" - The attendee has declined the invitation. \n- \"tentative\" - The attendee has tentatively accepted the invitation. \n- \"accepted\" - The attendee has accepted the invitation. Warning: If you add an event using the values declined, tentative, or accepted, attendees with the \"Add invitations to my calendar\" setting set to \"When I respond to invitation in email\" won't see an event on their calendar unless they choose to change their invitation response in the event invitation email.", "type": "string" }, "self": { diff --git a/etc/api/certificatemanager/v1/certificatemanager-api.json b/etc/api/certificatemanager/v1/certificatemanager-api.json index 607667f040..c88c94b5fd 100644 --- a/etc/api/certificatemanager/v1/certificatemanager-api.json +++ b/etc/api/certificatemanager/v1/certificatemanager-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -177,6 +177,139 @@ } }, "resources": { + "certificateIssuanceConfigs": { + "methods": { + "create": { + "description": "Creates a new CertificateIssuanceConfig in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs", + "httpMethod": "POST", + "id": "certificatemanager.projects.locations.certificateIssuanceConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "certificateIssuanceConfigId": { + "description": "Required. A user-provided name of the certificate config.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the certificate issuance config. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/certificateIssuanceConfigs", + "request": { + "$ref": "CertificateIssuanceConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single CertificateIssuanceConfig.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs/{certificateIssuanceConfigsId}", + "httpMethod": "DELETE", + "id": "certificatemanager.projects.locations.certificateIssuanceConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the certificate issuance config to delete. Must be in the format `projects/*/locations/*/certificateIssuanceConfigs/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/certificateIssuanceConfigs/[^/]+$", + "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 CertificateIssuanceConfig.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs/{certificateIssuanceConfigsId}", + "httpMethod": "GET", + "id": "certificatemanager.projects.locations.certificateIssuanceConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the certificate issuance config to describe. Must be in the format `projects/*/locations/*/certificateIssuanceConfigs/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/certificateIssuanceConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "CertificateIssuanceConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists CertificateIssuanceConfigs in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs", + "httpMethod": "GET", + "id": "certificatemanager.projects.locations.certificateIssuanceConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Filter expression to restrict the Certificates Configs returned.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "A list of Certificate Config 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 certificate configs to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListCertificateIssuanceConfigsResponse`. Indicates that this is a continuation of a prior `ListCertificateIssuanceConfigs` 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 certificate should be listed, specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/certificateIssuanceConfigs", + "response": { + "$ref": "ListCertificateIssuanceConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "certificateMaps": { "methods": { "create": { @@ -975,7 +1108,7 @@ } } }, - "revision": "20220214", + "revision": "20230104", "rootUrl": "https://certificatemanager.googleapis.com/", "schemas": { "AuthorizationAttemptInfo": { @@ -983,7 +1116,8 @@ "id": "AuthorizationAttemptInfo", "properties": { "details": { - "description": "Human readable explanation for reaching the state. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use Reason enum.", + "description": "Output only. Human readable explanation for reaching the state. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use FailureReason enum.", + "readOnly": true, "type": "string" }, "domain": { @@ -1008,7 +1142,7 @@ "type": "string" }, "state": { - "description": "State of the domain for managed certificate issuance.", + "description": "Output only. State of the domain for managed certificate issuance.", "enum": [ "STATE_UNSPECIFIED", "AUTHORIZING", @@ -1021,6 +1155,7 @@ "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." ], + "readOnly": true, "type": "string" } }, @@ -1073,7 +1208,7 @@ "type": "string" }, "sanDnsnames": { - "description": "Output only. The list of Subject Alternative Names of dnsName type defined in the certificate (see RFC 5280 4.2.1.6)", + "description": "Output only. The list of Subject Alternative Names of dnsName type defined in the certificate (see RFC 5280 4.2.1.6). Managed certificates that haven't been provisioned yet have this field populated with a value of the managed.domains field.", "items": { "type": "string" }, @@ -1105,6 +1240,90 @@ }, "type": "object" }, + "CertificateAuthorityConfig": { + "description": "The CA that issues the workload certificate. It includes CA address, type, authentication to CA service, etc.", + "id": "CertificateAuthorityConfig", + "properties": { + "certificateAuthorityServiceConfig": { + "$ref": "CertificateAuthorityServiceConfig", + "description": "Defines a CertificateAuthorityServiceConfig." + } + }, + "type": "object" + }, + "CertificateAuthorityServiceConfig": { + "description": "Contains information required to contact CA service.", + "id": "CertificateAuthorityServiceConfig", + "properties": { + "caPool": { + "description": "Required. A CA pool resource used to issue a certificate. The CA pool string has a relative resource path following the form \"projects/{project}/locations/{location}/caPools/{ca_pool}\".", + "type": "string" + } + }, + "type": "object" + }, + "CertificateIssuanceConfig": { + "description": "CertificateIssuanceConfig specifies how to issue and manage a certificate.", + "id": "CertificateIssuanceConfig", + "properties": { + "certificateAuthorityConfig": { + "$ref": "CertificateAuthorityConfig", + "description": "Required. The CA that issues the workload certificate. It includes the CA address, type, authentication to CA service, etc." + }, + "createTime": { + "description": "Output only. The creation timestamp of a CertificateIssuanceConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "One or more paragraphs of text description of a CertificateIssuanceConfig.", + "type": "string" + }, + "keyAlgorithm": { + "description": "Required. The key algorithm to use when generating the private key.", + "enum": [ + "KEY_ALGORITHM_UNSPECIFIED", + "RSA_2048", + "ECDSA_P256" + ], + "enumDescriptions": [ + "Unspecified key algorithm.", + "Specifies RSA with a 2048-bit modulus.", + "Specifies ECDSA with curve P256." + ], + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of labels associated with a CertificateIssuanceConfig.", + "type": "object" + }, + "lifetime": { + "description": "Required. Workload certificate lifetime requested.", + "format": "google-duration", + "type": "string" + }, + "name": { + "description": "A user-defined name of the certificate issuance config. CertificateIssuanceConfig names must be unique globally and match pattern `projects/*/locations/*/certificateIssuanceConfigs/*`.", + "type": "string" + }, + "rotationWindowPercentage": { + "description": "Required. Specifies the percentage of elapsed time of the certificate lifetime to wait before renewing the certificate. Must be a number between 1-99, inclusive.", + "format": "int32", + "type": "integer" + }, + "updateTime": { + "description": "Output only. The last update timestamp of a CertificateIssuanceConfig.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CertificateMap": { "description": "Defines a collection of certificate configurations.", "id": "CertificateMap", @@ -1120,7 +1339,7 @@ "type": "string" }, "gclbTargets": { - "description": "Output only. A list of GCLB targets which use this Certificate Map.", + "description": "Output only. A list of GCLB targets that use this Certificate Map. A Target Proxy is only present on this list if it's attached to a Forwarding Rule.", "items": { "$ref": "GclbTarget" }, @@ -1169,7 +1388,7 @@ "type": "string" }, "hostname": { - "description": "A Hostname (FQDN, e.g. example.com) or a wildcard hostname expression (*.example.com) for a set of hostnames with common suffix. Used as Server Name Indication (SNI) for selecting a proper certificate.", + "description": "A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression (`*.example.com`) for a set of hostnames with common suffix. Used as Server Name Indication (SNI) for selecting a proper certificate.", "type": "string" }, "labels": { @@ -1239,7 +1458,7 @@ "readOnly": true }, "domain": { - "description": "Required. Immutable. A domain which is being authorized. A DnsAuthorization resource covers a single domain and its wildcard, e.g. authorization for \"example.com\" can be used to issue certificates for \"example.com\" and \"*.example.com\".", + "description": "Required. Immutable. A domain that is being authorized. A DnsAuthorization resource covers a single domain and its wildcard, e.g. authorization for `example.com` can be used to issue certificates for `example.com` and `*.example.com`.", "type": "string" }, "labels": { @@ -1272,7 +1491,7 @@ "type": "string" }, "name": { - "description": "Output only. Fully qualified name of the DNS Resource Record. e.g. \"_acme-challenge.example.com.\"", + "description": "Output only. Fully qualified name of the DNS Resource Record. e.g. `_acme-challenge.example.com`", "readOnly": true, "type": "string" }, @@ -1285,28 +1504,31 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, "GclbTarget": { - "description": "Describes a Target Proxy which uses this Certificate Map.", + "description": "Describes a Target Proxy that uses this Certificate Map.", "id": "GclbTarget", "properties": { "ipConfigs": { - "description": "IP configurations for this Target Proxy where the Certificate Map is serving.", + "description": "Output only. IP configurations for this Target Proxy where the Certificate Map is serving.", "items": { "$ref": "IpConfig" }, + "readOnly": true, "type": "array" }, "targetHttpsProxy": { - "description": "A name must be in the format `projects/*/locations/*/targetHttpsProxies/*`.", + "description": "Output only. This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`.", + "readOnly": true, "type": "string" }, "targetSslProxy": { - "description": "A name must be in the format `projects/*/locations/*/targetSslProxies/*`.", + "description": "Output only. This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetSslProxies/*`.", + "readOnly": true, "type": "string" } }, @@ -1317,15 +1539,42 @@ "id": "IpConfig", "properties": { "ipAddress": { - "description": "An external IP address.", + "description": "Output only. An external IP address.", + "readOnly": true, "type": "string" }, "ports": { - "description": "Ports.", + "description": "Output only. Ports.", "items": { "format": "uint32", "type": "integer" }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "ListCertificateIssuanceConfigsResponse": { + "description": "Response for the `ListCertificateIssuanceConfigs` method.", + "id": "ListCertificateIssuanceConfigsResponse", + "properties": { + "certificateIssuanceConfigs": { + "description": "A list of certificate configs for the parent resource.", + "items": { + "$ref": "CertificateIssuanceConfig" + }, + "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" } }, @@ -1527,9 +1776,14 @@ }, "type": "array" }, + "issuanceConfig": { + "description": "Immutable. The resource name for a CertificateIssuanceConfig used to configure private PKI certificates in the format `projects/*/locations/*/certificateIssuanceConfigs/*`. If this field is not set, the certificates will instead be publicly signed as documented at https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa.", + "type": "string" + }, "provisioningIssue": { "$ref": "ProvisioningIssue", - "description": "Information about issues with provisioning a Managed Certificate." + "description": "Output only. Information about issues with provisioning a Managed Certificate.", + "readOnly": true }, "state": { "description": "Output only. State of the managed certificate resource.", @@ -1628,11 +1882,12 @@ "id": "ProvisioningIssue", "properties": { "details": { - "description": "Human readable explanation about the issue. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use Reason enum.", + "description": "Output only. Human readable explanation about the issue. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use Reason enum.", + "readOnly": true, "type": "string" }, "reason": { - "description": "Reason for provisioning failures.", + "description": "Output only. Reason for provisioning failures.", "enum": [ "REASON_UNSPECIFIED", "AUTHORIZATION_ISSUE", @@ -1643,6 +1898,7 @@ "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." ], + "readOnly": true, "type": "string" } }, diff --git a/etc/api/chat/v1/chat-api.json b/etc/api/chat/v1/chat-api.json index 11ddd1fe80..a2714df7c5 100644 --- a/etc/api/chat/v1/chat-api.json +++ b/etc/api/chat/v1/chat-api.json @@ -1,9 +1,36 @@ { + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/chat.memberships": { + "description": "View, add, and remove members from conversations in Google Chat" + }, + "https://www.googleapis.com/auth/chat.memberships.readonly": { + "description": "View members in Google Chat conversations." + }, + "https://www.googleapis.com/auth/chat.messages": { + "description": "View, compose, send, update, and delete messages, and add, view, and delete reactions to messages." + }, + "https://www.googleapis.com/auth/chat.messages.create": { + "description": "Compose and send 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" + }, + "https://www.googleapis.com/auth/chat.spaces.readonly": { + "description": "View chat and spaces in Google Chat" + } + } + } + }, "basePath": "", "baseUrl": "https://chat.googleapis.com/", "batchPath": "batch", "canonicalName": "Hangouts Chat", - "description": "Enables bots to fetch information and perform actions in Google Chat. Authentication using a service account is a prerequisite for using the Google Chat REST API.", + "description": "Enables apps to fetch information and perform actions in Google Chat. Authentication is a prerequisite for using the Google Chat REST API.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/hangouts/chat", "fullyEncodeReservedExpansion": true, @@ -96,121 +123,6 @@ }, "protocol": "rest", "resources": { - "dms": { - "methods": { - "messages": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/dms/{dmsId}/messages", - "httpMethod": "POST", - "id": "chat.dms.messages", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^dms/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/messages", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - }, - "webhooks": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/dms/{dmsId}/webhooks", - "httpMethod": "POST", - "id": "chat.dms.webhooks", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^dms/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/webhooks", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - } - }, - "resources": { - "conversations": { - "methods": { - "messages": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/dms/{dmsId}/conversations/{conversationsId}/messages", - "httpMethod": "POST", - "id": "chat.dms.conversations.messages", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^dms/[^/]+/conversations/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/messages", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - } - } - } - } - }, "media": { "methods": { "download": { @@ -234,129 +146,18 @@ "response": { "$ref": "Media" }, + "scopes": [ + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.readonly" + ], "supportsMediaDownload": true } } }, - "rooms": { - "methods": { - "messages": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/rooms/{roomsId}/messages", - "httpMethod": "POST", - "id": "chat.rooms.messages", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^rooms/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/messages", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - }, - "webhooks": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/rooms/{roomsId}/webhooks", - "httpMethod": "POST", - "id": "chat.rooms.webhooks", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^rooms/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/webhooks", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - } - }, - "resources": { - "conversations": { - "methods": { - "messages": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/rooms/{roomsId}/conversations/{conversationsId}/messages", - "httpMethod": "POST", - "id": "chat.rooms.conversations.messages", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^rooms/[^/]+/conversations/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/messages", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } - } - } - } - } - }, "spaces": { "methods": { "get": { - "description": "Returns a space.", + "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.", "flatPath": "v1/spaces/{spacesId}", "httpMethod": "GET", "id": "chat.spaces.get", @@ -365,7 +166,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the space, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAAA", + "description": "Required. Resource name of the space, in the form \"spaces/*\". Format: spaces/{space}", "location": "path", "pattern": "^spaces/[^/]+$", "required": true, @@ -375,23 +176,27 @@ "path": "v1/{+name}", "response": { "$ref": "Space" - } + }, + "scopes": [ + "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.", + "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.", "flatPath": "v1/spaces", "httpMethod": "GET", "id": "chat.spaces.list", "parameterOrder": [], "parameters": { "pageSize": { - "description": "Requested page size. The value is capped at 1000. Server may return fewer results than requested. If unspecified, server will default to 100.", + "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.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A token identifying a page of results the server should return.", + "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.", "location": "query", "type": "string" } @@ -399,49 +204,18 @@ "path": "v1/spaces", "response": { "$ref": "ListSpacesResponse" - } - }, - "webhooks": { - "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", - "flatPath": "v1/spaces/{spacesId}/webhooks", - "httpMethod": "POST", - "id": "chat.spaces.webhooks", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", - "location": "path", - "pattern": "^spaces/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.", - "location": "query", - "type": "string" - }, - "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", - "location": "query", - "type": "string" - } }, - "path": "v1/{+parent}/webhooks", - "request": { - "$ref": "Message" - }, - "response": { - "$ref": "Message" - } + "scopes": [ + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] } }, "resources": { "members": { "methods": { "get": { - "description": "Returns a membership.", + "description": "Returns a membership. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", "flatPath": "v1/spaces/{spacesId}/members/{membersId}", "httpMethod": "GET", "id": "chat.spaces.members.get", @@ -450,7 +224,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the membership to be retrieved, in the form \"spaces/*/members/*\". Example: spaces/AAAAAAAAAAAA/members/111111111111111111111", + "description": "Required. Resource name of the membership to retrieve. Format: spaces/{space}/members/{member}", "location": "path", "pattern": "^spaces/[^/]+/members/[^/]+$", "required": true, @@ -460,10 +234,14 @@ "path": "v1/{+name}", "response": { "$ref": "Membership" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly" + ] }, "list": { - "description": "Lists human memberships in a space.", + "description": "Lists memberships in a space. Requires [authentication](https://developers.google.com/chat/api/guides/auth/). Fully supports [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts). Supports [user authentication](https://developers.google.com/chat/api/guides/auth/users) as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. [User authentication](https://developers.google.com/chat/api/guides/auth/users) requires the `chat.memberships` or `chat.memberships.readonly` authorization scope.", "flatPath": "v1/spaces/{spacesId}/members", "httpMethod": "GET", "id": "chat.spaces.members.list", @@ -472,18 +250,18 @@ ], "parameters": { "pageSize": { - "description": "Requested page size. The value is capped at 1000. Server may return fewer results than requested. If unspecified, server will default to 100.", + "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.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A token identifying a page of results the server should return.", + "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.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The resource name of the space for which membership list is to be fetched, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAAA", + "description": "Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space}", "location": "path", "pattern": "^spaces/[^/]+$", "required": true, @@ -493,14 +271,18 @@ "path": "v1/{+parent}/members", "response": { "$ref": "ListMembershipsResponse" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly" + ] } } }, "messages": { "methods": { "create": { - "description": "Creates a message.", + "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.", "flatPath": "v1/spaces/{spacesId}/messages", "httpMethod": "POST", "id": "chat.spaces.messages.create", @@ -508,8 +290,28 @@ "parent" ], "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).", + "location": "query", + "type": "string" + }, + "messageReplyOption": { + "description": "Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces.", + "enum": [ + "MESSAGE_REPLY_OPTION_UNSPECIFIED", + "REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD", + "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." + ], + "location": "query", + "type": "string" + }, "parent": { - "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", + "description": "Required. The resource name of the space in which to create a message. Format: spaces/{space}", "location": "path", "pattern": "^spaces/[^/]+$", "required": true, @@ -521,7 +323,7 @@ "type": "string" }, "threadKey": { - "description": "Optional. Opaque thread identifier string that can be specified to group messages into a single thread. If this is the first message with a given thread identifier, a new thread is created. Subsequent messages with the same thread identifier will be posted into the same thread. This relieves bots and webhooks from having to store the Google Chat thread ID of a thread (created earlier by them) to post further updates to it. Has no effect if thread field, corresponding to an existing thread, is set in message.", + "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).", "location": "query", "type": "string" } @@ -532,10 +334,14 @@ }, "response": { "$ref": "Message" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.create" + ] }, "delete": { - "description": "Deletes a message.", + "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.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "DELETE", "id": "chat.spaces.messages.delete", @@ -554,10 +360,13 @@ "path": "v1/{+name}", "response": { "$ref": "Empty" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.messages" + ] }, "get": { - "description": "Returns a message.", + "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.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "GET", "id": "chat.spaces.messages.get", @@ -566,7 +375,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the message to be retrieved, in the form \"spaces/*/messages/*\". Example: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB", + "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).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, @@ -576,17 +385,26 @@ "path": "v1/{+name}", "response": { "$ref": "Message" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.readonly" + ] }, - "update": { - "description": "Updates a message.", + "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.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", - "httpMethod": "PUT", - "id": "chat.spaces.messages.update", + "httpMethod": "PATCH", + "id": "chat.spaces.messages.patch", "parameterOrder": [ "name" ], "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.", + "location": "query", + "type": "boolean" + }, "name": { "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", "location": "path", @@ -595,7 +413,7 @@ "type": "string" }, "updateMask": { - "description": "Required. The field paths to be updated, comma separated if there are multiple. Currently supported field paths: * text * cards * attachment", + "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 ", "format": "google-fieldmask", "location": "query", "type": "string" @@ -607,14 +425,56 @@ }, "response": { "$ref": "Message" - } + }, + "scopes": [ + "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.", + "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", + "httpMethod": "PUT", + "id": "chat.spaces.messages.update", + "parameterOrder": [ + "name" + ], + "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.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", + "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 ", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Message" + }, + "response": { + "$ref": "Message" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.messages" + ] } }, "resources": { "attachments": { "methods": { "get": { - "description": "Gets the metadata of a message attachment. The attachment data is fetched using the media API.", + "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).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/attachments/{attachmentsId}", "httpMethod": "GET", "id": "chat.spaces.messages.attachments.get", @@ -623,7 +483,7 @@ ], "parameters": { "name": { - "description": "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, @@ -642,7 +502,7 @@ } } }, - "revision": "20220302", + "revision": "20230115", "rootUrl": "https://chat.googleapis.com/", "schemas": { "ActionParameter": { @@ -661,15 +521,15 @@ "type": "object" }, "ActionResponse": { - "description": "Parameters that a bot can use to configure how it's response is posted.", + "description": "Parameters that a Chat app can use to configure how it's response is posted.", "id": "ActionResponse", "properties": { "dialogAction": { "$ref": "DialogAction", - "description": "A response to an event related to a [dialog](https://developers.google.com/chat/how-tos/bot-dialogs). Must be accompanied by `ResponseType.Dialog`." + "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`." }, "type": { - "description": "The type of bot response.", + "description": "Input only. The type of Chat app response.", "enum": [ "TYPE_UNSPECIFIED", "NEW_MESSAGE", @@ -681,22 +541,22 @@ "enumDescriptions": [ "Default type; will be handled as NEW_MESSAGE.", "Post as a new message in the topic.", - "Update the bot's message. This is only permitted on a CARD_CLICKED event where the message sender type is BOT.", + "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/bot-dialogs)." + "Presents a [dialog](https://developers.google.com/chat/how-tos/dialogs)." ], "type": "string" }, "url": { - "description": "URL for users to auth or config. (Only for REQUEST_CONFIG response types.)", + "description": "Input only. URL for users to auth or config. (Only for REQUEST_CONFIG response types.)", "type": "string" } }, "type": "object" }, "ActionStatus": { - "description": "Represents the status of a request.", + "description": "Represents the status for a request to either invoke or submit a [dialog](https://developers.google.com/chat/how-tos/dialogs).", "id": "ActionStatus", "properties": { "statusCode": { @@ -721,7 +581,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -804,7 +664,8 @@ "type": "string" }, "downloadUri": { - "description": "Output only. The download URL which should be used to allow a human user to download the attachment. Bots 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 should not use this URL to download attachment content.", + "readOnly": true, "type": "string" }, "driveDataRef": { @@ -830,14 +691,14 @@ "type": "string" }, "thumbnailUri": { - "description": "Output only. The thumbnail URL which should be used to preview the attachment to a human user. Bots 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 should not use this URL to download attachment content.", + "readOnly": true, "type": "string" } }, "type": "object" }, "AttachmentDataRef": { - "description": "A reference to the data of an attachment.", "id": "AttachmentDataRef", "properties": { "resourceName": { @@ -892,7 +753,7 @@ "type": "object" }, "CardAction": { - "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.", + "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": "CardAction", "properties": { "actionLabel": { @@ -938,6 +799,40 @@ }, "type": "object" }, + "CardWithId": { + "description": "Widgets for Chat apps to specify.", + "id": "CardWithId", + "properties": { + "card": { + "$ref": "GoogleAppsCardV1Card", + "description": "Card proto that allows Chat apps to specify UI elements and editable widgets." + }, + "cardId": { + "description": "Required for `cardsV2` messages. Chat app-specified identifier for this widget. Scoped within a message.", + "type": "string" + } + }, + "type": "object" + }, + "ChatAppLogEntry": { + "description": "JSON payload of error messages. If the Cloud Logging API is enabled, these error messages are logged to [Google Cloud Logging](https://cloud.google.com/logging/docs).", + "id": "ChatAppLogEntry", + "properties": { + "deployment": { + "description": "The deployment that caused the error. For Chat apps built in Apps Script, this is the deployment ID defined by Apps Script.", + "type": "string" + }, + "deploymentFunction": { + "description": "The unencrypted `callback_method` name that was running when the error was encountered.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error code and message." + } + }, + "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", @@ -966,14 +861,14 @@ "type": "object" }, "CommonEventObject": { - "description": "Represents information about the user's client, such as locale, host app, and platform. For Chat apps, `CommonEventObject` includes data submitted by users interacting with cards, like data entered in [dialogs](https://developers.google.com/chat/how-tos/bot-dialogs).", + "description": "Represents information about the user's client, such as locale, host app, and platform. For Chat apps, `CommonEventObject` includes data submitted by users interacting with cards, like data entered in [dialogs](https://developers.google.com/chat/how-tos/dialogs).", "id": "CommonEventObject", "properties": { "formInputs": { "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/bot-dialogs).", + "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).", "type": "object" }, "hostApp": { @@ -985,6 +880,7 @@ "DRIVE", "DEMO", "DOCS", + "MEET", "SHEETS", "SLIDES", "DRAWINGS", @@ -997,6 +893,7 @@ "The add-on launches from Google Drive.", "Not used.", "The add-on launches from Google Docs.", + "The add-on launches from Google Meet.", "The add-on launches from Google Sheets.", "The add-on launches from Google Slides.", "The add-on launches from Google Drawings.", @@ -1084,14 +981,14 @@ }, "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/bot-dialogs), like data entered on a card." + "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 bot 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. See the [Authorizing access to 3p services guide](/chat/how-tos/auth-3p) for more information.", "type": "string" }, "dialogEventType": { - "description": "The type of [dialog](https://developers.google.com/chat/how-tos/bot-dialogs) event received.", + "description": "The type of [dialog](https://developers.google.com/chat/how-tos/dialogs) event received.", "enum": [ "TYPE_UNSPECIFIED", "REQUEST_DIALOG", @@ -1100,9 +997,9 @@ ], "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/bot-dialogs).", - "A card click event from a [dialog](https://developers.google.com/chat/how-tos/bot-dialogs).", - "The [dialog](https://developers.google.com/chat/how-tos/bot-dialogs) was cancelled." + "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." ], "type": "string" }, @@ -1112,7 +1009,7 @@ "type": "string" }, "isDialogEvent": { - "description": "True when the event is related to [dialogs](https://developers.google.com/chat/how-tos/bot-dialogs).", + "description": "True when the event is related to [dialogs](https://developers.google.com/chat/how-tos/dialogs).", "type": "boolean" }, "message": { @@ -1124,11 +1021,11 @@ "description": "The space in which the event occurred." }, "threadKey": { - "description": "The bot-defined key for the thread related to the event. See the thread_key field of the `spaces.message.create` request for more information.", + "description": "The Chat app-defined key for the thread related to the event. See [`spaces.messages.thread.threadKey`](/chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key) for more information.", "type": "string" }, "token": { - "description": "A secret value that bots can use to verify if a request is from Google. The token is randomly generated by Google, remains static, and can be obtained from the Google Chat API configuration page in the Cloud Console. Developers can revoke/regenerate it if needed from the same page.", + "description": "A secret value that legacy Chat apps can use to verify if a request is from Google. Google randomly generates the token, and its value remains static. You can obtain, revoke, or regenerate the token from the [Chat API configuration page](https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat) in the Google Cloud Console. Modern Chat apps don't use this field. It is absent from API responses and the [Chat API configuration page](https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat).", "type": "string" }, "type": { @@ -1143,9 +1040,9 @@ "enumDescriptions": [ "Default value for the enum. DO NOT USE.", "A message was sent in a space.", - "The bot was added to a space.", - "The bot was removed from a space.", - "The bot's interactive card was clicked." + "The Chat app was added to a space.", + "The Chat app was removed from a space.", + "The Chat app's interactive card was clicked." ], "type": "string" }, @@ -1162,22 +1059,22 @@ "properties": { "body": { "$ref": "GoogleAppsCardV1Card", - "description": "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 do not support the following card entities: `DateTimePicker`, `OnChangeAction`." } }, "type": "object" }, "DialogAction": { - "description": "Contains a [dialog](https://developers.google.com/chat/how-tos/bot-dialogs) and request status code.", + "description": "Contains a [dialog](https://developers.google.com/chat/how-tos/dialogs) and request status code.", "id": "DialogAction", "properties": { "actionStatus": { "$ref": "ActionStatus", - "description": "Status for a request to either invoke or submit a [dialog](https://developers.google.com/chat/how-tos/bot-dialogs). Displays a status and message to users, if necessary. For example, in case of an error or success." + "description": "Input only. Status for a request to either invoke or submit a [dialog](https://developers.google.com/chat/how-tos/dialogs). Displays a status and message to users, if necessary. For example, in case of an error or success." }, "dialog": { "$ref": "Dialog", - "description": "[Dialog](https://developers.google.com/chat/how-tos/bot-dialogs) for the request." + "description": "Input only. [Dialog](https://developers.google.com/chat/how-tos/dialogs) for the request." } }, "type": "object" @@ -1193,27 +1090,8 @@ }, "type": "object" }, - "DynamiteIntegrationLogEntry": { - "description": "JSON payload of error messages. If the Cloud Logging API is enabled, these error messages are logged to [Google Cloud Logging](https://cloud.google.com/logging/docs).", - "id": "DynamiteIntegrationLogEntry", - "properties": { - "deployment": { - "description": "The deployment that caused the error. For Chat bots built in Apps Script, this is the deployment ID defined by Apps Script.", - "type": "string" - }, - "deploymentFunction": { - "description": "The unencrypted `callback_method` name that was running when the error was encountered.", - "type": "string" - }, - "error": { - "$ref": "Status", - "description": "The error code and message." - } - }, - "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1223,7 +1101,7 @@ "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 bot 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. The same method name can be used for several elements that trigger a common behavior if desired.", "type": "string" }, "parameters": { @@ -1241,7 +1119,19 @@ "id": "GoogleAppsCardV1Action", "properties": { "function": { - "description": "Apps Script function to invoke when the containing element is clicked/activated.", + "description": "A custom function to invoke when the containing element is clicked or othrwise activated. For example usage, see [Create interactive cards](https://developers.google.com/chat/how-tos/cards-onclick).", + "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.", + "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." + ], "type": "string" }, "loadIndicator": { @@ -1264,14 +1154,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](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](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.", + "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.", "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.", + "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).", "id": "GoogleAppsCardV1ActionParameter", "properties": { "key": { @@ -1286,7 +1176,7 @@ "type": "object" }, "GoogleAppsCardV1BorderStyle": { - "description": "Represents the complete border style applied to widgets.", + "description": "Represents the complete border style applied to items in a widget.", "id": "GoogleAppsCardV1BorderStyle", "properties": { "cornerRadius": { @@ -1307,7 +1197,7 @@ ], "enumDescriptions": [ "No value specified.", - "No border.", + "Default value. No border.", "Outline." ], "type": "string" @@ -1316,31 +1206,31 @@ "type": "object" }, "GoogleAppsCardV1Button": { - "description": "A button. Can be a text button or an image button.", + "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.", "id": "GoogleAppsCardV1Button", "properties": { "altText": { - "description": "The alternative text used for accessibility. Has no effect when an icon is set; use `icon.alt_text` instead.", + "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.", "type": "string" }, "color": { "$ref": "Color", - "description": "If set, the button is filled with a solid background." + "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 } ```" }, "disabled": { - "description": "If `true`, the button is displayed in a disabled state and doesn't respond to user actions.", + "description": "If `true`, the button is displayed in an inactive state and doesn't respond to user actions.", "type": "boolean" }, "icon": { "$ref": "GoogleAppsCardV1Icon", - "description": "The icon image." + "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." }, "onClick": { "$ref": "GoogleAppsCardV1OnClick", - "description": "The action to perform when the button is clicked." + "description": "The action to perform when the button is clicked, such as opening a hyperlink or running a custom function." }, "text": { - "description": "The text of the button.", + "description": "The text displayed inside the button.", "type": "string" } }, @@ -1361,48 +1251,48 @@ "type": "object" }, "GoogleAppsCardV1Card": { - "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\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageStyle\": \"ImageStyle.AVATAR\", \"imageUrl\": \"https://example.com/sasha.png\", \"imageAltText\": \"Avatar for Sasha\" }, \"sections\" : [ { \"header\": \"Contact Info\", \"widgets\": [ { \"decorated_text\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"content\": \"sasha@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\" } ```", + "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\", } ], } } }, ], } }, ], }, ], }, } ], } ```", "id": "GoogleAppsCardV1Card", "properties": { "cardActions": { - "description": "The card's actions. Actions are added to the card's generated toolbar menu. 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. 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\" } } } ] ```", "items": { "$ref": "GoogleAppsCardV1CardAction" }, "type": "array" }, "displayStyle": { - "description": "The display style for `peekCardHeader`.", + "description": "In Google Workspace add-ons, sets the display properties of the `peekCardHeader`. Not supported by Chat apps.", "enum": [ "DISPLAY_STYLE_UNSPECIFIED", "PEEK", "REPLACE" ], "enumDescriptions": [ - "Default value. Do not use.", + "Do not use.", "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.", - "The card is shown by replacing the view of the top card in the card stack." + "Default value. The card is shown by replacing the view of the top card in the card stack." ], "type": "string" }, "fixedFooter": { "$ref": "GoogleAppsCardV1CardFixedFooter", - "description": "The fixed footer shown at the bottom of this card." + "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)." }, "header": { "$ref": "GoogleAppsCardV1CardHeader", - "description": "The header of the card. A header usually contains a title and an image." + "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.", + "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.", "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." + "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." }, "sections": { - "description": "Sections are 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.", "items": { "$ref": "GoogleAppsCardV1Section" }, @@ -1412,7 +1302,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.", + "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.", "id": "GoogleAppsCardV1CardAction", "properties": { "actionLabel": { @@ -1427,7 +1317,7 @@ "type": "object" }, "GoogleAppsCardV1CardFixedFooter": { - "description": "A persistent (sticky) footer that is added to the bottom of the card.", + "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).", "id": "GoogleAppsCardV1CardFixedFooter", "properties": { "primaryButton": { @@ -1450,23 +1340,23 @@ "type": "string" }, "imageType": { - "description": "The image's type.", + "description": "The shape used to crop the image.", "enum": [ "SQUARE", "CIRCLE" ], "enumDescriptions": [ - "Applies no cropping to the image.", - "Applies a circular mask to the image." + "Default value. Applies a square mask to the image. For example, a 4x3 image becomes 3x3.", + "Applies a circular mask to the image. For example, a 4x3 image becomes a circle with a diameter of 3." ], "type": "string" }, "imageUrl": { - "description": "The URL of the image in the card header.", + "description": "The HTTPS URL of the image in the card header.", "type": "string" }, "subtitle": { - "description": "The subtitle of the card header.", + "description": "The subtitle of the card header. If specified, appears on its own line below the `title`.", "type": "string" }, "title": { @@ -1477,20 +1367,20 @@ "type": "object" }, "GoogleAppsCardV1DateTimePicker": { - "description": "The widget that lets users to specify a date and time. Not supported by Google Chat apps.", + "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.", "id": "GoogleAppsCardV1DateTimePicker", "properties": { "label": { - "description": "The label for the field that displays to the user.", + "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.", "type": "string" }, "name": { - "description": "The name of the text input that's used in `formInput`, and uniquely identifies this input.", + "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).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "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." + "description": "Triggered when the user clicks **Save** or **Clear** from the datetime picker 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.", @@ -1498,7 +1388,7 @@ "type": "integer" }, "type": { - "description": "The type of the date/time picker.", + "description": "What kind of date and time input the datetime picker supports.", "enum": [ "DATE_AND_TIME", "DATE_ONLY", @@ -1512,7 +1402,7 @@ "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.", + "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`.", "format": "int64", "type": "string" } @@ -1524,7 +1414,7 @@ "id": "GoogleAppsCardV1DecoratedText", "properties": { "bottomLabel": { - "description": "The formatted text label that shows below the main text.", + "description": "The text that appears below `text`. Always truncates. Supports simple formatting. See Text formatting for formatting details.", "type": "string" }, "button": { @@ -1533,15 +1423,15 @@ }, "endIcon": { "$ref": "GoogleAppsCardV1Icon", - "description": "An icon displayed after the text." + "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." }, "icon": { "$ref": "GoogleAppsCardV1Icon", - "description": "Deprecated in favor of start_icon." + "description": "Deprecated in favor of `startIcon`." }, "onClick": { "$ref": "GoogleAppsCardV1OnClick", - "description": "Only the top and bottom label and content region are clickable." + "description": "When users click on `topLabel` or `bottomLabel`, this action triggers." }, "startIcon": { "$ref": "GoogleAppsCardV1Icon", @@ -1549,31 +1439,31 @@ }, "switchControl": { "$ref": "GoogleAppsCardV1SwitchControl", - "description": "A switch widget can be clicked to change its state or trigger an action." + "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." }, "text": { - "description": "Required. The main widget formatted text. See Text formatting for details.", + "description": "Required. The primary text. Supports simple formatting. See Text formatting for formatting details.", "type": "string" }, "topLabel": { - "description": "The formatted text label that shows above the main text.", + "description": "The text that appears above `text`. Always truncates. Supports simple formatting. See Text formatting for formatting details.", "type": "string" }, "wrapText": { - "description": "The wrap text setting. If `true`, the text is wrapped and displayed in multiline. Otherwise, the text is truncated.", + "description": "The wrap text setting. If `true`, the text wraps and displays on multiple lines. Otherwise, the text is truncated. Only applies to `text`, not `topLabel` and `bottomLabel`.", "type": "boolean" } }, "type": "object" }, "GoogleAppsCardV1Divider": { - "description": "A divider that appears in between widgets.", + "description": "Displays a divider between widgets, a horizontal line. For example, the following JSON creates a divider: ``` \"divider\": { } ```", "id": "GoogleAppsCardV1Divider", "properties": {}, "type": "object" }, "GoogleAppsCardV1Grid": { - "description": "Represents a Grid widget that displays items in a configurable grid layout.", + "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\" } } } ```", "id": "GoogleAppsCardV1Grid", "properties": { "borderStyle": { @@ -1633,22 +1523,6 @@ "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" @@ -1657,14 +1531,15 @@ "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.", "id": "GoogleAppsCardV1Icon", "properties": { "altText": { - "description": "The description of the icon, used for accessibility. The default value is provided if you don't specify one.", + "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\".", "type": "string" }, "iconUrl": { - "description": "The icon specified by a URL.", + "description": "Display a custom icon hosted at an HTTPS URL. For example: ``` \"iconUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\" ``` Supported file types include `.png` and `.jpg`.", "type": "string" }, "imageType": { @@ -1674,13 +1549,13 @@ "CIRCLE" ], "enumDescriptions": [ - "Applies no cropping to the image.", - "Applies a circular mask to the image." + "Default value. Applies a square mask to the image. For example, a 4x3 image becomes 3x3.", + "Applies a circular mask to the image. For example, a 4x3 image becomes a circle with a diameter of 3." ], "type": "string" }, "knownIcon": { - "description": "The icon specified by the string name of a list of known icons.", + "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).", "type": "string" } }, @@ -1695,12 +1570,12 @@ "type": "string" }, "imageUrl": { - "description": "An image URL.", + "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": "The action triggered by an `onClick` event." + "description": "When a user clicks on the image, the click triggers this action." } }, "type": "object" @@ -1729,11 +1604,11 @@ "type": "object" }, "GoogleAppsCardV1ImageCropStyle": { - "description": "Represents the crop style applied to an image.", + "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 } ```", "id": "GoogleAppsCardV1ImageCropStyle", "properties": { "aspectRatio": { - "description": "The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`.", + "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 } ```", "format": "double", "type": "number" }, @@ -1747,10 +1622,10 @@ "RECTANGLE_4_3" ], "enumDescriptions": [ - "No value specified.", - "Applies a square crop.", + "No value specified. Do not use.", + "Default value. Applies a square crop.", "Applies a circular crop.", - "Applies a rectangular crop with a custom aspect ratio.", + "Applies a rectangular crop with a custom aspect ratio. Set the custom aspect ratio with `aspectRatio`.", "Applies a rectangular crop with a 4:3 aspect ratio." ], "type": "string" @@ -1759,7 +1634,7 @@ "type": "object" }, "GoogleAppsCardV1OnClick": { - "description": "Represents the response to an `onClick` event.", + "description": "Represents how to respond when users click an interactive element on a card, such as a button.", "id": "GoogleAppsCardV1OnClick", "properties": { "action": { @@ -1768,7 +1643,7 @@ }, "card": { "$ref": "GoogleAppsCardV1Card", - "description": "A new card is pushed to the card stack after clicking if specified." + "description": "A new card is pushed to the card stack after clicking if specified. Supported by Google Workspace Add-ons, but not Chat apps." }, "openDynamicLinkAction": { "$ref": "GoogleAppsCardV1Action", @@ -1792,8 +1667,8 @@ "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." + "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." ], "type": "string" }, @@ -1817,24 +1692,24 @@ "type": "object" }, "GoogleAppsCardV1Section": { - "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.", + "description": "A section contains a collection of widgets that are rendered vertically in the order that they are specified.", "id": "GoogleAppsCardV1Section", "properties": { "collapsible": { - "description": "Indicates whether this section is collapsible. If a section is collapsible, the description must be given.", + "description": "Indicates whether this section is collapsible. Collapsible sections hide some or all widgets, but users can expand the section to reveal the hidden widgets by clicking **Show more**. Users can hide the widgets again by clicking **Show less**. To determine which widgets are hidden, specify `uncollapsibleWidgetsCount`.", "type": "boolean" }, "header": { - "description": "The header of the section. Formatted text is supported.", + "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).", "type": "string" }, "uncollapsibleWidgetsCount": { - "description": "The number of uncollapsible widgets. For example, when a section contains five widgets and the `uncollapsibleWidgetsCount` is set to `2`, the first two widgets are always shown and the last three are collapsed as default. The `uncollapsibleWidgetsCount` is taken into account only when `collapsible` is `true`.", + "description": "The number of uncollapsible widgets which remain visible even when a section is collapsed. For example, when a section contains five widgets and the `uncollapsibleWidgetsCount` is set to `2`, the first two widgets are always shown and the last three are collapsed by default. The `uncollapsibleWidgetsCount` is taken into account only when `collapsible` is `true`.", "format": "int32", "type": "integer" }, "widgets": { - "description": "A section must contain at least 1 widget.", + "description": "All the widgets in the section. Must contain at least 1 widget.", "items": { "$ref": "GoogleAppsCardV1Widget" }, @@ -1844,30 +1719,30 @@ "type": "object" }, "GoogleAppsCardV1SelectionInput": { - "description": "A widget that creates a UI item with options for users to select. For example, a dropdown menu.", + "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.", "id": "GoogleAppsCardV1SelectionInput", "properties": { "items": { - "description": "An array of the selected items.", + "description": "An array of the selected items. For example, all the selected check boxes.", "items": { "$ref": "GoogleAppsCardV1SelectionItem" }, "type": "array" }, "label": { - "description": "The label displayed ahead of the switch control.", + "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" }, "name": { - "description": "The name of the text input which is used in `formInput`.", + "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).", "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." + "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)." }, "type": { - "description": "The type of the selection.", + "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.", "enum": [ "CHECK_BOX", "RADIO_BUTTON", @@ -1875,10 +1750,10 @@ "DROPDOWN" ], "enumDescriptions": [ - "A checkbox.", - "A radio button.", - "A switch.", - "A dropdown menu." + "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." ], "type": "string" } @@ -1886,41 +1761,41 @@ "type": "object" }, "GoogleAppsCardV1SelectionItem": { - "description": "A selectable item in the switch control.", + "description": "A selectable item in a selection input, such as a check box or a switch.", "id": "GoogleAppsCardV1SelectionItem", "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.", + "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.", "type": "boolean" }, "text": { - "description": "The text to be displayed.", + "description": "The text displayed to users.", "type": "string" }, "value": { - "description": "The value associated with this item. The client should use this as a form input 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).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1SuggestionItem": { - "description": "A suggestion item.", + "description": "One suggested value that users can enter in a text input field.", "id": "GoogleAppsCardV1SuggestionItem", "properties": { "text": { - "description": "The suggested autocomplete result.", + "description": "The value of a suggested input to a text input field. This is equivalent to what users would enter themselves.", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1Suggestions": { - "description": "A container wrapping elements necessary for showing suggestion items used in text input autocomplete.", + "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`.", "id": "GoogleAppsCardV1Suggestions", "properties": { "items": { - "description": "A list of suggestions used for autocomplete recommendations.", + "description": "A list of suggestions used for autocomplete recommendations in text input fields.", "items": { "$ref": "GoogleAppsCardV1SuggestionItem" }, @@ -1930,11 +1805,11 @@ "type": "object" }, "GoogleAppsCardV1SwitchControl": { - "description": "Either a toggle-style switch or a checkbox.", + "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.", "id": "GoogleAppsCardV1SwitchControl", "properties": { "controlType": { - "description": "The control type, either switch or checkbox.", + "description": "How the switch appears in the user interface.", "enum": [ "SWITCH", "CHECKBOX", @@ -1948,73 +1823,73 @@ "type": "string" }, "name": { - "description": "The name of the switch widget that's used in `formInput`.", + "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).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "The action when the switch state is changed." + "description": "The action to perform when the switch state is changed, such as what function to run." }, "selected": { - "description": "If the switch is selected.", + "description": "When `true`, the switch is selected.", "type": "boolean" }, "value": { - "description": "The value is what is passed back in the callback.", + "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).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextInput": { - "description": "A text input is a UI item where users can input text. A text input can also have an onChange action and suggestions.", + "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.", "id": "GoogleAppsCardV1TextInput", "properties": { "autoCompleteAction": { "$ref": "GoogleAppsCardV1Action", - "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." + "description": "Optional. Specify what action to take when the text input field provides suggestions to users who interact with it. If unspecified, the suggestions are set by `initialSuggestions` and are processed by the client. If specified, the app takes the action specified here, such as running a custom function. Supported by Google Workspace Add-ons, but not Chat apps. Support by Chat apps coming soon." }, "hintText": { - "description": "The hint text.", + "description": "Text that appears below the text input field meant to assist users by prompting them to enter a certain value. This text is always visible. Required if `label` is unspecified. Otherwise, optional.", "type": "string" }, "initialSuggestions": { "$ref": "GoogleAppsCardV1Suggestions", - "description": "The initial suggestions made before any user input." + "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`." }, "label": { - "description": "At least one of label and hintText must be specified.", + "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 of the text input which is used in `formInput`.", + "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).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "The onChange action, for example, invoke a function." + "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." }, "type": { - "description": "The style of the text, for example, a single line or multiple lines.", + "description": "How a text input field appears in the user interface. For example, whether the field is single or multi-line.", "enum": [ "SINGLE_LINE", "MULTIPLE_LINE" ], "enumDescriptions": [ - "The text is put into a single line.", - "The text is put into multiple lines." + "The text input field has a fixed height of one line.", + "The text input field has a fixed height of multiple lines." ], "type": "string" }, "value": { - "description": "The default value when there is no input from the user.", + "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).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextParagraph": { - "description": "A paragraph of text that supports formatting. See [Text formatting](workspace/add-ons/concepts/widgets#text_formatting\") for details.", + "description": "A paragraph of text that supports formatting. See [Text formatting](https://developers.google.com/workspace/add-ons/concepts/widgets#text_formatting) for details.", "id": "GoogleAppsCardV1TextParagraph", "properties": { "text": { @@ -2025,60 +1900,44 @@ "type": "object" }, "GoogleAppsCardV1Widget": { - "description": "A widget is a UI element that presents texts, images, etc.", + "description": "Each card is made up of widgets. A widget is a composite object that can represent one of text, images, buttons, and other object types.", "id": "GoogleAppsCardV1Widget", "properties": { "buttonList": { "$ref": "GoogleAppsCardV1ButtonList", - "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\" } } }, ] } ```" + "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\" } } }, ] } ```" }, "dateTimePicker": { "$ref": "GoogleAppsCardV1DateTimePicker", - "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\" } ```" + "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\" } ```" }, "decoratedText": { "$ref": "GoogleAppsCardV1DecoratedText", - "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\": \"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!\", \"switchWidget\": { \"name\": \"has_send_welcome_email_to_sasha\", \"selected\": false, \"controlType\": \"ControlType.CHECKBOX\" } } ```" }, "divider": { "$ref": "GoogleAppsCardV1Divider", - "description": "Displays a divider. For example, the following JSON creates a divider: ``` \"divider\": { } ```" + "description": "Displays a horizontal line divider between widgets. For example, the following JSON creates a divider: ``` \"divider\": { } ```" }, "grid": { "$ref": "GoogleAppsCardV1Grid", - "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" + "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\" } } } ```" }, "image": { "$ref": "GoogleAppsCardV1Image", - "description": "Displays an image in this widget. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://example.com/sasha.png\" \"altText\": \"Avatar for Sasha\" } ```" + "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 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 } ] } ```" + "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 } ] } ```" }, "textInput": { "$ref": "GoogleAppsCardV1TextInput", - "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\" } ] } } ```" + "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\" } ] } } ```" }, "textParagraph": { "$ref": "GoogleAppsCardV1TextParagraph", - "description": "Displays a text paragraph in this widget. For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" + "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*\" } ```" } }, "type": "object" @@ -2331,7 +2190,7 @@ "type": "array" }, "nextPageToken": { - "description": "Continuation token to retrieve the next page of results. It will be empty for the last page of results.", + "description": "A token that can be sent as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", "type": "string" } }, @@ -2341,7 +2200,7 @@ "id": "ListSpacesResponse", "properties": { "nextPageToken": { - "description": "Continuation token to retrieve the next page of results. It will be empty for the last page of results. Tokens expire in an hour. An error is thrown if an expired token is passed.", + "description": "A token that can be sent as `pageToken` to retrieve the next page of results. If empty, there are no subsequent pages.", "type": "string" }, "spaces": { @@ -2355,11 +2214,12 @@ "type": "object" }, "MatchedUrl": { - "description": "A matched url in a Chat message. Chat bots can unfurl matched URLs. For more information, refer to [Unfurl links](/chat/how-tos/link-unfurling).", + "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).", "id": "MatchedUrl", "properties": { "url": { - "description": "The url that was matched.", + "description": "Output only. The url that was matched.", + "readOnly": true, "type": "string" } }, @@ -2377,20 +2237,36 @@ "type": "object" }, "Membership": { - "description": "Represents a membership relation in Google Chat.", + "description": "Represents a membership relation in Google Chat, such as whether a user or Chat app is invited to, part of, or absent from a space.", "id": "Membership", "properties": { "createTime": { - "description": "Output only. The creation time of the membership a.k.a. the time at which the member joined the space, if applicable.", + "description": "Output only. The creation time of the membership, such as when a member joined or was invited to join a space.", "format": "google-datetime", "readOnly": true, "type": "string" }, "member": { "$ref": "User", - "description": "A user in Google Chat. 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. Format: `users/{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." }, "name": { + "description": "Resource name of the membership. 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.", + "enum": [ + "MEMBERSHIP_ROLE_UNSPECIFIED", + "ROLE_MEMBER", + "ROLE_MANAGER" + ], + "enumDescriptions": [ + "Default value. The user isn't a member of the space, but might be invited.", + "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." + ], + "readOnly": true, "type": "string" }, "state": { @@ -2419,17 +2295,18 @@ "properties": { "actionResponse": { "$ref": "ActionResponse", - "description": "Input only. Parameters that a bot can use to configure how its response is posted." + "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.", "items": { "$ref": "Annotation" }, + "readOnly": true, "type": "array" }, "argumentText": { - "description": "Plain-text body of the message with all bot mentions stripped out.", + "description": "Plain-text body of the message with all Chat app mentions stripped out.", "type": "string" }, "attachment": { @@ -2440,12 +2317,23 @@ "type": "array" }, "cards": { - "description": "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.", + "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.", "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`", + "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).", + "type": "string" + }, "createTime": { "description": "Output only. The time at which the message was created in Google Chat server.", "format": "google-datetime", @@ -2457,42 +2345,46 @@ "type": "string" }, "lastUpdateTime": { - "description": "Output only. The time at which the message was last updated in Google Chat server. If the message was never updated, this field will be same as create_time.", + "description": "Output only. The time at which the message was last edited by a user. If the message has never been edited, this field is empty.", "format": "google-datetime", "readOnly": true, "type": "string" }, "matchedUrl": { "$ref": "MatchedUrl", - "description": "A URL in `spaces.messages.text` that matches a link unfurling pattern. For more information, refer to [Unfurl links](/chat/how-tos/link-unfurling)." + "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).", + "readOnly": true }, "name": { "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", "type": "string" }, - "previewText": { - "description": "Text for generating preview chips. This text will not be displayed to the user, but any links to images, web pages, videos, etc. included here will generate preview chips.", - "type": "string" - }, "sender": { "$ref": "User", - "description": "The user who created the message." + "description": "Output only. The user who created the message.", + "readOnly": true }, "slashCommand": { "$ref": "SlashCommand", - "description": "Slash command information, if applicable." + "description": "Output only. Slash command information, if applicable.", + "readOnly": true }, "space": { "$ref": "Space", - "description": "The space the message belongs to." + "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." }, "text": { - "description": "Plain-text body of the message.", + "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.", "type": "string" }, "thread": { "$ref": "Thread", - "description": "The thread the message belongs to." + "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)." + }, + "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`.", + "readOnly": true, + "type": "boolean" } }, "type": "object" @@ -2559,7 +2451,7 @@ "properties": { "bot": { "$ref": "User", - "description": "The bot whose command was invoked." + "description": "The Chat app whose command was invoked." }, "commandId": { "description": "The command id of the invoked slash command.", @@ -2583,7 +2475,7 @@ ], "enumDescriptions": [ "Default value for the enum. DO NOT USE.", - "Add bot to space.", + "Add Chat app to space.", "Invoke slash command in space." ], "type": "string" @@ -2592,29 +2484,49 @@ "type": "object" }, "Space": { - "description": "A space in Google Chat. Spaces are conversations between two or more users or 1:1 messages between a user and a Chat bot.", + "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. For direct messages between humans, this field might be empty.", + "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.", "type": "string" }, "name": { - "description": "Resource name of the space, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAAA", + "description": "Resource name of the space. Format: spaces/{space}", "type": "string" }, "singleUserBotDm": { - "description": "Output only. Whether the space is a DM between a bot and a single human.", - "readOnly": true, + "description": "Optional. Whether the space is a DM between a Chat app and a single human.", "type": "boolean" }, + "spaceDetails": { + "$ref": "SpaceDetails", + "description": "Details about the space including description and rules." + }, + "spaceThreadingState": { + "description": "Output only. The threading state in the Chat space.", + "enum": [ + "SPACE_THREADING_STATE_UNSPECIFIED", + "THREADED_MESSAGES", + "GROUPED_MESSAGES", + "UNTHREADED_MESSAGES" + ], + "enumDescriptions": [ + "Reserved.", + "Named spaces that support message threads. When users respond to a message, they can reply in-thread, which keeps their response in the context of the original message.", + "Named spaces where the conversation is organized by topic. Topics and their replies are grouped together.", + "Direct messages (DMs) between two people and group conversations between 3 or more people." + ], + "readOnly": true, + "type": "string" + }, "threaded": { - "description": "Output only. Whether the messages are threaded in this space.", + "description": "Output only. Deprecated: Use `spaceThreadingState` instead. Whether messages are threaded in this space.", "readOnly": true, "type": "boolean" }, "type": { - "description": "Deprecated. Use `single_user_bot_dm` instead. Output only. The type of a space.", + "description": "Output only. Deprecated: Use `singleUserBotDm` or `spaceType` (developer preview) instead. The type of a space.", "enum": [ "TYPE_UNSPECIFIED", "ROOM", @@ -2623,8 +2535,24 @@ "enumDescriptions": [ "", "Conversations between two or more humans.", - "1:1 Direct Message between a human and a Chat bot, 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 does not include direct messages between two humans." ], + "readOnly": true, + "type": "string" + } + }, + "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.", + "type": "string" + }, + "guidelines": { + "description": "Optional. The space's rules, expectations, and etiquette.", "type": "string" } }, @@ -2701,7 +2629,11 @@ "id": "Thread", "properties": { "name": { - "description": "Resource name, in the form \"spaces/*/threads/*\". Example: spaces/AAAAAAAAAAA/threads/TTTTTTTTTTT", + "description": "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.", "type": "string" } }, @@ -2745,7 +2677,8 @@ "id": "User", "properties": { "displayName": { - "description": "The user's display name.", + "description": "Output only. The user's display name.", + "readOnly": true, "type": "string" }, "domainId": { @@ -2753,11 +2686,12 @@ "type": "string" }, "isAnonymous": { - "description": "True when the user is deleted or the user's profile is not visible.", + "description": "Output only. When `true`, the user is deleted or their profile is not visible.", + "readOnly": true, "type": "boolean" }, "name": { - "description": "Resource name for a Google Chat user. Represents a [person](https://developers.google.com/people/api/rest/v1/people#Person) in the People API or a [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Admin SDK Directory API. Formatted as: `users/{user}`", + "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}`", "type": "string" }, "type": { @@ -2770,7 +2704,7 @@ "enumDescriptions": [ "Default value for the enum. DO NOT USE.", "Human user.", - "Bot user." + "Chat app user." ], "type": "string" } diff --git a/etc/api/chromemanagement/v1/chromemanagement-api.json b/etc/api/chromemanagement/v1/chromemanagement-api.json index 60c7c02f10..cda88b577c 100644 --- a/etc/api/chromemanagement/v1/chromemanagement-api.json +++ b/etc/api/chromemanagement/v1/chromemanagement-api.json @@ -254,6 +254,118 @@ }, "reports": { "methods": { + "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", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countChromeDevicesReachingAutoExpirationDate", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer ID or \"my_customer\" prefixed with \"customers/\".", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "maxAueDate": { + "description": "Optional. Maximum expiration date in format yyyy-mm-dd in UTC timezone. If included returns all devices that have already expired and devices with auto expiration date equal to or earlier than the maximum date.", + "location": "query", + "type": "string" + }, + "minAueDate": { + "description": "Optional. Maximum expiration date in format yyyy-mm-dd in UTC timezone. If included returns all devices that have already expired and devices with auto expiration date equal to or later than the minimum date.", + "location": "query", + "type": "string" + }, + "orgUnitId": { + "description": "Optional. The organizational unit ID, if omitted, will return data for all organizational units.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countChromeDevicesReachingAutoExpirationDate", + "response": { + "$ref": "GoogleChromeManagementV1CountChromeDevicesReachingAutoExpirationDateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, + "countChromeDevicesThatNeedAttention": { + "description": "Counts of ChromeOS devices that have not synced policies or have lacked user activity in the past 28 days, are out of date, or are not complaint. Further information can be found here https://support.google.com/chrome/a/answer/10564947", + "flatPath": "v1/customers/{customersId}/reports:countChromeDevicesThatNeedAttention", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countChromeDevicesThatNeedAttention", + "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" + }, + "readMask": { + "description": "Required. Mask of the fields that should be populated in the returned report.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countChromeDevicesThatNeedAttention", + "response": { + "$ref": "GoogleChromeManagementV1CountChromeDevicesThatNeedAttentionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, + "countChromeHardwareFleetDevices": { + "description": "Counts of devices with a specific hardware specification from the requested hardware type (for example model name, processor type). Further information can be found here https://support.google.com/chrome/a/answer/10564947", + "flatPath": "v1/customers/{customersId}/reports:countChromeHardwareFleetDevices", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countChromeHardwareFleetDevices", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer ID or \"my_customer\".", + "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" + }, + "readMask": { + "description": "Required. Mask of the fields that should be populated in the returned report.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countChromeHardwareFleetDevices", + "response": { + "$ref": "GoogleChromeManagementV1CountChromeHardwareFleetDevicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, "countChromeVersions": { "description": "Generate report of installed Chrome versions.", "flatPath": "v1/customers/{customersId}/reports:countChromeVersions", @@ -434,6 +546,37 @@ "resources": { "devices": { "methods": { + "get": { + "description": "Get telemetry device.", + "flatPath": "v1/customers/{customersId}/telemetry/devices/{devicesId}", + "httpMethod": "GET", + "id": "chromemanagement.customers.telemetry.devices.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the `TelemetryDevice` to return.", + "location": "path", + "pattern": "^customers/[^/]+/telemetry/devices/[^/]+$", + "required": true, + "type": "string" + }, + "readMask": { + "description": "Required. Read mask to specify which fields to return.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleChromeManagementV1TelemetryDevice" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + }, "list": { "description": "List all telemetry devices.", "flatPath": "v1/customers/{customersId}/telemetry/devices", @@ -444,12 +587,12 @@ ], "parameters": { "filter": { - "description": "Optional. Only include resources that match the filter. Supported filter fields: - org_unit_id - serial_number ", + "description": "Optional. Only include resources that match the filter. Supported filter fields: - org_unit_id - serial_number - device_id ", "location": "query", "type": "string" }, "pageSize": { - "description": "Maximum number of results to return. Default value is 100. Maximum value is 200.", + "description": "Maximum number of results to return. Default value is 100. Maximum value is 1000.", "format": "int32", "location": "query", "type": "integer" @@ -482,13 +625,64 @@ ] } } + }, + "events": { + "methods": { + "list": { + "description": "List telemetry events.", + "flatPath": "v1/customers/{customersId}/telemetry/events", + "httpMethod": "GET", + "id": "chromemanagement.customers.telemetry.events.list", + "parameterOrder": [ + "parent" + ], + "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", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of results to return. Default value is 100. Maximum value is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. 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": "Required. Read mask to specify which fields to return.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/telemetry/events", + "response": { + "$ref": "GoogleChromeManagementV1ListTelemetryEventsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.telemetry.readonly" + ] + } + } } } } } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://chromemanagement.googleapis.com/", "schemas": { "GoogleChromeManagementV1AndroidAppInfo": { @@ -636,8 +830,53 @@ }, "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", + "id": "GoogleChromeManagementV1AudioStatusReport", + "properties": { + "inputDevice": { + "description": "Output only. Active input device's name.", + "readOnly": true, + "type": "string" + }, + "inputGain": { + "description": "Output only. Active input device's gain in [0, 100].", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "inputMute": { + "description": "Output only. Is active input device mute or not.", + "readOnly": true, + "type": "boolean" + }, + "outputDevice": { + "description": "Output only. Active output device's name.", + "readOnly": true, + "type": "string" + }, + "outputMute": { + "description": "Output only. Is active output device mute or not.", + "readOnly": true, + "type": "boolean" + }, + "outputVolume": { + "description": "Output only. Active output device's volume in [0, 100].", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "reportTime": { + "description": "Output only. Timestamp of when the sample was collected on device.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1BatteryInfo": { - "description": "Battery info", + "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", "id": "GoogleChromeManagementV1BatteryInfo", "properties": { "designCapacity": { @@ -676,7 +915,7 @@ "type": "object" }, "GoogleChromeManagementV1BatterySampleReport": { - "description": "Sampling data for battery.", + "description": "Sampling 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", "id": "GoogleChromeManagementV1BatterySampleReport", "properties": { "chargeRate": { @@ -730,7 +969,7 @@ "type": "object" }, "GoogleChromeManagementV1BatteryStatusReport": { - "description": "Status data for battery.", + "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", "id": "GoogleChromeManagementV1BatteryStatusReport", "properties": { "batteryHealth": { @@ -769,7 +1008,7 @@ "type": "string" }, "sample": { - "description": "Output only. Sampling data for the battery.", + "description": "Output only. Sampling data for the battery sorted in a decreasing order of report_time.", "items": { "$ref": "GoogleChromeManagementV1BatterySampleReport" }, @@ -784,6 +1023,56 @@ }, "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", + "id": "GoogleChromeManagementV1BootPerformanceReport", + "properties": { + "bootUpDuration": { + "description": "Total time to boot up.", + "format": "google-duration", + "type": "string" + }, + "bootUpTime": { + "description": "The timestamp when power came on.", + "format": "google-datetime", + "type": "string" + }, + "reportTime": { + "description": "Timestamp when the report was collected.", + "format": "google-datetime", + "type": "string" + }, + "shutdownDuration": { + "description": "Total time since shutdown start to power off.", + "format": "google-duration", + "type": "string" + }, + "shutdownReason": { + "description": "The shutdown reason.", + "enum": [ + "SHUTDOWN_REASON_UNSPECIFIED", + "USER_REQUEST", + "SYSTEM_UPDATE", + "LOW_BATTERY", + "OTHER" + ], + "enumDescriptions": [ + "Shutdown reason is not specified.", + "User initiated.", + "System update initiated.", + "Shutdown due to low battery.", + "Shutdown due to other reasons." + ], + "type": "string" + }, + "shutdownTime": { + "description": "The timestamp when shutdown.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1BrowserVersion": { "description": "Describes a browser version and its install count.", "id": "GoogleChromeManagementV1BrowserVersion", @@ -835,7 +1124,7 @@ "Other operating system.", "Android operating system.", "Apple iOS operating system.", - "Chrome OS operating system.", + "ChromeOS operating system.", "Microsoft Windows operating system.", "Apple macOS operating system.", "Linux operating system." @@ -865,11 +1154,26 @@ "readOnly": true, "type": "boolean" }, + "isExtensionPolicySupported": { + "description": "Output only. Whether an app supports policy for extensions.", + "readOnly": true, + "type": "boolean" + }, + "isKioskOnly": { + "description": "Output only. Whether the app is only for Kiosk mode on ChromeOS devices", + "readOnly": true, + "type": "boolean" + }, "isTheme": { "description": "Output only. Whether the app or extension is a theme.", "readOnly": true, "type": "boolean" }, + "kioskEnabled": { + "description": "Output only. Whether this app is enabled for Kiosk mode on ChromeOS devices", + "readOnly": true, + "type": "boolean" + }, "minUserCount": { "description": "Output only. The minimum number of users using this app.", "format": "int32", @@ -896,6 +1200,21 @@ "description": "Output only. The app developer has enabled support for their app. Version-specific field that will only be set when the requested app version is found.", "readOnly": true, "type": "boolean" + }, + "type": { + "description": "Output only. Types of an item in the Chrome Web Store", + "enum": [ + "ITEM_TYPE_UNSPECIFIED", + "EXTENSION", + "OTHERS" + ], + "enumDescriptions": [ + "Unspecified ItemType.", + "Chrome Extensions.", + "Any other type than extension." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1001,6 +1320,87 @@ }, "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", + "properties": { + "deviceAueCountReports": { + "description": "The list of reports sorted by auto update expiration date in ascending order.", + "items": { + "$ref": "GoogleChromeManagementV1DeviceAueCountReport" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1CountChromeDevicesThatNeedAttentionResponse": { + "description": "Response containing counts for devices that need attention.", + "id": "GoogleChromeManagementV1CountChromeDevicesThatNeedAttentionResponse", + "properties": { + "noRecentPolicySyncCount": { + "description": "Number of ChromeOS devices have not synced policies in the past 28 days.", + "format": "int64", + "type": "string" + }, + "noRecentUserActivityCount": { + "description": "Number of ChromeOS devices that have not seen any user activity in the past 28 days.", + "format": "int64", + "type": "string" + }, + "osVersionNotCompliantCount": { + "description": "Number of devices whose OS version is not compliant.", + "format": "int64", + "type": "string" + }, + "pendingUpdate": { + "description": "Number of devices that are pending an OS update.", + "format": "int64", + "type": "string" + }, + "unsupportedPolicyCount": { + "description": "Number of devices that are unable to apply a policy due to an OS version mismatch.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1CountChromeHardwareFleetDevicesResponse": { + "description": "Response containing a list of devices with a specific type of hardware specification from the requested hardware type.", + "id": "GoogleChromeManagementV1CountChromeHardwareFleetDevicesResponse", + "properties": { + "cpuReports": { + "description": "The DeviceHardwareCountReport for device cpu type (for example Intel(R) Core(TM) i7-10610U CPU @ 1.80GHz).", + "items": { + "$ref": "GoogleChromeManagementV1DeviceHardwareCountReport" + }, + "type": "array" + }, + "memoryReports": { + "description": "The DeviceHardwareCountReport for device memory amount in gigabytes (for example 16).", + "items": { + "$ref": "GoogleChromeManagementV1DeviceHardwareCountReport" + }, + "type": "array" + }, + "modelReports": { + "description": "The DeviceHardwareCountReport for device model type (for example Acer C7 Chromebook).", + "items": { + "$ref": "GoogleChromeManagementV1DeviceHardwareCountReport" + }, + "type": "array" + }, + "storageReports": { + "description": "The DeviceHardwareCountReport for device storage amount in gigabytes (for example 128).", + "items": { + "$ref": "GoogleChromeManagementV1DeviceHardwareCountReport" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1CountChromeVersionsResponse": { "description": "Response containing requested browser versions details and counts.", "id": "GoogleChromeManagementV1CountChromeVersionsResponse", @@ -1048,11 +1448,11 @@ "type": "object" }, "GoogleChromeManagementV1CpuInfo": { - "description": "CPU specs for a CPU.", + "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", "id": "GoogleChromeManagementV1CpuInfo", "properties": { "architecture": { - "description": "Output only. The CPU architecture.", + "description": "Output only. Architecture type for the CPU. * 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", "enum": [ "ARCHITECTURE_UNSPECIFIED", "X64" @@ -1064,6 +1464,16 @@ "readOnly": true, "type": "string" }, + "keylockerConfigured": { + "description": "Output only. Whether keylocker is configured.`TRUE` = Enabled; `FALSE` = disabled. Only reported if keylockerSupported = `TRUE`.", + "readOnly": true, + "type": "boolean" + }, + "keylockerSupported": { + "description": "Output only. Whether keylocker is supported.", + "readOnly": true, + "type": "boolean" + }, "maxClockSpeed": { "description": "Output only. The max CPU clock speed in kHz.", "format": "int32", @@ -1079,7 +1489,7 @@ "type": "object" }, "GoogleChromeManagementV1CpuStatusReport": { - "description": "Contains samples of the cpu status reports.", + "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", "id": "GoogleChromeManagementV1CpuStatusReport", "properties": { "cpuTemperatureInfo": { @@ -1112,7 +1522,7 @@ "type": "object" }, "GoogleChromeManagementV1CpuTemperatureInfo": { - "description": "CPU temperature of a device. Sampled per CPU core in Celsius", + "description": "CPU temperature of a device. Sampled per CPU core in Celsius. * 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", "id": "GoogleChromeManagementV1CpuTemperatureInfo", "properties": { "label": { @@ -1146,6 +1556,81 @@ }, "type": "object" }, + "GoogleChromeManagementV1DeviceAueCountReport": { + "description": "Report for CountChromeDevicesPerAueDateResponse, contains the count of devices of a specific model and auto update expiration range.", + "id": "GoogleChromeManagementV1DeviceAueCountReport", + "properties": { + "aueMonth": { + "description": "Enum value of month corresponding to the auto update expiration date in UTC time zone. If the device is already expired, this field is empty.", + "enum": [ + "MONTH_UNSPECIFIED", + "JANUARY", + "FEBRUARY", + "MARCH", + "APRIL", + "MAY", + "JUNE", + "JULY", + "AUGUST", + "SEPTEMBER", + "OCTOBER", + "NOVEMBER", + "DECEMBER" + ], + "enumDescriptions": [ + "The unspecified month.", + "The month of January.", + "The month of February.", + "The month of March.", + "The month of April.", + "The month of May.", + "The month of June.", + "The month of July.", + "The month of August.", + "The month of September.", + "The month of October.", + "The month of November.", + "The month of December." + ], + "type": "string" + }, + "aueYear": { + "description": "Int value of year corresponding to the Auto Update Expiration date in UTC time zone. If the device is already expired, this field is empty.", + "format": "int64", + "type": "string" + }, + "count": { + "description": "Count of devices of this model.", + "format": "int64", + "type": "string" + }, + "expired": { + "description": "Boolean value for whether or not the device has already expired.", + "type": "boolean" + }, + "model": { + "description": "Public model name of the devices.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1DeviceHardwareCountReport": { + "description": "Report for CountChromeDevicesPerHardwareSpecResponse, contains the count of devices with a unique hardware specification.", + "id": "GoogleChromeManagementV1DeviceHardwareCountReport", + "properties": { + "bucket": { + "description": "Public name of the hardware specification.", + "type": "string" + }, + "count": { + "description": "Count of devices with a unique hardware specification.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1DiskInfo": { "description": "Status of the single storage device.", "id": "GoogleChromeManagementV1DiskInfo", @@ -1311,7 +1796,7 @@ "type": "object" }, "GoogleChromeManagementV1GraphicsInfo": { - "description": "Information of the graphics subsystem.", + "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", "id": "GoogleChromeManagementV1GraphicsInfo", "properties": { "adapterInfo": { @@ -1323,7 +1808,7 @@ "type": "object" }, "GoogleChromeManagementV1GraphicsStatusReport": { - "description": "Information of the graphics subsystem.", + "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", "id": "GoogleChromeManagementV1GraphicsStatusReport", "properties": { "displays": { @@ -1343,6 +1828,38 @@ }, "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", + "properties": { + "latency": { + "description": "Output only. HTTPS latency if routine succeeded or failed because of HIGH_LATENCY or VERY_HIGH_LATENCY.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, + "problem": { + "description": "Output only. HTTPS latency routine problem if a problem occurred.", + "enum": [ + "HTTPS_LATENCY_PROBLEM_UNSPECIFIED", + "FAILED_DNS_RESOLUTIONS", + "FAILED_HTTPS_REQUESTS", + "HIGH_LATENCY", + "VERY_HIGH_LATENCY" + ], + "enumDescriptions": [ + "HTTPS latency problem not specified.", + "One or more DNS resolutions resulted in a failure.", + "One or more HTTPS requests resulted in a failure.", + "Average HTTPS request latency time between 500ms and 1000ms is high.", + "Average HTTPS request latency time greater than 1000ms is very high." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1InstalledApp": { "description": "Describes an installed app.", "id": "GoogleChromeManagementV1InstalledApp", @@ -1471,8 +1988,26 @@ }, "type": "object" }, + "GoogleChromeManagementV1ListTelemetryEventsResponse": { + "description": "Response message for listing telemetry events for a customer.", + "id": "GoogleChromeManagementV1ListTelemetryEventsResponse", + "properties": { + "nextPageToken": { + "description": "Token to specify next page in the list.", + "type": "string" + }, + "telemetryEvents": { + "description": "Telemetry events returned in the response.", + "items": { + "$ref": "GoogleChromeManagementV1TelemetryEvent" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1MemoryInfo": { - "description": "Memory information of a device.", + "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", "id": "GoogleChromeManagementV1MemoryInfo", "properties": { "availableRamBytes": { @@ -1481,6 +2016,11 @@ "readOnly": true, "type": "string" }, + "totalMemoryEncryption": { + "$ref": "GoogleChromeManagementV1TotalMemoryEncryptionInfo", + "description": "Output only. Total memory encryption info for the device.", + "readOnly": true + }, "totalRamBytes": { "description": "Output only. Total RAM in bytes.", "format": "int64", @@ -1491,7 +2031,7 @@ "type": "object" }, "GoogleChromeManagementV1MemoryStatusReport": { - "description": "Contains samples of memory status reports.", + "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", "id": "GoogleChromeManagementV1MemoryStatusReport", "properties": { "pageFaults": { @@ -1521,20 +2061,160 @@ }, "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", + "properties": { + "iccid": { + "description": "Output only. The integrated circuit card ID associated with the device's sim card.", + "readOnly": true, + "type": "string" + }, + "imei": { + "description": "Output only. IMEI (if applicable) of the corresponding network device.", + "readOnly": true, + "type": "string" + }, + "macAddress": { + "description": "Output only. MAC address (if applicable) of the corresponding network device.", + "readOnly": true, + "type": "string" + }, + "mdn": { + "description": "Output only. The mobile directory number associated with the device's sim card.", + "readOnly": true, + "type": "string" + }, + "meid": { + "description": "Output only. MEID (if applicable) of the corresponding network device.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. Network device type.", + "enum": [ + "NETWORK_DEVICE_TYPE_UNSPECIFIED", + "CELLULAR_DEVICE", + "ETHERNET_DEVICE", + "WIFI_DEVICE" + ], + "enumDescriptions": [ + "Network device type not specified.", + "Cellular device.", + "Ethernet device.", + "Wifi device." + ], + "readOnly": true, + "type": "string" + } + }, + "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.", + "id": "GoogleChromeManagementV1NetworkDiagnosticsReport", + "properties": { + "httpsLatencyData": { + "$ref": "GoogleChromeManagementV1HttpsLatencyRoutineData", + "description": "Output only. HTTPS latency test data.", + "readOnly": true + }, + "reportTime": { + "description": "Output only. Timestamp of when the diagnostics were collected.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "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", + "id": "GoogleChromeManagementV1NetworkInfo", + "properties": { + "networkDevices": { + "description": "Output only. List of network devices.", + "items": { + "$ref": "GoogleChromeManagementV1NetworkDevice" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1NetworkStatusReport": { - "description": "State of visible/configured networks.", + "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", "id": "GoogleChromeManagementV1NetworkStatusReport", "properties": { + "connectionState": { + "description": "Output only. 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." + ], + "readOnly": true, + "type": "string" + }, + "connectionType": { + "description": "Output only. Network connection type.", + "enum": [ + "NETWORK_TYPE_UNSPECIFIED", + "CELLULAR", + "ETHERNET", + "TETHER", + "VPN", + "WIFI" + ], + "enumDescriptions": [ + "Network connection type unspecified", + "Cellular network connection.", + "Ethernet network connection.", + "Tether network connection.", + "VPN network connection.", + "Wifi network connection." + ], + "readOnly": true, + "type": "string" + }, + "encryptionOn": { + "description": "Output only. Whether the wifi encryption key is turned off.", + "readOnly": true, + "type": "boolean" + }, "gatewayIpAddress": { "description": "Output only. Gateway IP address.", "readOnly": true, "type": "string" }, + "guid": { + "description": "Output only. Network connection guid.", + "readOnly": true, + "type": "string" + }, "lanIpAddress": { "description": "Output only. LAN IP address.", "readOnly": true, "type": "string" }, + "receivingBitRateMbps": { + "description": "Output only. Receiving bit rate measured in Megabits per second.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "reportTime": { "description": "Output only. Time at which the network state was reported.", "format": "google-datetime", @@ -1552,12 +2232,35 @@ "format": "int32", "readOnly": true, "type": "integer" + }, + "transmissionBitRateMbps": { + "description": "Output only. Transmission bit rate measured in Megabits per second.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "transmissionPowerDbm": { + "description": "Output only. Transmission power measured in decibels.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "wifiLinkQuality": { + "description": "Output only. Wifi link quality. Value ranges from [0, 70]. 0 indicates no signal and 70 indicates a strong signal.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "wifiPowerManagementEnabled": { + "description": "Output only. Wifi power management enabled", + "readOnly": true, + "type": "boolean" } }, "type": "object" }, "GoogleChromeManagementV1OsUpdateStatus": { - "description": "Contains information regarding the current OS update status.", + "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", "id": "GoogleChromeManagementV1OsUpdateStatus", "properties": { "lastRebootTime": { @@ -1609,7 +2312,7 @@ "type": "object" }, "GoogleChromeManagementV1StorageInfo": { - "description": "Status data for storage.", + "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", "id": "GoogleChromeManagementV1StorageInfo", "properties": { "availableDiskBytes": { @@ -1654,11 +2357,11 @@ "type": "object" }, "GoogleChromeManagementV1StorageStatusReport": { - "description": "Status data for storage.", + "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", "id": "GoogleChromeManagementV1StorageStatusReport", "properties": { "disk": { - "description": "Output only. Reports on disk", + "description": "Output only. Reports on disk.", "items": { "$ref": "GoogleChromeManagementV1DiskInfo" }, @@ -1674,10 +2377,24 @@ }, "type": "object" }, + "GoogleChromeManagementV1TelemetryAudioSevereUnderrunEvent": { + "description": "`TelemetryAudioSevereUnderrunEvent` is triggered when a audio devices run out of buffer data for more than 5 seconds.", + "id": "GoogleChromeManagementV1TelemetryAudioSevereUnderrunEvent", + "properties": {}, + "type": "object" + }, "GoogleChromeManagementV1TelemetryDevice": { "description": "Telemetry data collected from a managed device.", "id": "GoogleChromeManagementV1TelemetryDevice", "properties": { + "audioStatusReport": { + "description": "Output only. Audio reports collected periodically sorted in a decreasing order of report_time.", + "items": { + "$ref": "GoogleChromeManagementV1AudioStatusReport" + }, + "readOnly": true, + "type": "array" + }, "batteryInfo": { "description": "Output only. Information on battery specs for the device.", "items": { @@ -1694,6 +2411,14 @@ "readOnly": true, "type": "array" }, + "bootPerformanceReport": { + "description": "Output only. Boot performance reports of the device.", + "items": { + "$ref": "GoogleChromeManagementV1BootPerformanceReport" + }, + "readOnly": true, + "type": "array" + }, "cpuInfo": { "description": "Output only. Information regarding CPU specs for the device.", "items": { @@ -1703,7 +2428,7 @@ "type": "array" }, "cpuStatusReport": { - "description": "Output only. CPU status reports collected periodically.", + "description": "Output only. CPU status reports collected periodically sorted in a decreasing order of report_time.", "items": { "$ref": "GoogleChromeManagementV1CpuStatusReport" }, @@ -1716,7 +2441,7 @@ "type": "string" }, "deviceId": { - "description": "Output only. The unique Directory API ID of the device. This value is the same as the Admin Console's Directory API ID in the Chrome OS Devices tab", + "description": "Output only. 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", "readOnly": true, "type": "string" }, @@ -1739,7 +2464,7 @@ "readOnly": true }, "memoryStatusReport": { - "description": "Output only. Memory status reports collected periodically.", + "description": "Output only. Memory status reports collected periodically sorted decreasing by report_time.", "items": { "$ref": "GoogleChromeManagementV1MemoryStatusReport" }, @@ -1751,6 +2476,19 @@ "readOnly": true, "type": "string" }, + "networkDiagnosticsReport": { + "description": "Output only. Network diagnostics collected periodically.", + "items": { + "$ref": "GoogleChromeManagementV1NetworkDiagnosticsReport" + }, + "readOnly": true, + "type": "array" + }, + "networkInfo": { + "$ref": "GoogleChromeManagementV1NetworkInfo", + "description": "Output only. Network devices information.", + "readOnly": true + }, "networkStatusReport": { "description": "Output only. Network specs collected periodically.", "items": { @@ -1773,7 +2511,7 @@ "type": "array" }, "serialNumber": { - "description": "Output only. Device serial number. This value is the same as the Admin Console's Serial Number in the Chrome OS Devices tab.", + "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, "type": "string" }, @@ -1789,6 +2527,283 @@ }, "readOnly": true, "type": "array" + }, + "thunderboltInfo": { + "description": "Output only. Information on Thunderbolt bus.", + "items": { + "$ref": "GoogleChromeManagementV1ThunderboltInfo" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryDeviceInfo": { + "description": "Information about a device associated with telemetry data.", + "id": "GoogleChromeManagementV1TelemetryDeviceInfo", + "properties": { + "deviceId": { + "description": "Output only. 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.", + "readOnly": true, + "type": "string" + }, + "orgUnitId": { + "description": "Output only. Organization unit ID of the device.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryEvent": { + "description": "Telemetry data reported by a managed device.", + "id": "GoogleChromeManagementV1TelemetryEvent", + "properties": { + "audioSevereUnderrunEvent": { + "$ref": "GoogleChromeManagementV1TelemetryAudioSevereUnderrunEvent", + "description": "Output only. Payload for audio severe underrun event. Present only when the `event_type` field is `AUDIO_SEVERE_UNDERRUN`.", + "readOnly": true + }, + "device": { + "$ref": "GoogleChromeManagementV1TelemetryDeviceInfo", + "description": "Output only. Information about the device associated with the event.", + "readOnly": true + }, + "eventType": { + "description": "The event type of the current event.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "AUDIO_SEVERE_UNDERRUN", + "NETWORK_CONNECTION_STATE_CHANGE", + "USB_ADDED", + "USB_REMOVED", + "NETWORK_HTTPS_LATENCY_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." + ], + "type": "string" + }, + "httpsLatencyChangeEvent": { + "$ref": "GoogleChromeManagementV1TelemetryHttpsLatencyChangeEvent", + "description": "Output only. Payload for HTTPS latency change event. Present only when `event_type` is `NETWORK_HTTPS_LATENCY_CHANGE`.", + "readOnly": true + }, + "name": { + "description": "Output only. Resource name of the event.", + "readOnly": true, + "type": "string" + }, + "reportTime": { + "description": "Timestamp that represents when the event was reported.", + "format": "google-datetime", + "type": "string" + }, + "usbPeripheralsEvent": { + "$ref": "GoogleChromeManagementV1TelemetryUsbPeripheralsEvent", + "description": "Output only. Payload for usb peripherals event. Present only when the `event_type` field is either `USB_ADDED` or `USB_REMOVED`.", + "readOnly": true + }, + "user": { + "$ref": "GoogleChromeManagementV1TelemetryUserInfo", + "description": "Output only. Information about the user associated with the event.", + "readOnly": true + } + }, + "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..", + "id": "GoogleChromeManagementV1TelemetryHttpsLatencyChangeEvent", + "properties": { + "httpsLatencyRoutineData": { + "$ref": "GoogleChromeManagementV1HttpsLatencyRoutineData", + "description": "HTTPS latency routine data that triggered the event." + }, + "httpsLatencyState": { + "description": "Current HTTPS latency state.", + "enum": [ + "HTTPS_LATENCY_STATE_UNSPECIFIED", + "RECOVERY", + "PROBLEM" + ], + "enumDescriptions": [ + "HTTPS latency state is unspecified.", + "HTTPS latency recovered from a problem.", + "HTTPS latency problem." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryUsbPeripheralsEvent": { + "description": "`TelemetryUsbPeripheralsEvent` is triggered USB devices are either added or removed.", + "id": "GoogleChromeManagementV1TelemetryUsbPeripheralsEvent", + "properties": { + "usbPeripheralReport": { + "description": "List of usb devices that were either added or removed.", + "items": { + "$ref": "GoogleChromeManagementV1UsbPeripheralReport" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TelemetryUserInfo": { + "description": "Information about a user associated with telemetry data.", + "id": "GoogleChromeManagementV1TelemetryUserInfo", + "properties": { + "email": { + "description": "Output only. User's email.", + "readOnly": true, + "type": "string" + }, + "orgUnitId": { + "description": "Output only. Organization unit ID of the user.", + "readOnly": true, + "type": "string" + } + }, + "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", + "id": "GoogleChromeManagementV1ThunderboltInfo", + "properties": { + "securityLevel": { + "description": "Security level of the Thunderbolt bus.", + "enum": [ + "THUNDERBOLT_SECURITY_LEVEL_UNSPECIFIED", + "THUNDERBOLT_SECURITY_NONE_LEVEL", + "THUNDERBOLT_SECURITY_USER_LEVEL", + "THUNDERBOLT_SECURITY_SECURE_LEVEL", + "THUNDERBOLT_SECURITY_DP_ONLY_LEVEL", + "THUNDERBOLT_SECURITY_USB_ONLY_LEVEL", + "THUNDERBOLT_SECURITY_NO_PCIE_LEVEL" + ], + "enumDescriptions": [ + "Thunderbolt security level is not set.", + "All devices are automatically connected by the firmware. No user approval is needed.", + "User is asked whether the device is allowed to be connected.", + "User is asked whether the device is allowed to be connected. In addition the device is sent a challenge that should match the expected one based on a random key written to the key sysfs attribute", + "The firmware automatically creates tunnels for Thunderbolt.", + "The firmware automatically creates tunnels for the USB controller and Display Port in a dock. All PCIe links downstream of the dock are removed.", + "PCIE tunneling is disabled." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1TotalMemoryEncryptionInfo": { + "description": "Memory encryption information of a device. * This field provides device information, which is static and will not change over time. * Data for this field is controlled via policy: [ReportDeviceMemoryInfo](https://chromeenterprise.google/policies/#ReportDeviceMemoryInfo) * 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": "GoogleChromeManagementV1TotalMemoryEncryptionInfo", + "properties": { + "encryptionAlgorithm": { + "description": "Memory encryption algorithm.", + "enum": [ + "MEMORY_ENCRYPTION_ALGORITHM_UNSPECIFIED", + "MEMORY_ENCRYPTION_ALGORITHM_UNKNOWN", + "MEMORY_ENCRYPTION_ALGORITHM_AES_XTS_128", + "MEMORY_ENCRYPTION_ALGORITHM_AES_XTS_256" + ], + "enumDescriptions": [ + "Memory encryption algorithm is not set.", + "The memory encryption algorithm being used is unknown.", + "The memory encryption algorithm is using the AES_XTS encryption algorithm with a 128 bit block cypher.", + "The memory encryption algorithm is using the AES_XTS encryption algorithm with a 256 bit block cypher." + ], + "type": "string" + }, + "encryptionState": { + "description": "The state of memory encryption on the device.", + "enum": [ + "MEMORY_ENCRYPTION_STATE_UNSPECIFIED", + "MEMORY_ENCRYPTION_STATE_UNKNOWN", + "MEMORY_ENCRYPTION_STATE_DISABLED", + "MEMORY_ENCRYPTION_STATE_TME", + "MEMORY_ENCRYPTION_STATE_MKTME" + ], + "enumDescriptions": [ + "Memory encryption state is not set.", + "The memory encryption state is unknown.", + "Memory encrpytion on the device is disabled.", + "Memory encryption on the device uses total memory encryption.", + "Memory encryption on the device uses multi-key total memory encryption." + ], + "type": "string" + }, + "keyLength": { + "description": "The length of the encryption keys.", + "format": "int64", + "type": "string" + }, + "maxKeys": { + "description": "The maximum number of keys that can be used for encryption.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1UsbPeripheralReport": { + "description": "USB connected peripheral report.", + "id": "GoogleChromeManagementV1UsbPeripheralReport", + "properties": { + "categories": { + "description": "Output only. Categories the device belongs to https://www.usb.org/defined-class-codes", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "classId": { + "description": "Output only. Class ID https://www.usb.org/defined-class-codes", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "firmwareVersion": { + "description": "Output only. Firmware version", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Device name, model name, or product name", + "readOnly": true, + "type": "string" + }, + "pid": { + "description": "Output only. Product ID", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "subclassId": { + "description": "Output only. Subclass ID https://www.usb.org/defined-class-codes", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "vendor": { + "description": "Output only. Vendor name", + "readOnly": true, + "type": "string" + }, + "vid": { + "description": "Output only. Vendor ID", + "format": "int32", + "readOnly": true, + "type": "integer" } }, "type": "object" diff --git a/etc/api/chromepolicy/v1/chromepolicy-api.json b/etc/api/chromepolicy/v1/chromepolicy-api.json index 8ab89d4c13..f35ecb2199 100644 --- a/etc/api/chromepolicy/v1/chromepolicy-api.json +++ b/etc/api/chromepolicy/v1/chromepolicy-api.json @@ -131,10 +131,10 @@ }, "path": "v1/{+customer}/policies:resolve", "request": { - "$ref": "GoogleChromePolicyV1ResolveRequest" + "$ref": "GoogleChromePolicyVersionsV1ResolveRequest" }, "response": { - "$ref": "GoogleChromePolicyV1ResolveResponse" + "$ref": "GoogleChromePolicyVersionsV1ResolveResponse" }, "scopes": [ "https://www.googleapis.com/auth/chrome.management.policy", @@ -143,6 +143,239 @@ } }, "resources": { + "groups": { + "methods": { + "batchDelete": { + "description": "Delete multiple policy values that are applied to a specific group. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.", + "flatPath": "v1/customers/{customersId}/policies/groups:batchDelete", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.groups.batchDelete", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "ID of the Google Workspace account or literal \"my_customer\" for the customer associated to the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/groups:batchDelete", + "request": { + "$ref": "GoogleChromePolicyVersionsV1BatchDeleteGroupPoliciesRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + }, + "batchModify": { + "description": "Modify multiple policy values that are applied to a specific group. All targets must have the same target format. That is to say that they must point to the same target resource and must have the same keys specified in `additionalTargetKeyNames`, though the values for those keys may be different. On failure the request will return the error details as part of the google.rpc.Status.", + "flatPath": "v1/customers/{customersId}/policies/groups:batchModify", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.groups.batchModify", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "ID of the Google Workspace account or literal \"my_customer\" for the customer associated to the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/groups:batchModify", + "request": { + "$ref": "GoogleChromePolicyVersionsV1BatchModifyGroupPoliciesRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + }, + "listGroupPriorityOrdering": { + "description": "Retrieve a group priority ordering for an app. The target app must be supplied in `additionalTargetKeyNames` in the PolicyTargetKey. On failure the request will return the error details as part of the google.rpc.Status.", + "flatPath": "v1/customers/{customersId}/policies/groups:listGroupPriorityOrdering", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.groups.listGroupPriorityOrdering", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. ID of the Google Workspace account or literal \"my_customer\" for the customer associated to the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/groups:listGroupPriorityOrdering", + "request": { + "$ref": "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingRequest" + }, + "response": { + "$ref": "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy", + "https://www.googleapis.com/auth/chrome.management.policy.readonly" + ] + }, + "updateGroupPriorityOrdering": { + "description": "Update a group priority ordering for an app. The target app must be supplied in `additionalTargetKeyNames` in the PolicyTargetKey. On failure the request will return the error details as part of the google.rpc.Status.", + "flatPath": "v1/customers/{customersId}/policies/groups:updateGroupPriorityOrdering", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.groups.updateGroupPriorityOrdering", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. ID of the Google Workspace account or literal \"my_customer\" for the customer associated to the request.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/groups:updateGroupPriorityOrdering", + "request": { + "$ref": "GoogleChromePolicyVersionsV1UpdateGroupPriorityOrderingRequest" + }, + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + } + } + }, + "networks": { + "methods": { + "defineCertificate": { + "description": "Creates a certificate at a specified OU for a customer.", + "flatPath": "v1/customers/{customersId}/policies/networks:defineCertificate", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.networks.defineCertificate", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer for which the certificate will apply.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/networks:defineCertificate", + "request": { + "$ref": "GoogleChromePolicyVersionsV1DefineCertificateRequest" + }, + "response": { + "$ref": "GoogleChromePolicyVersionsV1DefineCertificateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + }, + "defineNetwork": { + "description": "Define a new network.", + "flatPath": "v1/customers/{customersId}/policies/networks:defineNetwork", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.networks.defineNetwork", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer who will own this new network.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/networks:defineNetwork", + "request": { + "$ref": "GoogleChromePolicyVersionsV1DefineNetworkRequest" + }, + "response": { + "$ref": "GoogleChromePolicyVersionsV1DefineNetworkResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + }, + "removeCertificate": { + "description": "Remove an existing certificate by guid.", + "flatPath": "v1/customers/{customersId}/policies/networks:removeCertificate", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.networks.removeCertificate", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer whose certificate will be removed.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/networks:removeCertificate", + "request": { + "$ref": "GoogleChromePolicyVersionsV1RemoveCertificateRequest" + }, + "response": { + "$ref": "GoogleChromePolicyVersionsV1RemoveCertificateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + }, + "removeNetwork": { + "description": "Remove an existing network by guid.", + "flatPath": "v1/customers/{customersId}/policies/networks:removeNetwork", + "httpMethod": "POST", + "id": "chromepolicy.customers.policies.networks.removeNetwork", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer whose network will be removed.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+customer}/policies/networks:removeNetwork", + "request": { + "$ref": "GoogleChromePolicyVersionsV1RemoveNetworkRequest" + }, + "response": { + "$ref": "GoogleChromePolicyVersionsV1RemoveNetworkResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.policy" + ] + } + } + }, "orgunits": { "methods": { "batchInherit": { @@ -164,7 +397,7 @@ }, "path": "v1/{+customer}/policies/orgunits:batchInherit", "request": { - "$ref": "GoogleChromePolicyV1BatchInheritOrgUnitPoliciesRequest" + "$ref": "GoogleChromePolicyVersionsV1BatchInheritOrgUnitPoliciesRequest" }, "response": { "$ref": "GoogleProtobufEmpty" @@ -192,7 +425,7 @@ }, "path": "v1/{+customer}/policies/orgunits:batchModify", "request": { - "$ref": "GoogleChromePolicyV1BatchModifyOrgUnitPoliciesRequest" + "$ref": "GoogleChromePolicyVersionsV1BatchModifyOrgUnitPoliciesRequest" }, "response": { "$ref": "GoogleProtobufEmpty" @@ -226,7 +459,7 @@ }, "path": "v1/{+name}", "response": { - "$ref": "GoogleChromePolicyV1PolicySchema" + "$ref": "GoogleChromePolicyVersionsV1PolicySchema" }, "scopes": [ "https://www.googleapis.com/auth/chrome.management.policy", @@ -248,7 +481,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of policy schemas to return.", + "description": "The maximum number of policy schemas to return, defaults to 100 and has a maximum of 1000.", "format": "int32", "location": "query", "type": "integer" @@ -268,7 +501,7 @@ }, "path": "v1/{+parent}/policySchemas", "response": { - "$ref": "GoogleChromePolicyV1ListPolicySchemasResponse" + "$ref": "GoogleChromePolicyVersionsV1ListPolicySchemasResponse" }, "scopes": [ "https://www.googleapis.com/auth/chrome.management.policy", @@ -311,10 +544,10 @@ }, "path": "v1/{+customer}/policies/files:uploadPolicyFile", "request": { - "$ref": "GoogleChromePolicyV1UploadPolicyFileRequest" + "$ref": "GoogleChromePolicyVersionsV1UploadPolicyFileRequest" }, "response": { - "$ref": "GoogleChromePolicyV1UploadPolicyFileResponse" + "$ref": "GoogleChromePolicyVersionsV1UploadPolicyFileResponse" }, "scopes": [ "https://www.googleapis.com/auth/chrome.management.policy" @@ -324,7 +557,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://chromepolicy.googleapis.com/", "schemas": { "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle": { @@ -359,9 +592,9 @@ }, "type": "object" }, - "GoogleChromePolicyV1AdditionalTargetKeyName": { + "GoogleChromePolicyVersionsV1AdditionalTargetKeyName": { "description": "Additional key names that will be used to identify the target of the policy value.", - "id": "GoogleChromePolicyV1AdditionalTargetKeyName", + "id": "GoogleChromePolicyVersionsV1AdditionalTargetKeyName", "properties": { "key": { "description": "Key name.", @@ -374,52 +607,255 @@ }, "type": "object" }, - "GoogleChromePolicyV1BatchInheritOrgUnitPoliciesRequest": { + "GoogleChromePolicyVersionsV1BatchDeleteGroupPoliciesRequest": { + "description": "Request message for specifying that multiple policy values will be deleted.", + "id": "GoogleChromePolicyVersionsV1BatchDeleteGroupPoliciesRequest", + "properties": { + "requests": { + "description": "List of policies that will be deleted as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to a group resource. 3. All `policyTargetKey` values must have the same `app_id` key name in the `additionalTargetKeys`. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair. ", + "items": { + "$ref": "GoogleChromePolicyVersionsV1DeleteGroupPolicyRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1BatchInheritOrgUnitPoliciesRequest": { "description": "Request message for specifying that multiple policy values inherit their value from their parents.", - "id": "GoogleChromePolicyV1BatchInheritOrgUnitPoliciesRequest", + "id": "GoogleChromePolicyVersionsV1BatchInheritOrgUnitPoliciesRequest", "properties": { "requests": { "description": "List of policies that have to inherit their values as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair. ", "items": { - "$ref": "GoogleChromePolicyV1InheritOrgUnitPolicyRequest" + "$ref": "GoogleChromePolicyVersionsV1InheritOrgUnitPolicyRequest" }, "type": "array" } }, "type": "object" }, - "GoogleChromePolicyV1BatchModifyOrgUnitPoliciesRequest": { + "GoogleChromePolicyVersionsV1BatchModifyGroupPoliciesRequest": { + "description": "Request message for modifying multiple policy values for a specific group-based target.", + "id": "GoogleChromePolicyVersionsV1BatchModifyGroupPoliciesRequest", + "properties": { + "requests": { + "description": "List of policies to modify as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to a group resource. 3. All `policyTargetKey` values must have the same `app_id` key name in the `additionalTargetKeys`. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair. ", + "items": { + "$ref": "GoogleChromePolicyVersionsV1ModifyGroupPolicyRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1BatchModifyOrgUnitPoliciesRequest": { "description": "Request message for modifying multiple policy values for a specific target.", - "id": "GoogleChromePolicyV1BatchModifyOrgUnitPoliciesRequest", + "id": "GoogleChromePolicyVersionsV1BatchModifyOrgUnitPoliciesRequest", "properties": { "requests": { "description": "List of policies to modify as defined by the `requests`. All requests in the list must follow these restrictions: 1. All schemas in the list must have the same root namespace. 2. All `policyTargetKey.targetResource` values must point to an org unit resource. 3. All `policyTargetKey` values must have the same key names in the ` additionalTargetKeys`. This also means if one of the targets has an empty `additionalTargetKeys` map, all of the targets must have an empty `additionalTargetKeys` map. 4. No two modification requests can reference the same `policySchema` + ` policyTargetKey` pair. ", "items": { - "$ref": "GoogleChromePolicyV1ModifyOrgUnitPolicyRequest" + "$ref": "GoogleChromePolicyVersionsV1ModifyOrgUnitPolicyRequest" }, "type": "array" } }, "type": "object" }, - "GoogleChromePolicyV1InheritOrgUnitPolicyRequest": { - "description": "Request parameters for inheriting policy value of a specific org unit target from the policy value of its parent org unit.", - "id": "GoogleChromePolicyV1InheritOrgUnitPolicyRequest", + "GoogleChromePolicyVersionsV1CertificateReference": { + "description": "Error information for removing of a specific certificate on a specific target. A reference to a certificate.", + "id": "GoogleChromePolicyVersionsV1CertificateReference", + "properties": { + "network": { + "description": "Output only. The name of the referencing network.", + "readOnly": true, + "type": "string" + }, + "orgUnitId": { + "description": "Output only. The obfuscated id of the org unit the referencing network is in.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1DefineCertificateRequest": { + "description": "Request object for creating a certificate.", + "id": "GoogleChromePolicyVersionsV1DefineCertificateRequest", + "properties": { + "ceritificateName": { + "description": "Optional. The optional name of the certificate. If not specified, the certificate issuer will be used as the name.", + "type": "string" + }, + "certificate": { + "description": "Required. The raw contents of the .PEM, .CRT, or .CER file.", + "type": "string" + }, + "settings": { + "description": "Optional. Certificate settings within the chrome.networks.certificates namespace.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1NetworkSetting" + }, + "type": "array" + }, + "targetResource": { + "description": "Required. The target resource on which this certificate is applied. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1DefineCertificateResponse": { + "description": "Response object for creating a certificate.", + "id": "GoogleChromePolicyVersionsV1DefineCertificateResponse", + "properties": { + "networkId": { + "description": "The guid of the certificate created by the action.", + "type": "string" + }, + "settings": { + "description": "the affiliated settings of the certificate (NOT IMPLEMENTED)", + "items": { + "$ref": "GoogleChromePolicyVersionsV1NetworkSetting" + }, + "type": "array" + }, + "targetResource": { + "description": "the resource at which the certificate is defined.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1DefineNetworkRequest": { + "description": "Request object for creating a new network.", + "id": "GoogleChromePolicyVersionsV1DefineNetworkRequest", + "properties": { + "name": { + "description": "Required. Name of the new created network.", + "type": "string" + }, + "settings": { + "description": "Required. Detailed network settings.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1NetworkSetting" + }, + "type": "array" + }, + "targetResource": { + "description": "Required. The target resource on which this new network will be defined. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1DefineNetworkResponse": { + "description": "Response object for creating a network.", + "id": "GoogleChromePolicyVersionsV1DefineNetworkResponse", + "properties": { + "networkId": { + "description": "Network ID of the new created network.", + "type": "string" + }, + "settings": { + "description": "Detailed network settings of the new created network", + "items": { + "$ref": "GoogleChromePolicyVersionsV1NetworkSetting" + }, + "type": "array" + }, + "targetResource": { + "description": "The target resource on which this new network will be defined. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1DeleteGroupPolicyRequest": { + "description": "Request parameters for deleting the policy value of a specific group target.", + "id": "GoogleChromePolicyVersionsV1DeleteGroupPolicyRequest", "properties": { "policySchema": { "description": "The fully qualified name of the policy schema that is being inherited.", "type": "string" }, "policyTargetKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target for which we want to modify a policy. The target resource must point to a Group." + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1FieldConstraints": { + "description": "Information about any range constraints.", + "id": "GoogleChromePolicyVersionsV1FieldConstraints", + "properties": { + "numericRangeConstraint": { + "$ref": "GoogleChromePolicyVersionsV1NumericRangeConstraint", + "description": "The allowed range for numeric fields." + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1InheritOrgUnitPolicyRequest": { + "description": "Request parameters for inheriting policy value of a specific org unit target from the policy value of its parent org unit.", + "id": "GoogleChromePolicyVersionsV1InheritOrgUnitPolicyRequest", + "properties": { + "policySchema": { + "description": "The fully qualified name of the policy schema that is being inherited.", + "type": "string" + }, + "policyTargetKey": { + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", "description": "Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit." } }, "type": "object" }, - "GoogleChromePolicyV1ListPolicySchemasResponse": { + "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingRequest": { + "description": "Request message for listing the group priority ordering of an app.", + "id": "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingRequest", + "properties": { + "policyNamespace": { + "description": "Required. The namespace of the policy type for the request.", + "type": "string" + }, + "policyTargetKey": { + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target for which we want to retrieve the group priority ordering. The target resource must point to an app." + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingResponse": { + "description": "Response message for listing the group priority ordering of an app.", + "id": "GoogleChromePolicyVersionsV1ListGroupPriorityOrderingResponse", + "properties": { + "groupIds": { + "description": "Output only. The group IDs, in priority ordering.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "policyNamespace": { + "description": "Output only. The namespace of the policy type of 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.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1ListPolicySchemasResponse": { "description": "Response message for listing policy schemas that match a filter.", - "id": "GoogleChromePolicyV1ListPolicySchemasResponse", + "id": "GoogleChromePolicyVersionsV1ListPolicySchemasResponse", "properties": { "nextPageToken": { "description": "The page token used to get the next page of policy schemas.", @@ -428,23 +864,23 @@ "policySchemas": { "description": "The list of policy schemas that match the query.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchema" + "$ref": "GoogleChromePolicyVersionsV1PolicySchema" }, "type": "array" } }, "type": "object" }, - "GoogleChromePolicyV1ModifyOrgUnitPolicyRequest": { - "description": "Request parameters for modifying a policy value for a specific org unit target.", - "id": "GoogleChromePolicyV1ModifyOrgUnitPolicyRequest", + "GoogleChromePolicyVersionsV1ModifyGroupPolicyRequest": { + "description": "Request parameters for modifying a policy value for a specific group target.", + "id": "GoogleChromePolicyVersionsV1ModifyGroupPolicyRequest", "properties": { "policyTargetKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", - "description": "Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit." + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target for which we want to modify a policy. The target resource must point to a Group." }, "policyValue": { - "$ref": "GoogleChromePolicyV1PolicyValue", + "$ref": "GoogleChromePolicyVersionsV1PolicyValue", "description": "The new value for the policy." }, "updateMask": { @@ -455,9 +891,82 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicySchema": { - "description": "Resource representing a policy schema. Next ID: 12", - "id": "GoogleChromePolicyV1PolicySchema", + "GoogleChromePolicyVersionsV1ModifyOrgUnitPolicyRequest": { + "description": "Request parameters for modifying a policy value for a specific org unit target.", + "id": "GoogleChromePolicyVersionsV1ModifyOrgUnitPolicyRequest", + "properties": { + "policyTargetKey": { + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target for which we want to modify a policy. The target resource must point to an Org Unit." + }, + "policyValue": { + "$ref": "GoogleChromePolicyVersionsV1PolicyValue", + "description": "The new value for the policy." + }, + "updateMask": { + "description": "Required. Policy fields to update. Only fields in this mask will be updated; other fields in `policy_value` will be ignored (even if they have values). If a field is in this list it must have a value in 'policy_value'.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1NetworkSetting": { + "description": "A network setting contains network configurations.", + "id": "GoogleChromePolicyVersionsV1NetworkSetting", + "properties": { + "policySchema": { + "description": "The fully qualified name of the network setting.", + "type": "string" + }, + "value": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The value of the network setting.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1NumericRangeConstraint": { + "description": "A constraint on upper and/or lower bounds, with at least one being set.", + "id": "GoogleChromePolicyVersionsV1NumericRangeConstraint", + "properties": { + "maximum": { + "description": "Maximum value.", + "format": "int64", + "type": "string" + }, + "minimum": { + "description": "Minimum value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1PolicyModificationFieldError": { + "description": "Error information for a modification request of a specific field on a specific policy.", + "id": "GoogleChromePolicyVersionsV1PolicyModificationFieldError", + "properties": { + "error": { + "description": "Output only. The error message related to the field.", + "readOnly": true, + "type": "string" + }, + "field": { + "description": "Output only. The name of the field with the error.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1PolicySchema": { + "description": "Resource representing a policy schema.", + "id": "GoogleChromePolicyVersionsV1PolicySchema", "properties": { "accessRestrictions": { "description": "Output only. Specific access restrictions related to this policy.", @@ -470,11 +979,15 @@ "additionalTargetKeyNames": { "description": "Output only. Additional key names that will be used to identify the target of the policy value. When specifying a `policyTargetKey`, each of the additional keys specified here will have to be included in the `additionalTargetKeys` map.", "items": { - "$ref": "GoogleChromePolicyV1AdditionalTargetKeyName" + "$ref": "GoogleChromePolicyVersionsV1AdditionalTargetKeyName" }, "readOnly": true, "type": "array" }, + "categoryTitle": { + "description": "Title of the category in which a setting belongs.", + "type": "string" + }, "definition": { "$ref": "Proto2FileDescriptorProto", "description": "Schema definition using proto descriptor." @@ -482,7 +995,7 @@ "fieldDescriptions": { "description": "Output only. Detailed description of each field that is part of the schema.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchemaFieldDescription" + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription" }, "readOnly": true, "type": "array" @@ -494,15 +1007,19 @@ "notices": { "description": "Output only. Special notice messages related to setting certain values in certain fields in the schema.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchemaNoticeDescription" + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaNoticeDescription" }, "readOnly": true, "type": "array" }, + "policyApiLifecycle": { + "$ref": "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle", + "description": "Output only. Current lifecycle information.", + "readOnly": true + }, "policyApiLifeycle": { "$ref": "ChromeCrosDpanelAutosettingsProtoPolicyApiLifecycle", - "description": "Output only. Current life cycle information.", - "readOnly": true + "description": "Deprecated field because of typo." }, "policyDescription": { "description": "Output only. Description about the policy schema for user consumption.", @@ -510,7 +1027,7 @@ "type": "string" }, "schemaName": { - "description": "Output only. The fully qualified name of the policy schema. This value is used to fill the field `policy_schema` in PolicyValue when calling BatchInheritOrgUnitPolicies or BatchModifyOrgUnitPolicies", + "description": "Output only. The fully qualified name of the policy schema. This value is used to fill the field `policy_schema` in PolicyValue when calling BatchInheritOrgUnitPolicies BatchModifyOrgUnitPolicies BatchModifyGroupPolicies or BatchDeleteGroupPolicies.", "readOnly": true, "type": "string" }, @@ -540,9 +1057,9 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicySchemaFieldDependencies": { + "GoogleChromePolicyVersionsV1PolicySchemaFieldDependencies": { "description": "The field and the value it must have for another field to be allowed to be set.", - "id": "GoogleChromePolicyV1PolicySchemaFieldDependencies", + "id": "GoogleChromePolicyVersionsV1PolicySchemaFieldDependencies", "properties": { "sourceField": { "description": "The source field which this field depends on.", @@ -555,13 +1072,17 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicySchemaFieldDescription": { + "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription": { "description": "Provides detailed information for a particular field that is part of a PolicySchema.", - "id": "GoogleChromePolicyV1PolicySchemaFieldDescription", + "id": "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription", "properties": { - "description": { - "description": "Output only. The description for the field.", + "defaultValue": { + "description": "Output only. Client default if the policy is unset.", "readOnly": true, + "type": "any" + }, + "description": { + "description": "Deprecated. Use name and field_description instead. The description for the field.", "type": "string" }, "field": { @@ -569,14 +1090,24 @@ "readOnly": true, "type": "string" }, + "fieldConstraints": { + "$ref": "GoogleChromePolicyVersionsV1FieldConstraints", + "description": "Output only. Information on any input constraints associated on the values for the field.", + "readOnly": true + }, "fieldDependencies": { - "description": "Output only. Provides a list of fields and the values they must have for this field to be allowed to be set.", + "description": "Output only. Provides a list of fields and values. At least one of the fields must have the corresponding value in order for this field to be allowed to be set.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchemaFieldDependencies" + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDependencies" }, "readOnly": true, "type": "array" }, + "fieldDescription": { + "description": "Output only. The description of the field.", + "readOnly": true, + "type": "string" + }, "inputConstraint": { "description": "Output only. Any input constraints associated on the values for the field.", "readOnly": true, @@ -585,15 +1116,28 @@ "knownValueDescriptions": { "description": "Output only. If the field has a set of known values, this field will provide a description for these values.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchemaFieldKnownValueDescription" + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldKnownValueDescription" }, "readOnly": true, "type": "array" }, + "name": { + "description": "Output only. The name of the field.", + "readOnly": true, + "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.", "items": { - "$ref": "GoogleChromePolicyV1PolicySchemaFieldDescription" + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaFieldDescription" + }, + "readOnly": true, + "type": "array" + }, + "requiredItems": { + "description": "Output only. Provides a list of fields that are required to be set if this field has a certain value.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1PolicySchemaRequiredItems" }, "readOnly": true, "type": "array" @@ -601,9 +1145,9 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicySchemaFieldKnownValueDescription": { + "GoogleChromePolicyVersionsV1PolicySchemaFieldKnownValueDescription": { "description": "Provides detailed information about a known value that is allowed for a particular field in a PolicySchema.", - "id": "GoogleChromePolicyV1PolicySchemaFieldKnownValueDescription", + "id": "GoogleChromePolicyVersionsV1PolicySchemaFieldKnownValueDescription", "properties": { "description": { "description": "Output only. Additional description for this value.", @@ -618,9 +1162,9 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicySchemaNoticeDescription": { + "GoogleChromePolicyVersionsV1PolicySchemaNoticeDescription": { "description": "Provides special notice messages related to a particular value in a field that is part of a PolicySchema.", - "id": "GoogleChromePolicyV1PolicySchemaNoticeDescription", + "id": "GoogleChromePolicyVersionsV1PolicySchemaNoticeDescription", "properties": { "acknowledgementRequired": { "description": "Output only. Whether the user needs to acknowledge the notice message before the value can be set.", @@ -645,9 +1189,30 @@ }, "type": "object" }, - "GoogleChromePolicyV1PolicyTargetKey": { + "GoogleChromePolicyVersionsV1PolicySchemaRequiredItems": { + "description": "The fields that will become required based on the value of this field.", + "id": "GoogleChromePolicyVersionsV1PolicySchemaRequiredItems", + "properties": { + "fieldConditions": { + "description": "The value(s) of the field that provoke required field enforcement. An empty field_conditions implies that any value assigned to this field will provoke required field enforcement.", + "items": { + "type": "string" + }, + "type": "array" + }, + "requiredFields": { + "description": "The fields that are required as a consequence of the field conditions.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1PolicyTargetKey": { "description": "The key used to identify the target on which the policy will be applied.", - "id": "GoogleChromePolicyV1PolicyTargetKey", + "id": "GoogleChromePolicyVersionsV1PolicyTargetKey", "properties": { "additionalTargetKeys": { "additionalProperties": { @@ -657,15 +1222,15 @@ "type": "object" }, "targetResource": { - "description": "The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "description": "The target resource on which this policy is applied. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\") * Group (\"groups/{group_id}\")", "type": "string" } }, "type": "object" }, - "GoogleChromePolicyV1PolicyValue": { + "GoogleChromePolicyVersionsV1PolicyValue": { "description": "A particular value for a policy managed by the service.", - "id": "GoogleChromePolicyV1PolicyValue", + "id": "GoogleChromePolicyVersionsV1PolicyValue", "properties": { "policySchema": { "description": "The fully qualified name of the policy schema associated with this policy.", @@ -682,9 +1247,66 @@ }, "type": "object" }, - "GoogleChromePolicyV1ResolveRequest": { + "GoogleChromePolicyVersionsV1RemoveCertificateErrorDetails": { + "description": "Details of the errors encountered during a remove certificate 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": "GoogleChromePolicyVersionsV1RemoveCertificateErrorDetails", + "properties": { + "certificateReferences": { + "description": "Output only. If the certificate was not removed, a list of references to the certificate that prevented it from being removed. Only unreferenced certificates can be removed.", + "items": { + "$ref": "GoogleChromePolicyVersionsV1CertificateReference" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1RemoveCertificateRequest": { + "description": "Request object for removing a certificate.", + "id": "GoogleChromePolicyVersionsV1RemoveCertificateRequest", + "properties": { + "networkId": { + "description": "Required. The GUID of the certificate to remove.", + "type": "string" + }, + "targetResource": { + "description": "Required. The target resource on which this certificate will be removed. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1RemoveCertificateResponse": { + "description": "Response object for removing a certificate.", + "id": "GoogleChromePolicyVersionsV1RemoveCertificateResponse", + "properties": {}, + "type": "object" + }, + "GoogleChromePolicyVersionsV1RemoveNetworkRequest": { + "description": "Request object for removing a network", + "id": "GoogleChromePolicyVersionsV1RemoveNetworkRequest", + "properties": { + "networkId": { + "description": "Required. The GUID of the network to remove.", + "type": "string" + }, + "targetResource": { + "description": "Required. The target resource on which this network will be removed. The following resources are supported: * Organizational Unit (\"orgunits/{orgunit_id}\")", + "type": "string" + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1RemoveNetworkResponse": { + "description": "Response object for removing a network.", + "id": "GoogleChromePolicyVersionsV1RemoveNetworkResponse", + "properties": {}, + "type": "object" + }, + "GoogleChromePolicyVersionsV1ResolveRequest": { "description": "Request message for getting the resolved policy value for a specific target.", - "id": "GoogleChromePolicyV1ResolveRequest", + "id": "GoogleChromePolicyVersionsV1ResolveRequest", "properties": { "pageSize": { "description": "The maximum number of policies to return, defaults to 100 and has a maximum of 1000.", @@ -696,19 +1318,19 @@ "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/chrome-management/guides/policyapi for details on schema namepsaces. For example: Valid: \"chrome.users.*\", \"chrome.users.apps.*\", \"chrome.printers.*\" Invalid: \"*\", \"*.users\", \"chrome.*\", \"chrome.*.apps.*\"", + "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.*\"", "type": "string" }, "policyTargetKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", - "description": "Required. The key of the target resource on which the policies should be resolved. The target resource must point to an Org Unit." + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target resource on which the policies should be resolved." } }, "type": "object" }, - "GoogleChromePolicyV1ResolveResponse": { + "GoogleChromePolicyVersionsV1ResolveResponse": { "description": "Response message for getting the resolved policy value for a specific target.", - "id": "GoogleChromePolicyV1ResolveResponse", + "id": "GoogleChromePolicyVersionsV1ResolveResponse", "properties": { "nextPageToken": { "description": "The page token used to get the next set of resolved policies found by the request.", @@ -717,43 +1339,65 @@ "resolvedPolicies": { "description": "The list of resolved policies found by the resolve request.", "items": { - "$ref": "GoogleChromePolicyV1ResolvedPolicy" + "$ref": "GoogleChromePolicyVersionsV1ResolvedPolicy" }, "type": "array" } }, "type": "object" }, - "GoogleChromePolicyV1ResolvedPolicy": { + "GoogleChromePolicyVersionsV1ResolvedPolicy": { "description": "The resolved value of a policy for a given target.", - "id": "GoogleChromePolicyV1ResolvedPolicy", + "id": "GoogleChromePolicyVersionsV1ResolvedPolicy", "properties": { "addedSourceKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", "description": "Output only. The added source key establishes at which level an entity was explicitly added for management. This is useful for certain type of policies that are only applied if they are explicitly added for management. For example: apps and networks. An entity can only be deleted from management in an Organizational Unit that it was explicitly added to. If this is not present it means that the policy is managed without the need to explicitly add an entity, for example: standard user or device policies.", "readOnly": true }, "sourceKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", "description": "Output only. The source resource from which this policy value is obtained. May be the same as `targetKey` if the policy is directly modified on the target, otherwise it would be another resource from which the policy gets its value (if applicable). If not present, the source is the default value for the customer.", "readOnly": true }, "targetKey": { - "$ref": "GoogleChromePolicyV1PolicyTargetKey", + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", "description": "Output only. The target resource for which the resolved policy value applies.", "readOnly": true }, "value": { - "$ref": "GoogleChromePolicyV1PolicyValue", + "$ref": "GoogleChromePolicyVersionsV1PolicyValue", "description": "Output only. The resolved value of the policy.", "readOnly": true } }, "type": "object" }, - "GoogleChromePolicyV1UploadPolicyFileRequest": { - "description": "Request message for uploading a file for a policy. Next ID: 5", - "id": "GoogleChromePolicyV1UploadPolicyFileRequest", + "GoogleChromePolicyVersionsV1UpdateGroupPriorityOrderingRequest": { + "description": "Request message for updating the group priority ordering of an app.", + "id": "GoogleChromePolicyVersionsV1UpdateGroupPriorityOrderingRequest", + "properties": { + "groupIds": { + "description": "Required. The group IDs, in desired priority ordering.", + "items": { + "type": "string" + }, + "type": "array" + }, + "policyNamespace": { + "description": "Required. The namespace of the policy type for the request.", + "type": "string" + }, + "policyTargetKey": { + "$ref": "GoogleChromePolicyVersionsV1PolicyTargetKey", + "description": "Required. The key of the target for which we want to update the group priority ordering. The target resource must point to an app." + } + }, + "type": "object" + }, + "GoogleChromePolicyVersionsV1UploadPolicyFileRequest": { + "description": "Request message for uploading a file for a policy.", + "id": "GoogleChromePolicyVersionsV1UploadPolicyFileRequest", "properties": { "policyField": { "description": "Required. The fully qualified policy schema and field name this file is uploaded for. This information will be used to validate the content type of the file.", @@ -762,9 +1406,9 @@ }, "type": "object" }, - "GoogleChromePolicyV1UploadPolicyFileResponse": { - "description": "Response message for downloading an uploaded file. Next ID: 2", - "id": "GoogleChromePolicyV1UploadPolicyFileResponse", + "GoogleChromePolicyVersionsV1UploadPolicyFileResponse": { + "description": "Response message for downloading an uploaded file.", + "id": "GoogleChromePolicyVersionsV1UploadPolicyFileResponse", "properties": { "downloadUri": { "description": "The uri for end user to download the file.", @@ -774,7 +1418,7 @@ "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" @@ -983,7 +1627,7 @@ "type": "string" }, "syntax": { - "description": "The syntax of the proto file. The supported values are \"proto2\" and \"proto3\".", + "description": "The syntax of the proto file. The supported values are \"proto2\", \"proto3\", and \"editions\". If `edition` is present, this value must be \"editions\".", "type": "string" } }, diff --git a/etc/api/chromeuxreport/v1/chromeuxreport-api.json b/etc/api/chromeuxreport/v1/chromeuxreport-api.json index cc56f8af76..4643447313 100644 --- a/etc/api/chromeuxreport/v1/chromeuxreport-api.json +++ b/etc/api/chromeuxreport/v1/chromeuxreport-api.json @@ -116,7 +116,7 @@ } } }, - "revision": "20220302", + "revision": "20230117", "rootUrl": "https://chromeuxreport.googleapis.com/", "schemas": { "Bin": { @@ -139,6 +139,43 @@ }, "type": "object" }, + "CollectionPeriod": { + "description": "The collection period is a date range which includes the `first` and `last` day.", + "id": "CollectionPeriod", + "properties": { + "firstDate": { + "$ref": "Date", + "description": "The first day in the collection period, inclusive." + }, + "lastDate": { + "$ref": "Date", + "description": "The last day in the collection period, inclusive." + } + }, + "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" + }, "Key": { "description": "Key defines all the dimensions that identify this record as unique.", "id": "Key", @@ -187,7 +224,7 @@ }, "percentiles": { "$ref": "Percentiles", - "description": "Common useful percentiles of the Metric. The value type for the percentiles will be the same as the value types given for the Histogram bins." + "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" @@ -228,7 +265,7 @@ "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_uncapped_cumulative_layout_shift\"]", + "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" }, @@ -264,6 +301,10 @@ "description": "Record is a single Chrome UX report data record. It contains use experience statistics for a single url pattern and set of dimensions.", "id": "Record", "properties": { + "collectionPeriod": { + "$ref": "CollectionPeriod", + "description": "The collection period indicates when the data reflected in this record was collected." + }, "key": { "$ref": "Key", "description": "Key defines all of the unique querying parameters needed to look up a user experience record." @@ -272,7 +313,7 @@ "additionalProperties": { "$ref": "Metric" }, - "description": "Metrics is the map of user experience 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\"]", + "description": "Metrics is the map of user experience 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" } }, diff --git a/etc/api/civicinfo/v2/civicinfo-api.json b/etc/api/civicinfo/v2/civicinfo-api.json index c956fbe0b3..bdb52f9bf8 100644 --- a/etc/api/civicinfo/v2/civicinfo-api.json +++ b/etc/api/civicinfo/v2/civicinfo-api.json @@ -352,7 +352,7 @@ } } }, - "revision": "20211211", + "revision": "20230123", "rootUrl": "https://civicinfo.googleapis.com/", "schemas": { "AdministrationRegion": { @@ -750,6 +750,19 @@ "ocdDivisionId": { "description": "The political division of the election. Represented as an OCD Division ID. Voters within these political jurisdictions are covered by this election. This is typically a state such as ocd-division/country:us/state:ca or for the midterms or general election the entire US (i.e. ocd-division/country:us).", "type": "string" + }, + "shapeLookupBehavior": { + "enum": [ + "shapeLookupDefault", + "shapeLookupDisabled", + "shapeLookupEnabled" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" } }, "type": "object" @@ -946,7 +959,7 @@ "typeTransitDeparture", "typeTransitLeg", "typeTransitLine", - "typeTransitAgency", + "typeTransitAgencyDeprecatedValue", "typeTransitTransfer", "typeSegmentPath", "typeRoadSign", @@ -1202,6 +1215,8 @@ "typePhoneNumberAreaCode", "typeBusinessCorridor", "typeAddressTemplate", + "typeTransitAgency", + "typeFutureGeometry", "typeEvent", "typeEarthquake", "typeHurricane", @@ -1252,6 +1267,7 @@ "typeCompoundSection", "typeTerminalPoint", "typeRegulatedArea", + "typeLogicalBorder", "typeDoNotUseReservedToCatchGeneratedFiles", "typeUnknown" ], @@ -1315,7 +1331,7 @@ "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", - "A transit agency operates a number of lines, typically all in the same city, region or country. See also transitagency.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.", @@ -1370,7 +1386,7 @@ "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).", - "RESERVED", + "DEPRECATED", "DEPRECATED", "DEPRECATED", "DEPRECATED", @@ -1571,6 +1587,8 @@ "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", @@ -1607,8 +1625,8 @@ "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", - "Establishment POIs can be referenced by TYPE_COMPOUND features using the RELATION_PRIMARILY_OCCUPIED_BY. This is the reciprocal relation of the RELATION_OCCUPIES.", - "Represents service-only establishments (those without a storefront location). 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.", + "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", @@ -1620,7 +1638,8 @@ "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. Features of this type should have one or more gcids corresponding to their specific regulation.", + "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." ], @@ -1877,6 +1896,87 @@ }, "type": "object" }, + "Precinct": { + "id": "Precinct", + "properties": { + "administrationRegionId": { + "description": "ID of the AdministrationRegion message for this precinct. Corresponds to LocalityId xml tag.", + "type": "string" + }, + "contestId": { + "description": "ID(s) of the Contest message(s) for this precinct.", + "items": { + "type": "string" + }, + "type": "array" + }, + "datasetId": { + "description": "Required. Dataset ID. What datasets our Precincts come from.", + "format": "int64", + "type": "string" + }, + "earlyVoteSiteId": { + "description": "ID(s) of the PollingLocation message(s) for this precinct.", + "items": { + "type": "string" + }, + "type": "array" + }, + "electoralDistrictId": { + "description": "ID(s) of the ElectoralDistrict message(s) for this precinct.", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "Required. A unique identifier for this precinct.", + "type": "string" + }, + "mailOnly": { + "description": "Specifies if the precinct runs mail-only elections.", + "type": "boolean" + }, + "name": { + "description": "Required. The name of the precinct.", + "type": "string" + }, + "number": { + "description": "The number of the precinct.", + "type": "string" + }, + "ocdId": { + "description": "Encouraged. The OCD ID of the precinct", + "items": { + "type": "string" + }, + "type": "array" + }, + "pollingLocationId": { + "description": "ID(s) of the PollingLocation message(s) for this precinct.", + "items": { + "type": "string" + }, + "type": "array" + }, + "spatialBoundaryId": { + "description": "ID(s) of the SpatialBoundary message(s) for this precinct. Used to specify a geometrical boundary of the precinct.", + "items": { + "type": "string" + }, + "type": "array" + }, + "splitName": { + "description": "If present, this proto corresponds to one portion of split precinct. Other portions of this precinct are guaranteed to have the same `name`. If not present, this proto represents a full precicnt.", + "type": "string" + }, + "ward": { + "description": "Specifies the ward the precinct is contained within.", + "type": "string" + } + }, + "type": "object" + }, "RepresentativeInfoData": { "id": "RepresentativeInfoData", "properties": { @@ -2050,6 +2150,13 @@ "precinctId": { "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\".", + "items": { + "$ref": "Precinct" + }, + "type": "array" + }, "state": { "description": "Local Election Information for the state that the voter votes in. For the US, there will only be one element in this array.", "items": { diff --git a/etc/api/classroom/v1/classroom-api.json b/etc/api/classroom/v1/classroom-api.json index 6b11377f72..75159a2f98 100644 --- a/etc/api/classroom/v1/classroom-api.json +++ b/etc/api/classroom/v1/classroom-api.json @@ -170,7 +170,7 @@ "courses": { "methods": { "create": { - "description": "Creates a course. The user specified in `ownerId` is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create courses or for access errors. * `NOT_FOUND` if the primary teacher is not a valid user. * `FAILED_PRECONDITION` if the course owner's account is disabled or for the following request errors: * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if an alias was specified in the `id` and already exists.", + "description": "Creates a course. The user specified in `ownerId` is the owner of the created course and added as a teacher. A non-admin requesting user can only create a course with themselves as the owner. Domain admins can create courses owned by any user within their domain. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create courses or for access errors. * `NOT_FOUND` if the primary teacher is not a valid user. * `FAILED_PRECONDITION` if the course owner's account is disabled or for the following request errors: * UserCannotOwnCourse * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if an alias was specified in the `id` and already exists.", "flatPath": "v1/courses", "httpMethod": "POST", "id": "classroom.courses.create", @@ -297,7 +297,7 @@ ] }, "patch": { - "description": "Updates one or more fields in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `INVALID_ARGUMENT` if invalid fields are specified in the update mask or if no update mask is supplied. * `FAILED_PRECONDITION` for the following request errors: * CourseNotModifiable", + "description": "Updates one or more fields in a course. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to modify the requested course or for access errors. * `NOT_FOUND` if no course exists with the requested ID. * `INVALID_ARGUMENT` if invalid fields are specified in the update mask or if no update mask is supplied. * `FAILED_PRECONDITION` for the following request errors: * CourseNotModifiable * InactiveCourseOwner * IneligibleOwner", "flatPath": "v1/courses/{id}", "httpMethod": "PATCH", "id": "classroom.courses.patch", @@ -1471,7 +1471,7 @@ "students": { "methods": { "create": { - "description": "Adds a user as a student of a course. Domain administrators are permitted to [directly add](https://developers.google.com/classroom/guides/manage-users) users within their domain as students to courses within their domain. Students are permitted to add themselves to a course using an enrollment code. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create students in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if the user is already a student or teacher in the course.", + "description": "Adds a user as a student of a course. Domain administrators are permitted to [directly add](https://developers.google.com/classroom/guides/manage-users) users within their domain as students to courses within their domain. Students are permitted to add themselves to a course using an enrollment code. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create students in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * UserGroupsMembershipLimitReached * InactiveCourseOwner * `ALREADY_EXISTS` if the user is already a student or teacher in the course.", "flatPath": "v1/courses/{courseId}/students", "httpMethod": "POST", "id": "classroom.courses.students.create", @@ -1612,7 +1612,7 @@ "teachers": { "methods": { "create": { - "description": "Creates a teacher of a course. Domain administrators are permitted to [directly add](https://developers.google.com/classroom/guides/manage-users) users within their domain as teachers to courses within their domain. Non-admin users should send an Invitation instead. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create teachers in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * `ALREADY_EXISTS` if the user is already a teacher or student in the course.", + "description": "Creates a teacher of a course. Domain administrators are permitted to [directly add](https://developers.google.com/classroom/guides/manage-users) users within their domain as teachers to courses within their domain. Non-admin users should send an Invitation instead. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create teachers in this course or for access errors. * `NOT_FOUND` if the requested course ID does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled, for the following request errors: * CourseMemberLimitReached * CourseNotModifiable * CourseTeacherLimitReached * UserGroupsMembershipLimitReached * InactiveCourseOwner * `ALREADY_EXISTS` if the user is already a teacher or student in the course.", "flatPath": "v1/courses/{courseId}/teachers", "httpMethod": "POST", "id": "classroom.courses.teachers.create", @@ -1944,7 +1944,7 @@ ] }, "create": { - "description": "Creates an invitation. Only one invitation for a user and course may exist at a time. Delete and re-create an invitation to make changes. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create invitations for this course or for access errors. * `NOT_FOUND` if the course or the user does not exist. * `FAILED_PRECONDITION` if the requested user's account is disabled or if the user already has this role or a role with greater permissions. * `ALREADY_EXISTS` if an invitation for the specified user and course already exists.", + "description": "Creates an invitation. Only one invitation for a user and course may exist at a time. Delete and re-create an invitation to make changes. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to create invitations for this course or for access errors. * `NOT_FOUND` if the course or the user does not exist. * `FAILED_PRECONDITION`: * if the requested user's account is disabled. * if the user already has this role or a role with greater permissions. * for the following request errors: * IneligibleOwner * `ALREADY_EXISTS` if an invitation for the specified user and course already exists.", "flatPath": "v1/invitations", "httpMethod": "POST", "id": "classroom.invitations.create", @@ -2400,7 +2400,7 @@ } } }, - "revision": "20220224", + "revision": "20230119", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "Announcement": { @@ -2965,7 +2965,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -3029,7 +3029,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -4054,7 +4054,7 @@ "id": "UserProfile", "properties": { "emailAddress": { - "description": "Email address of the user. Read-only.", + "description": "Email address of the user. Must request `https://www.googleapis.com/auth/classroom.profile.emails` scope for this field to be populated in a response body. Read-only.", "type": "string" }, "id": { @@ -4073,11 +4073,11 @@ "type": "array" }, "photoUrl": { - "description": "URL of user's profile photo. Read-only.", + "description": "URL of user's profile photo. Must request `https://www.googleapis.com/auth/classroom.profile.photos` scope for this field to be populated in a response body. Read-only.", "type": "string" }, "verifiedTeacher": { - "description": "Represents whether a G Suite for Education user's domain administrator has explicitly verified them as being a teacher. If the user is not a member of a G Suite for Education domain, than this field is always false. Read-only", + "description": "Represents whether a Google Workspace for Education user's domain administrator has explicitly verified them as being a teacher. This field is always false if the user is not a member of a Google Workspace for Education domain. Read-only", "type": "boolean" } }, diff --git a/etc/api/cloudasset/v1/cloudasset-api.json b/etc/api/cloudasset/v1/cloudasset-api.json index 9d69333f32..65ce9c1934 100644 --- a/etc/api/cloudasset/v1/cloudasset-api.json +++ b/etc/api/cloudasset/v1/cloudasset-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://cloudasset.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Asset", - "description": "The cloud asset API manages the history and inventory of cloud resources.", + "description": "The Cloud Asset API manages the history and inventory of Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", "fullyEncodeReservedExpansion": true, @@ -137,8 +137,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset.", + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset.", "The runtime OS Inventory information.", "The related resources." ], @@ -404,7 +404,7 @@ "type": "string" }, "savedQueryId": { - "description": "Required. The ID to use for the saved query, which must be unique in the specified parent. It will become the final component of the saved query's resource name. This value should be 4-63 characters, and valid characters are /a-z-/. Notice that this field is required in the saved query creation, and the `name` field of the `saved_query` will be ignored.", + "description": "Required. The ID to use for the saved query, which must be unique in the specified parent. It will become the final component of the saved query's resource name. This value should be 4-63 characters, and valid characters are `a-z-`. Notice that this field is required in the saved query creation, and the `name` field of the `saved_query` will be ignored.", "location": "query", "type": "string" } @@ -582,7 +582,7 @@ "type": "string" }, "analysisQuery.options.analyzeServiceAccountImpersonation": { - "description": "Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning rpc instead. For example, if the request analyzes for which resources user A has permission P, and there's an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there's another IAM policy states service account SA has permission P to a GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a GCP folder F, and there's an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there's another IAM policy states service account SA has permission P to the GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Only the following permissions are considered in this analysis: * `iam.serviceAccounts.actAs` * `iam.serviceAccounts.signBlob` * `iam.serviceAccounts.signJwt` * `iam.serviceAccounts.getAccessToken` * `iam.serviceAccounts.getOpenIdToken` * `iam.serviceAccounts.implicitDelegation` Default is false.", + "description": "Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning RPC instead. For example, if the request analyzes for which resources user A has permission P, and there's an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there's another IAM policy states service account SA has permission P to a Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a Google Cloud folder F, and there's an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there's another IAM policy states service account SA has permission P to the Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Only the following permissions are considered in this analysis: * `iam.serviceAccounts.actAs` * `iam.serviceAccounts.signBlob` * `iam.serviceAccounts.signJwt` * `iam.serviceAccounts.getAccessToken` * `iam.serviceAccounts.getOpenIdToken` * `iam.serviceAccounts.implicitDelegation` Default is false.", "location": "query", "type": "boolean" }, @@ -592,7 +592,7 @@ "type": "boolean" }, "analysisQuery.options.expandResources": { - "description": "Optional. If true and IamPolicyAnalysisQuery.resource_selector is not specified, the resource section of the result will expand any resource attached to an IAM policy to include resources lower in the resource hierarchy. For example, if the request analyzes for which resources user A has permission P, and the results include an IAM policy with P on a GCP folder, the results will also include resources in that folder with permission P. If true and IamPolicyAnalysisQuery.resource_selector is specified, the resource section of the result will expand the specified resource to include resources lower in the resource hierarchy. Only project or lower resources are supported. Folder and organization resource cannot be used together with this option. For example, if the request analyzes for which users have permission P on a GCP project with this option enabled, the results will include all users who have permission P on that project or any lower resource. If true, the default max expansion per resource is 1000 for AssetService.AnalyzeIamPolicy][] and 100000 for AssetService.AnalyzeIamPolicyLongrunning][]. Default is false.", + "description": "Optional. If true and IamPolicyAnalysisQuery.resource_selector is not specified, the resource section of the result will expand any resource attached to an IAM policy to include resources lower in the resource hierarchy. For example, if the request analyzes for which resources user A has permission P, and the results include an IAM policy with P on a Google Cloud folder, the results will also include resources in that folder with permission P. If true and IamPolicyAnalysisQuery.resource_selector is specified, the resource section of the result will expand the specified resource to include resources lower in the resource hierarchy. Only project or lower resources are supported. Folder and organization resources cannot be used together with this option. For example, if the request analyzes for which users have permission P on a Google Cloud project with this option enabled, the results will include all users who have permission P on that project or any lower resource. If true, the default max expansion per resource is 1000 for AssetService.AnalyzeIamPolicy][] and 100000 for AssetService.AnalyzeIamPolicyLongrunning][]. Default is false.", "location": "query", "type": "boolean" }, @@ -681,12 +681,12 @@ ], "parameters": { "destinationParent": { - "description": "Required. Name of the GCP Folder or Organization to reparent the target resource. The analysis will be performed against hypothetically moving the resource to this specified desitination parent. This can only be a Folder number (such as \"folders/123\") or an Organization number (such as \"organizations/123\").", + "description": "Required. Name of the Google Cloud folder or organization to reparent the target resource. The analysis will be performed against hypothetically moving the resource to this specified desitination parent. This can only be a folder number (such as \"folders/123\") or an organization number (such as \"organizations/123\").", "location": "query", "type": "string" }, "resource": { - "description": "Required. Name of the resource to perform the analysis against. Only GCP Project are supported as of today. Hence, this can only be Project ID (such as \"projects/my-project-id\") or a Project Number (such as \"projects/12345\").", + "description": "Required. Name of the resource to perform the analysis against. Only Google Cloud projects are supported as of today. Hence, this can only be a project ID (such as \"projects/my-project-id\") or a project number (such as \"projects/12345\").", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -716,6 +716,144 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "analyzeOrgPolicies": { + "description": "Analyzes organization policies under a scope.", + "flatPath": "v1/{v1Id}/{v1Id1}:analyzeOrgPolicies", + "httpMethod": "GET", + "id": "cloudasset.analyzeOrgPolicies", + "parameterOrder": [ + "scope" + ], + "parameters": { + "constraint": { + "description": "Required. The name of the constraint to analyze organization policies for. The response only contains analyzed organization policies for the provided constraint.", + "location": "query", + "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\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return per page. If unspecified, AnalyzeOrgPoliciesResponse.org_policy_results will contain 20 items with a maximum of 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The pagination token to retrieve the next page.", + "location": "query", + "type": "string" + }, + "scope": { + "description": "Required. The organization to scope the request. Only organization policies within the scope will be analyzed. * organizations/{ORGANIZATION_NUMBER} (e.g., \"organizations/123456\")", + "location": "path", + "pattern": "^[^/]+/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+scope}:analyzeOrgPolicies", + "response": { + "$ref": "AnalyzeOrgPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v1/{v1Id}/{v1Id1}:analyzeOrgPolicyGovernedAssets", + "httpMethod": "GET", + "id": "cloudasset.analyzeOrgPolicyGovernedAssets", + "parameterOrder": [ + "scope" + ], + "parameters": { + "constraint": { + "description": "Required. The name of the constraint to analyze governed assets for. The analysis only contains analyzed organization policies for the provided constraint.", + "location": "query", + "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.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return per page. If unspecified, AnalyzeOrgPolicyGovernedAssetsResponse.governed_assets will contain 100 items with a maximum of 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The pagination token to retrieve the next page.", + "location": "query", + "type": "string" + }, + "scope": { + "description": "Required. The organization to scope the request. Only organization policies within the scope will be analyzed. The output assets will also be limited to the ones governed by those in-scope organization policies. * organizations/{ORGANIZATION_NUMBER} (e.g., \"organizations/123456\")", + "location": "path", + "pattern": "^[^/]+/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+scope}:analyzeOrgPolicyGovernedAssets", + "response": { + "$ref": "AnalyzeOrgPolicyGovernedAssetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "analyzeOrgPolicyGovernedContainers": { + "description": "Analyzes organization policies governed containers (projects, folders or organization) under a scope.", + "flatPath": "v1/{v1Id}/{v1Id1}:analyzeOrgPolicyGovernedContainers", + "httpMethod": "GET", + "id": "cloudasset.analyzeOrgPolicyGovernedContainers", + "parameterOrder": [ + "scope" + ], + "parameters": { + "constraint": { + "description": "Required. The name of the constraint to analyze governed containers for. The analysis only contains organization policies for the provided constraint.", + "location": "query", + "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\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return per page. If unspecified, AnalyzeOrgPolicyGovernedContainersResponse.governed_containers will contain 100 items with a maximum of 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The pagination token to retrieve the next page.", + "location": "query", + "type": "string" + }, + "scope": { + "description": "Required. The organization to scope the request. Only organization policies within the scope will be analyzed. The output containers will also be limited to the ones governed by those in-scope organization policies. * organizations/{ORGANIZATION_NUMBER} (e.g., \"organizations/123456\")", + "location": "path", + "pattern": "^[^/]+/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+scope}:analyzeOrgPolicyGovernedContainers", + "response": { + "$ref": "AnalyzeOrgPolicyGovernedContainersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "batchGetAssetsHistory": { "description": "Batch gets the update history of assets that overlap a time window. For IAM_POLICY content, this API outputs history when the asset and its attached IAM POLICY both exist. This can create gaps in the output history. Otherwise, this API outputs history with asset in both non-delete or deleted status. If a specified asset does not exist, this API returns an INVALID_ARGUMENT error.", "flatPath": "v1/{v1Id}/{v1Id1}:batchGetAssetsHistory", @@ -746,8 +884,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset.", + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset.", "The runtime OS Inventory information.", "The related resources." ], @@ -816,6 +954,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1/{v1Id}/{v1Id1}:queryAssets", + "httpMethod": "POST", + "id": "cloudasset.queryAssets", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The relative name of the root asset. This can only be an organization number (such as \"organizations/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"), or a folder number (such as \"folders/123\"). Only assets belonging to the `parent` will be returned.", + "location": "path", + "pattern": "^[^/]+/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:queryAssets", + "request": { + "$ref": "QueryAssetsRequest" + }, + "response": { + "$ref": "QueryAssetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "searchAllIamPolicies": { "description": "Searches all IAM policies within the specified scope, such as a project, folder, or organization. The caller must be granted the `cloudasset.assets.searchAllIamPolicies` permission on the desired scope, otherwise the request will be rejected.", "flatPath": "v1/{v1Id}/{v1Id1}:searchAllIamPolicies", @@ -848,7 +1014,7 @@ "type": "string" }, "query": { - "description": "Optional. The query statement. See [how to construct a query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query) for more information. If not specified or empty, it will search all the IAM policies within the specified `scope`. Note that the query string is compared against each Cloud IAM policy binding, including its principals, roles, and Cloud IAM conditions. The returned Cloud IAM policies will only contain the bindings that match your query. To learn more about the IAM policy structure, see [IAM policy doc](https://cloud.google.com/iam/docs/policies#structure). Examples: * `policy:amy@gmail.com` to find IAM policy bindings that specify user \"amy@gmail.com\". * `policy:roles/compute.admin` to find IAM policy bindings that specify the Compute Admin role. * `policy:comp*` to find IAM policy bindings that contain \"comp\" as a prefix of any word in the binding. * `policy.role.permissions:storage.buckets.update` to find IAM policy bindings that specify a role containing \"storage.buckets.update\" permission. Note that if callers don't have `iam.roles.get` access to a role's included permissions, policy bindings that specify this role will be dropped from the search results. * `policy.role.permissions:upd*` to find IAM policy bindings that specify a role containing \"upd\" as a prefix of any word in the role permission. Note that if callers don't have `iam.roles.get` access to a role's included permissions, policy bindings that specify this role will be dropped from the search results. * `resource:organizations/123456` to find IAM policy bindings that are set on \"organizations/123456\". * `resource=//cloudresourcemanager.googleapis.com/projects/myproject` to find IAM policy bindings that are set on the project named \"myproject\". * `Important` to find IAM policy bindings that contain \"Important\" as a word in any of the searchable fields (except for the included permissions). * `resource:(instance1 OR instance2) policy:amy` to find IAM policy bindings that are set on resources \"instance1\" or \"instance2\" and also specify user \"amy\". * `roles:roles/compute.admin` to find IAM policy bindings that specify the Compute Admin role. * `memberTypes:user` to find IAM policy bindings that contain the principal type \"user\".", + "description": "Optional. The query statement. See [how to construct a query](https://cloud.google.com/asset-inventory/docs/searching-iam-policies#how_to_construct_a_query) for more information. If not specified or empty, it will search all the IAM policies within the specified `scope`. Note that the query string is compared against each IAM policy binding, including its principals, roles, and IAM conditions. The returned IAM policies will only contain the bindings that match your query. To learn more about the IAM policy structure, see the [IAM policy documentation](https://cloud.google.com/iam/help/allow-policies/structure). Examples: * `policy:amy@gmail.com` to find IAM policy bindings that specify user \"amy@gmail.com\". * `policy:roles/compute.admin` to find IAM policy bindings that specify the Compute Admin role. * `policy:comp*` to find IAM policy bindings that contain \"comp\" as a prefix of any word in the binding. * `policy.role.permissions:storage.buckets.update` to find IAM policy bindings that specify a role containing \"storage.buckets.update\" permission. Note that if callers don't have `iam.roles.get` access to a role's included permissions, policy bindings that specify this role will be dropped from the search results. * `policy.role.permissions:upd*` to find IAM policy bindings that specify a role containing \"upd\" as a prefix of any word in the role permission. Note that if callers don't have `iam.roles.get` access to a role's included permissions, policy bindings that specify this role will be dropped from the search results. * `resource:organizations/123456` to find IAM policy bindings that are set on \"organizations/123456\". * `resource=//cloudresourcemanager.googleapis.com/projects/myproject` to find IAM policy bindings that are set on the project named \"myproject\". * `Important` to find IAM policy bindings that contain \"Important\" as a word in any of the searchable fields (except for the included permissions). * `resource:(instance1 OR instance2) policy:amy` to find IAM policy bindings that are set on resources \"instance1\" or \"instance2\" and also specify user \"amy\". * `roles:roles/compute.admin` to find IAM policy bindings that specify the Compute Admin role. * `memberTypes:user` to find IAM policy bindings that contain the principal type \"user\".", "location": "query", "type": "string" }, @@ -869,7 +1035,7 @@ ] }, "searchAllResources": { - "description": "Searches all Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the `cloudasset.assets.searchAllResources` permission on the desired scope, otherwise the request will be rejected.", + "description": "Searches all Google Cloud resources within the specified scope, such as a project, folder, or organization. The caller must be granted the `cloudasset.assets.searchAllResources` permission on the desired scope, otherwise the request will be rejected.", "flatPath": "v1/{v1Id}/{v1Id1}:searchAllResources", "httpMethod": "GET", "id": "cloudasset.searchAllResources", @@ -884,7 +1050,7 @@ "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 * kmsKey * createTime * updateTime * state * parentFullResourceName * parentAssetType All the other fields such as repeated fields (e.g., `networkTags`), 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 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.", "location": "query", "type": "string" }, @@ -900,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 Cloud resources whose name contains \"Important\" as a word. * `name=Important` to find the Cloud resource whose name is exactly \"Important\". * `displayName:Impor*` to find Cloud resources whose display name contains \"Impor\" as a prefix of any word in the field. * `location:us-west*` to find Cloud resources whose location contains both \"us\" and \"west\" as prefixes. * `labels:prod` to find Cloud resources whose labels contain \"prod\" as a key or value. * `labels.env:prod` to find Cloud resources that have a label \"env\" and its value is \"prod\". * `labels.env:*` to find Cloud resources that have a label \"env\". * `kmsKey:key` to find Cloud resources encrypted with a customer-managed encryption key whose name contains the word \"key\". * `state:ACTIVE` to find Cloud resources whose state contains \"ACTIVE\" as a word. * `NOT state:ACTIVE` to find Cloud resources whose state doesn't contain \"ACTIVE\" as a word. * `createTime<1609459200` to find 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 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 Cloud resources that contain \"Important\" as a word in any of the searchable fields. * `Impor*` to find 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 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\". * `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.", "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 * labels * networkTags * kmsKey * 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 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.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -929,7 +1095,7 @@ } } }, - "revision": "20220225", + "revision": "20230121", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { @@ -954,7 +1120,7 @@ "type": "object" }, "AnalyzeIamPolicyLongrunningMetadata": { - "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning rpc.", + "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning RPC.", "id": "AnalyzeIamPolicyLongrunningMetadata", "properties": { "createTime": { @@ -1018,7 +1184,7 @@ "id": "AnalyzeMoveResponse", "properties": { "moveAnalysis": { - "description": "The list of analyses returned from performing the intended resource move analysis. The analysis is grouped by different Cloud services.", + "description": "The list of analyses returned from performing the intended resource move analysis. The analysis is grouped by different Google Cloud services.", "items": { "$ref": "MoveAnalysis" }, @@ -1027,8 +1193,119 @@ }, "type": "object" }, + "AnalyzeOrgPoliciesResponse": { + "description": "The response message for AssetService.AnalyzeOrgPolicies.", + "id": "AnalyzeOrgPoliciesResponse", + "properties": { + "constraint": { + "$ref": "AnalyzerOrgPolicyConstraint", + "description": "The definition of the constraint in the request." + }, + "nextPageToken": { + "description": "The page token to fetch the next page for AnalyzeOrgPoliciesResponse.org_policy_results.", + "type": "string" + }, + "orgPolicyResults": { + "description": "The organization policies under the AnalyzeOrgPoliciesRequest.scope with the AnalyzeOrgPoliciesRequest.constraint.", + "items": { + "$ref": "OrgPolicyResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "AnalyzeOrgPolicyGovernedAssetsResponse": { + "description": "The response message for AssetService.AnalyzeOrgPolicyGovernedAssets.", + "id": "AnalyzeOrgPolicyGovernedAssetsResponse", + "properties": { + "constraint": { + "$ref": "AnalyzerOrgPolicyConstraint", + "description": "The definition of the constraint in the request." + }, + "governedAssets": { + "description": "The list of the analyzed governed assets.", + "items": { + "$ref": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedAsset" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The page token to fetch the next page for AnalyzeOrgPolicyGovernedAssetsResponse.governed_assets.", + "type": "string" + } + }, + "type": "object" + }, + "AnalyzeOrgPolicyGovernedContainersResponse": { + "description": "The response message for AssetService.AnalyzeOrgPolicyGovernedContainers.", + "id": "AnalyzeOrgPolicyGovernedContainersResponse", + "properties": { + "constraint": { + "$ref": "AnalyzerOrgPolicyConstraint", + "description": "The definition of the constraint in the request." + }, + "governedContainers": { + "description": "The list of the analyzed governed containers.", + "items": { + "$ref": "GoogleCloudAssetV1GovernedContainer" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The page token to fetch the next page for AnalyzeOrgPolicyGovernedContainersResponse.governed_containers.", + "type": "string" + } + }, + "type": "object" + }, + "AnalyzerOrgPolicy": { + "description": "This organization policy message is a modified version of the one defined in the Organization Policy system. This message contains several fields defined in the original organization policy with some new fields for analysis purpose.", + "id": "AnalyzerOrgPolicy", + "properties": { + "appliedResource": { + "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of an organization/folder/project resource where this organization policy applies to. For any user defined org policies, this field has the same value as the [attached_resource] field. Only for default policy, this field has the different value.", + "type": "string" + }, + "attachedResource": { + "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of an organization/folder/project resource where this organization policy is set. Notice that some type of constraints are defined with default policy. This field will be empty for them.", + "type": "string" + }, + "inheritFromParent": { + "description": "If `inherit_from_parent` is true, 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 effective root for evaluation.", + "type": "boolean" + }, + "reset": { + "description": "Ignores policies set above this resource and restores the default behavior of the 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": "List of rules for this organization policy.", + "items": { + "$ref": "GoogleCloudAssetV1Rule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AnalyzerOrgPolicyConstraint": { + "description": "The organization policy constraint definition.", + "id": "AnalyzerOrgPolicyConstraint", + "properties": { + "customConstraint": { + "$ref": "GoogleCloudAssetV1CustomConstraint", + "description": "The definition of the custom constraint." + }, + "googleDefinedConstraint": { + "$ref": "GoogleCloudAssetV1Constraint", + "description": "The definition of the canned constraint defined by Google." + } + }, + "type": "object" + }, "Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy), or a relationship (e.g. an INSTANCE_TO_INSTANCEGROUP relationship). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy), or a relationship (e.g. an INSTANCE_TO_INSTANCEGROUP relationship). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "Asset", "properties": { "accessLevel": { @@ -1052,7 +1329,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -1069,9 +1346,13 @@ "$ref": "Inventory", "description": "A representation of runtime OS Inventory information. See [this topic](https://cloud.google.com/compute/docs/instances/os-inventory-management) for more information." }, + "relatedAsset": { + "$ref": "RelatedAsset", + "description": "One related asset of the current asset." + }, "relatedAssets": { "$ref": "RelatedAssets", - "description": "The related assets of the asset of one relationship type. One asset only represents one type of relationship." + "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": { "$ref": "Resource", @@ -1108,7 +1389,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1219,7 +1500,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1283,7 +1564,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1323,7 +1604,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1368,8 +1649,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset.", + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset.", "The runtime OS Inventory information.", "The related resources." ], @@ -1454,8 +1735,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset.", + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset.", "The runtime OS Inventory information.", "The related resources." ], @@ -1495,11 +1776,11 @@ "id": "GcsDestination", "properties": { "uri": { - "description": "The uri of the Cloud Storage object. It's the same uri that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the exported result.", + "description": "The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the exported result.", "type": "string" }, "uriPrefix": { - "description": "The uri prefix of all generated Cloud Storage objects. Example: \"gs://bucket_name/object_name_prefix\". Each object uri is in format: \"gs://bucket_name/object_name_prefix// and only contains assets for that type. starts from 0. Example: \"gs://bucket_name/object_name_prefix/compute.googleapis.com/Disk/0\" is the first shard of output objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", + "description": "The URI prefix of all generated Cloud Storage objects. Example: \"gs://bucket_name/object_name_prefix\". Each object URI is in format: \"gs://bucket_name/object_name_prefix// and only contains assets for that type. starts from 0. Example: \"gs://bucket_name/object_name_prefix/compute.googleapis.com/Disk/0\" is the first shard of output objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", "type": "string" } }, @@ -1556,6 +1837,92 @@ }, "type": "object" }, + "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedAsset": { + "description": "Represents a Google Cloud asset(resource or IAM policy) governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint.", + "id": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedAsset", + "properties": { + "consolidatedPolicy": { + "$ref": "AnalyzerOrgPolicy", + "description": "The consolidated policy for the analyzed asset. The consolidated policy is computed by merging and evaluating AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.policy_bundle. The evaluation will respect the organization policy [hierarchy rules](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-hierarchy)." + }, + "governedIamPolicy": { + "$ref": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy", + "description": "An IAM policy governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint." + }, + "governedResource": { + "$ref": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource", + "description": "A Google Cloud resource governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint." + }, + "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" + } + }, + "type": "object" + }, + "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy": { + "description": "The IAM policies governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint.", + "id": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy", + "properties": { + "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.", + "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.", + "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.", + "type": "string" + }, + "policy": { + "$ref": "Policy", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource": { + "description": "The Google Cloud resources governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint.", + "id": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource", + "properties": { + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fullResourceName": { + "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of the Google Cloud resource.", + "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.", + "type": "string" + }, + "parent": { + "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of the parent of AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_resource_name.", + "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.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudAssetV1BigQueryDestination": { "description": "A BigQuery destination.", "id": "GoogleCloudAssetV1BigQueryDestination", @@ -1587,6 +1954,116 @@ }, "type": "object" }, + "GoogleCloudAssetV1BooleanConstraint": { + "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": "GoogleCloudAssetV1BooleanConstraint", + "properties": {}, + "type": "object" + }, + "GoogleCloudAssetV1Constraint": { + "description": "The definition of a constraint.", + "id": "GoogleCloudAssetV1Constraint", + "properties": { + "booleanConstraint": { + "$ref": "GoogleCloudAssetV1BooleanConstraint", + "description": "Defines this constraint as being a BooleanConstraint." + }, + "constraintDefault": { + "description": "The evaluation behavior of this constraint in the absence of 'Policy'.", + "enum": [ + "CONSTRAINT_DEFAULT_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "This is only used for distinguishing unset values and should never be used.", + "Indicate that all values are allowed for list constraints. Indicate that enforcement is off for boolean constraints.", + "Indicate that all values are denied for list constraints. Indicate that enforcement is on for boolean constraints." + ], + "type": "string" + }, + "description": { + "description": "Detailed description of what this `Constraint` controls as well as how and where it is enforced.", + "type": "string" + }, + "displayName": { + "description": "The human readable name of the constraint.", + "type": "string" + }, + "listConstraint": { + "$ref": "GoogleCloudAssetV1ListConstraint", + "description": "Defines this constraint as being a ListConstraint." + }, + "name": { + "description": "The unique name of the constraint. Format of the name should be * `constraints/{constraint_name}` For example, `constraints/compute.disableSerialPortAccess`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAssetV1CustomConstraint": { + "description": "The definition of a custom constraint.", + "id": "GoogleCloudAssetV1CustomConstraint", + "properties": { + "actionType": { + "description": "Allow or deny type.", + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "Unspecified. Will results in user error.", + "Allowed action type.", + "Deny action type." + ], + "type": "string" + }, + "condition": { + "description": "Organization Policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")'` or, `resource.management.auto_upgrade == true`", + "type": "string" + }, + "description": { + "description": "Detailed information about this custom policy constraint.", + "type": "string" + }, + "displayName": { + "description": "One line display name for the UI.", + "type": "string" + }, + "methodTypes": { + "description": "All the operations being applied for this constraint.", + "items": { + "enum": [ + "METHOD_TYPE_UNSPECIFIED", + "CREATE", + "UPDATE", + "DELETE" + ], + "enumDescriptions": [ + "Unspecified. Will results in user error.", + "Constraint applied when creating the resource.", + "Constraint applied when updating the resource.", + "Constraint applied when deleting the resource." + ], + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "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\"", + "type": "string" + }, + "resourceTypes": { + "description": "The Resource Instance type on which this policy applies to. Format will be of the form : \"/\" Example: * `compute.googleapis.com/Instance`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudAssetV1Edge": { "description": "A directional edge.", "id": "GoogleCloudAssetV1Edge", @@ -1607,12 +2084,38 @@ "id": "GoogleCloudAssetV1GcsDestination", "properties": { "uri": { - "description": "Required. The uri of the Cloud Storage object. It's the same uri that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the analysis result.", + "description": "Required. The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information. If the specified Cloud Storage object already exists and there is no [hold](https://cloud.google.com/storage/docs/object-holds), it will be overwritten with the analysis result.", "type": "string" } }, "type": "object" }, + "GoogleCloudAssetV1GovernedContainer": { + "description": "The organization/folder/project resource governed by organization policies of AnalyzeOrgPolicyGovernedContainersRequest.constraint.", + "id": "GoogleCloudAssetV1GovernedContainer", + "properties": { + "consolidatedPolicy": { + "$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)." + }, + "fullResourceName": { + "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of an organization/folder/project resource.", + "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" + }, + "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" + } + }, + "type": "object" + }, "GoogleCloudAssetV1Identity": { "description": "An identity under analysis.", "id": "GoogleCloudAssetV1Identity", @@ -1649,6 +2152,40 @@ }, "type": "object" }, + "GoogleCloudAssetV1ListConstraint": { + "description": "A `Constraint` that allows or disallows a list of string values, which are configured by an organization's policy administrator with a `Policy`.", + "id": "GoogleCloudAssetV1ListConstraint", + "properties": { + "supportsIn": { + "description": "Indicates whether values grouped into categories can be used in `Policy.allowed_values` and `Policy.denied_values`. For example, `\"in:Python\"` would match any value in the 'Python' group.", + "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.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAssetV1QueryAssetsOutputConfigBigQueryDestination": { + "description": "BigQuery destination.", + "id": "GoogleCloudAssetV1QueryAssetsOutputConfigBigQueryDestination", + "properties": { + "dataset": { + "description": "Required. The BigQuery dataset where the query results will be saved. It has the format of \"projects/{projectId}/datasets/{datasetId}\".", + "type": "string" + }, + "table": { + "description": "Required. The BigQuery table where the query results will be saved. If this table does not exist, a new table with the given name will be created.", + "type": "string" + }, + "writeDisposition": { + "description": "Specifies the action that occurs if the destination table or partition already exists. The following values are supported: * WRITE_TRUNCATE: If the table or partition already exists, BigQuery overwrites the entire table or all the partitions data. * WRITE_APPEND: If the table or partition already exists, BigQuery appends the data to the table or the latest partition. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudAssetV1Resource": { "description": "A Google Cloud resource under analysis.", "id": "GoogleCloudAssetV1Resource", @@ -1664,8 +2201,56 @@ }, "type": "object" }, + "GoogleCloudAssetV1Rule": { + "description": "Represents a rule defined in an organization policy", + "id": "GoogleCloudAssetV1Rule", + "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": "Expr", + "description": "The evaluating condition for this rule." + }, + "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": "GoogleCloudAssetV1StringValues", + "description": "List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints." + } + }, + "type": "object" + }, + "GoogleCloudAssetV1StringValues": { + "description": "The string values for the list constraints.", + "id": "GoogleCloudAssetV1StringValues", + "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" + }, "GoogleCloudAssetV1p7beta1Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1Asset", "properties": { "accessLevel": { @@ -1689,7 +2274,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -1723,7 +2308,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1RelatedAsset": { - "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1RelatedAsset", "properties": { "ancestors": { @@ -1810,7 +2395,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -1939,7 +2524,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -2190,6 +2775,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -2268,7 +2860,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -2356,7 +2948,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -2366,7 +2958,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -2416,7 +3008,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, @@ -2550,7 +3142,7 @@ }, "iamBinding": { "$ref": "Binding", - "description": "The Cloud IAM policy binding under analysis." + "description": "The IAM policy binding under analysis." }, "identityList": { "$ref": "GoogleCloudAssetV1IdentityList", @@ -2589,7 +3181,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -2640,7 +3232,7 @@ "description": "The IAM policy directly set on the given resource. Note that the original IAM policy can contain multiple bindings. This only contains the bindings that match the given query. For queries that don't contain a constrain on policies (e.g., an empty query), this contains all the bindings. To search against the `policy` bindings: * use a field query: - query by the policy contained members. Example: `policy:amy@gmail.com` - query by the policy contained roles. Example: `policy:roles/compute.admin` - query by the policy contained roles' included permissions. Example: `policy.role.permissions:compute.instances.create`" }, "project": { - "description": "The project that the associated GCP resource belongs to, in the form of projects/{PROJECT_NUMBER}. If an IAM policy is set on a resource (like VM instance, Cloud Storage bucket), the project field will indicate the project that contains the resource. If an IAM policy is set on a folder or orgnization, this field will be empty. To search against the `project`: * specify the `scope` field as this project in your search request.", + "description": "The project that the associated Google Cloud resource belongs to, in the form of projects/{PROJECT_NUMBER}. If an IAM policy is set on a resource (like VM instance, Cloud Storage bucket), the project field will indicate the project that contains the resource. If an IAM policy is set on a folder or orgnization, this field will be empty. To search against the `project`: * specify the `scope` field as this project in your search request.", "type": "string" }, "resource": { @@ -2808,7 +3400,7 @@ "description": "Analysis result of moving the target resource." }, "displayName": { - "description": "The user friendly display name of the analysis. E.g. IAM, Organization Policy etc.", + "description": "The user friendly display name of the analysis. E.g. IAM, organization policy etc.", "type": "string" }, "error": { @@ -2890,7 +3482,7 @@ "id": "Options", "properties": { "analyzeServiceAccountImpersonation": { - "description": "Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning rpc instead. For example, if the request analyzes for which resources user A has permission P, and there's an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there's another IAM policy states service account SA has permission P to a GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a GCP folder F, and there's an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there's another IAM policy states service account SA has permission P to the GCP folder F, then user A potentially has access to the GCP folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Only the following permissions are considered in this analysis: * `iam.serviceAccounts.actAs` * `iam.serviceAccounts.signBlob` * `iam.serviceAccounts.signJwt` * `iam.serviceAccounts.getAccessToken` * `iam.serviceAccounts.getOpenIdToken` * `iam.serviceAccounts.implicitDelegation` Default is false.", + "description": "Optional. If true, the response will include access analysis from identities to resources via service account impersonation. This is a very expensive operation, because many derived queries will be executed. We highly recommend you use AssetService.AnalyzeIamPolicyLongrunning RPC instead. For example, if the request analyzes for which resources user A has permission P, and there's an IAM policy states user A has iam.serviceAccounts.getAccessToken permission to a service account SA, and there's another IAM policy states service account SA has permission P to a Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Another example, if the request analyzes for who has permission P to a Google Cloud folder F, and there's an IAM policy states user A has iam.serviceAccounts.actAs permission to a service account SA, and there's another IAM policy states service account SA has permission P to the Google Cloud folder F, then user A potentially has access to the Google Cloud folder F. And those advanced analysis results will be included in AnalyzeIamPolicyResponse.service_account_impersonation_analysis. Only the following permissions are considered in this analysis: * `iam.serviceAccounts.actAs` * `iam.serviceAccounts.signBlob` * `iam.serviceAccounts.signJwt` * `iam.serviceAccounts.getAccessToken` * `iam.serviceAccounts.getOpenIdToken` * `iam.serviceAccounts.implicitDelegation` Default is false.", "type": "boolean" }, "expandGroups": { @@ -2898,7 +3490,7 @@ "type": "boolean" }, "expandResources": { - "description": "Optional. If true and IamPolicyAnalysisQuery.resource_selector is not specified, the resource section of the result will expand any resource attached to an IAM policy to include resources lower in the resource hierarchy. For example, if the request analyzes for which resources user A has permission P, and the results include an IAM policy with P on a GCP folder, the results will also include resources in that folder with permission P. If true and IamPolicyAnalysisQuery.resource_selector is specified, the resource section of the result will expand the specified resource to include resources lower in the resource hierarchy. Only project or lower resources are supported. Folder and organization resource cannot be used together with this option. For example, if the request analyzes for which users have permission P on a GCP project with this option enabled, the results will include all users who have permission P on that project or any lower resource. If true, the default max expansion per resource is 1000 for AssetService.AnalyzeIamPolicy][] and 100000 for AssetService.AnalyzeIamPolicyLongrunning][]. Default is false.", + "description": "Optional. If true and IamPolicyAnalysisQuery.resource_selector is not specified, the resource section of the result will expand any resource attached to an IAM policy to include resources lower in the resource hierarchy. For example, if the request analyzes for which resources user A has permission P, and the results include an IAM policy with P on a Google Cloud folder, the results will also include resources in that folder with permission P. If true and IamPolicyAnalysisQuery.resource_selector is specified, the resource section of the result will expand the specified resource to include resources lower in the resource hierarchy. Only project or lower resources are supported. Folder and organization resources cannot be used together with this option. For example, if the request analyzes for which users have permission P on a Google Cloud project with this option enabled, the results will include all users who have permission P on that project or any lower resource. If true, the default max expansion per resource is 1000 for AssetService.AnalyzeIamPolicy][] and 100000 for AssetService.AnalyzeIamPolicyLongrunning][]. Default is false.", "type": "boolean" }, "expandRoles": { @@ -2916,6 +3508,24 @@ }, "type": "object" }, + "OrgPolicyResult": { + "description": "The organization policy result to the query.", + "id": "OrgPolicyResult", + "properties": { + "consolidatedPolicy": { + "$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)." + }, + "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" + } + }, + "type": "object" + }, "OsInfo": { "description": "Operating system information for the VM.", "id": "OsInfo", @@ -3062,19 +3672,130 @@ }, "type": "object" }, + "QueryAssetsOutputConfig": { + "description": "Output configuration query assets.", + "id": "QueryAssetsOutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudAssetV1QueryAssetsOutputConfigBigQueryDestination", + "description": "BigQuery destination where the query results will be saved." + } + }, + "type": "object" + }, + "QueryAssetsRequest": { + "description": "QueryAssets request.", + "id": "QueryAssetsRequest", + "properties": { + "jobReference": { + "description": "Optional. Reference to the query job, which is from the `QueryAssetsResponse` of previous `QueryAssets` call.", + "type": "string" + }, + "outputConfig": { + "$ref": "QueryAssetsOutputConfig", + "description": "Optional. Destination where the query results will be saved. When this field is specified, the query results won't be saved in the [QueryAssetsResponse.query_result]. Instead [QueryAssetsResponse.output_config] will be set. Meanwhile, [QueryAssetsResponse.job_reference] will be set and can be used to check the status of the query job when passed to a following [QueryAssets] API call." + }, + "pageSize": { + "description": "Optional. The maximum number of rows to return in the results. Responses are limited to 10 MB and 1000 rows. By default, the maximum row count is 1000. When the byte or row count limit is reached, the rest of the query results will be paginated. The field will be ignored when [output_config] is specified.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token received from previous `QueryAssets`. The field will be ignored when [output_config] is specified.", + "type": "string" + }, + "readTime": { + "description": "Optional. Queries cloud assets as they appeared at the specified point in time.", + "format": "google-datetime", + "type": "string" + }, + "readTimeWindow": { + "$ref": "TimeWindow", + "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).", + "type": "string" + }, + "timeout": { + "description": "Optional. Specifies the maximum amount of time that the client is willing to wait for the query to complete. By default, this limit is 5 min for the first query, and 1 minute for the following queries. If the query is complete, the `done` field in the `QueryAssetsResponse` is true, otherwise false. Like BigQuery [jobs.query API](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest) The call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete. The field will be ignored when [output_config] is specified.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "QueryAssetsResponse": { + "description": "QueryAssets response.", + "id": "QueryAssetsResponse", + "properties": { + "done": { + "description": "The query response, which can be either an `error` or a valid `response`. If `done` == `false` and the query result is being saved in a output, the output_config field will be set. If `done` == `true`, exactly one of `error`, `query_result` or `output_config` will be set.", + "type": "boolean" + }, + "error": { + "$ref": "Status", + "description": "Error status." + }, + "jobReference": { + "description": "Reference to a query job.", + "type": "string" + }, + "outputConfig": { + "$ref": "QueryAssetsOutputConfig", + "description": "Output configuration which indicates instead of being returned in API response on the fly, the query result will be saved in a specific output." + }, + "queryResult": { + "$ref": "QueryResult", + "description": "Result of the query." + } + }, + "type": "object" + }, "QueryContent": { "description": "The query content.", "id": "QueryContent", "properties": { "iamPolicyAnalysisQuery": { "$ref": "IamPolicyAnalysisQuery", - "description": "An IAM Policy Analysis query, which could be used in the AssetService.AnalyzeIamPolicy rpc or the AssetService.AnalyzeIamPolicyLongrunning rpc." + "description": "An IAM Policy Analysis query, which could be used in the AssetService.AnalyzeIamPolicy RPC or the AssetService.AnalyzeIamPolicyLongrunning RPC." + } + }, + "type": "object" + }, + "QueryResult": { + "description": "Execution results of the query. The result is formatted as rows represented by BigQuery compatible [schema]. When pagination is necessary, it will contains the page token to retrieve the results of following pages.", + "id": "QueryResult", + "properties": { + "nextPageToken": { + "description": "Token to retrieve the next page of the results.", + "type": "string" + }, + "rows": { + "description": "Each row hold a query result in the format of `Struct`.", + "items": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "schema": { + "$ref": "TableSchema", + "description": "Describes the format of the [rows]." + }, + "totalRows": { + "description": "Total rows of the whole query results.", + "format": "int64", + "type": "string" } }, "type": "object" }, "RelatedAsset": { - "description": "An asset identifier in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identifier in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "RelatedAsset", "properties": { "ancestors": { @@ -3091,12 +3812,16 @@ "assetType": { "description": "The type of the asset. Example: `compute.googleapis.com/Disk` See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "type": "string" + }, + "relationshipType": { + "description": "The unique identifier of the relationship type. Example: `INSTANCE_TO_INSTANCEGROUP`", + "type": "string" } }, "type": "object" }, "RelatedAssets": { - "description": "The detailed related assets with the `relationship_type`.", + "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": { "assets": { @@ -3143,7 +3868,7 @@ "type": "object" }, "RelationshipAttributes": { - "description": "The relationship attributes which include `type`, `source_resource_type`, `target_resource_type` and `action`.", + "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": { "action": { @@ -3190,7 +3915,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -3205,7 +3930,7 @@ "type": "object" }, "ResourceSearchResult": { - "description": "A result of Resource Search, containing information of a cloud resource.", + "description": "A result of Resource Search, containing information of a cloud resource. Next ID: 31", "id": "ResourceSearchResult", "properties": { "additionalAttributes": { @@ -3213,11 +3938,11 @@ "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 GCP 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 GCP 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#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`.", "type": "object" }, "assetType": { - "description": "The type of this resource. Example: `compute.googleapis.com/Disk`. To search against the `asset_type`: * specify the `asset_type` field in your search request.", + "description": "The type of this resource. Example: `compute.googleapis.com/Disk`. To search against the `asset_type`: * Specify the `asset_type` field in your search request.", "type": "string" }, "attachedResources": { @@ -3228,65 +3953,72 @@ "type": "array" }, "createTime": { - "description": "The create timestamp of this resource, at which the resource was created. The granularity is in seconds. Timestamp.nanos will always be 0. This field is available only when the resource's Protobuf contains it. To search against `create_time`: * use a field query. - value in seconds since unix epoch. Example: `createTime > 1609459200` - value in date string. Example: `createTime > 2021-01-01` - value in date-time string (must be quoted). Example: `createTime > \"2021-01-01T00:00:00\"`", + "description": "The create timestamp of this resource, at which the resource was created. The granularity is in seconds. Timestamp.nanos will always be 0. This field is available only when the resource's Protobuf contains it. To search against `create_time`: * Use a field query. - value in seconds since unix epoch. Example: `createTime > 1609459200` - value in date string. Example: `createTime > 2021-01-01` - value in date-time string (must be quoted). Example: `createTime > \"2021-01-01T00:00:00\"`", "format": "google-datetime", "type": "string" }, "description": { - "description": "One or more paragraphs of text description of this resource. Maximum length could be up to 1M bytes. This field is available only when the resource's Protobuf contains it. To search against the `description`: * use a field query. Example: `description:\"important instance\"` * use a free text query. Example: `\"important instance\"`", + "description": "One or more paragraphs of text description of this resource. Maximum length could be up to 1M bytes. This field is available only when the resource's Protobuf contains it. To search against the `description`: * Use a field query. Example: `description:\"important instance\"` * Use a free text query. Example: `\"important instance\"`", "type": "string" }, "displayName": { - "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\"`", + "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" }, "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.", + "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": { "type": "string" }, "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 is available only when the resource's Protobuf contains it. To search against the `kms_key`: * use a field query. Example: `kmsKey:key` * use a free text query. Example: `key`", + "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`", "type": "string" }, + "kmsKeys": { + "description": "The Cloud KMS [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) names or [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions) names. This field is available only when the resource's Protobuf contains it. To search against the `kms_keys`: * Use a field query. Example: `kmsKeys:key` * Use a free text query. Example: `key`", + "items": { + "type": "string" + }, + "type": "array" + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Labels associated with this resource. See [Labelling and grouping GCP resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information. This field is available only when the resource's Protobuf contains it. To search against the `labels`: * use a field query: - query on any label's key or value. Example: `labels:prod` - query by a given label. Example: `labels.env:prod` - query by a given label's existence. Example: `labels.env:*` * use a free text query. Example: `prod`", + "description": "Labels associated with this resource. See [Labelling and grouping Google Cloud resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information. This field is available only when the resource's Protobuf contains it. To search against the `labels`: * Use a field query: - query on any label's key or value. Example: `labels:prod` - query by a given label. Example: `labels.env:prod` - query by a given label's existence. Example: `labels.env:*` * Use a free text query. Example: `prod`", "type": "object" }, "location": { - "description": "Location can be `global`, regional like `us-east1`, or zonal like `us-west1-b`. This field is available only when the resource's Protobuf contains it. To search against the `location`: * use a field query. Example: `location:us-west*` * use a free text query. Example: `us-west*`", + "description": "Location can be `global`, regional like `us-east1`, or zonal like `us-west1-b`. This field is available only when the resource's Protobuf contains it. To search against the `location`: * Use a field query. Example: `location:us-west*` * Use a free text query. Example: `us-west*`", "type": "string" }, "name": { - "description": "The full resource name of this resource. 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. To search against the `name`: * use a field query. Example: `name:instance1` * use a free text query. Example: `instance1`", + "description": "The full resource name of this resource. 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. To search against the `name`: * Use a field query. Example: `name:instance1` * Use a free text query. Example: `instance1`", "type": "string" }, "networkTags": { - "description": "Network tags associated with this resource. Like labels, network tags are a type of annotations used to group GCP resources. See [Labelling GCP resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information. This field is available only when the resource's Protobuf contains it. To search against the `network_tags`: * use a field query. Example: `networkTags:internal` * use a free text query. Example: `internal`", + "description": "Network tags associated with this resource. Like labels, network tags are a type of annotations used to group Google Cloud resources. See [Labelling Google Cloud resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information. This field is available only when the resource's Protobuf contains it. To search against the `network_tags`: * Use a field query. Example: `networkTags:internal` * Use a free text query. Example: `internal`", "items": { "type": "string" }, "type": "array" }, "organization": { - "description": "The organization that this resource belongs to, in the form of organizations/{ORGANIZATION_NUMBER}. This field is available when the resource belongs to an organization. To search against `organization`: * use a field query. Example: `organization:123` * use a free text query. Example: `123` * specify the `scope` field as this organization in your search request.", + "description": "The organization that this resource belongs to, in the form of organizations/{ORGANIZATION_NUMBER}. This field is available when the resource belongs to an organization. To search against `organization`: * Use a field query. Example: `organization:123` * Use a free text query. Example: `123` * Specify the `scope` field as this organization in your search request.", "type": "string" }, "parentAssetType": { - "description": "The type of this resource's immediate parent, if there is one. To search against the `parent_asset_type`: * use a field query. Example: `parentAssetType:\"cloudresourcemanager.googleapis.com/Project\"` * use a free text query. Example: `cloudresourcemanager.googleapis.com/Project`", + "description": "The type of this resource's immediate parent, if there is one. To search against the `parent_asset_type`: * Use a field query. Example: `parentAssetType:\"cloudresourcemanager.googleapis.com/Project\"` * Use a free text query. Example: `cloudresourcemanager.googleapis.com/Project`", "type": "string" }, "parentFullResourceName": { - "description": "The full resource name of this resource's parent, if it has one. To search against the `parent_full_resource_name`: * use a field query. Example: `parentFullResourceName:\"project-name\"` * use a free text query. Example: `project-name`", + "description": "The full resource name of this resource's parent, if it has one. To search against the `parent_full_resource_name`: * Use a field query. Example: `parentFullResourceName:\"project-name\"` * Use a free text query. Example: `project-name`", "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. To search against `project`: * use a field query. Example: `project:12345` * use a free text query. Example: `12345` * specify the `scope` field as this project in your search request.", + "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. To search against `project`: * Use a field query. Example: `project:12345` * Use a free text query. Example: `12345` * Specify the `scope` field as this project in your search request.", "type": "string" }, "relationships": { @@ -3297,11 +4029,32 @@ "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 Cloud 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`", + "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`", + "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`", + "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`", + "items": { + "type": "string" + }, + "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\"`", + "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", "type": "string" }, @@ -3383,7 +4136,7 @@ "type": "string" }, "results": { - "description": "A list of IamPolicy that match the search query. Related information such as the associated resource is returned along with the policy.", + "description": "A list of IAM policies that match the search query. Related information such as the associated resource is returned along with the policy.", "items": { "$ref": "IamPolicySearchResult" }, @@ -3480,6 +4233,46 @@ }, "type": "object" }, + "TableFieldSchema": { + "description": "A field in TableSchema.", + "id": "TableFieldSchema", + "properties": { + "field": { + "description": "The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 128 characters.", + "type": "string" + }, + "fields": { + "description": "Describes the nested schema fields if the type property is set to RECORD.", + "items": { + "$ref": "TableFieldSchema" + }, + "type": "array" + }, + "mode": { + "description": "The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.", + "type": "string" + }, + "type": { + "description": "The field data type. Possible values include * STRING * BYTES * INTEGER * FLOAT * BOOLEAN * TIMESTAMP * DATE * TIME * DATETIME * GEOGRAPHY, * NUMERIC, * BIGNUMERIC, * RECORD (where RECORD indicates that the field contains a nested schema).", + "type": "string" + } + }, + "type": "object" + }, + "TableSchema": { + "description": "BigQuery Compatible table schema.", + "id": "TableSchema", + "properties": { + "fields": { + "description": "Describes the fields in a table.", + "items": { + "$ref": "TableFieldSchema" + }, + "type": "array" + } + }, + "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", diff --git a/etc/api/cloudasset/v1beta1/cloudasset-api.json b/etc/api/cloudasset/v1beta1/cloudasset-api.json index 2a5a0bfc48..cb73f4244b 100644 --- a/etc/api/cloudasset/v1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1beta1/cloudasset-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://cloudasset.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Asset", - "description": "The cloud asset API manages the history and inventory of cloud resources.", + "description": "The Cloud Asset API manages the history and inventory of Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", "fullyEncodeReservedExpansion": true, @@ -411,11 +411,11 @@ } } }, - "revision": "20220225", + "revision": "20230121", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { - "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning rpc.", + "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning RPC.", "id": "AnalyzeIamPolicyLongrunningMetadata", "properties": { "createTime": { @@ -434,7 +434,7 @@ "type": "object" }, "Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "Asset", "properties": { "accessLevel": { @@ -451,7 +451,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -476,7 +476,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -546,7 +546,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -624,18 +624,18 @@ "id": "GcsDestination", "properties": { "uri": { - "description": "The uri of the Cloud Storage object. It's the same uri that is used by gsutil. For example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information.", + "description": "The URI of the Cloud Storage object. It's the same URI that is used by gsutil. For example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information.", "type": "string" }, "uriPrefix": { - "description": "The uri prefix of all generated Cloud Storage objects. For example: \"gs://bucket_name/object_name_prefix\". Each object uri is in format: \"gs://bucket_name/object_name_prefix// and only contains assets for that type. starts from 0. For example: \"gs://bucket_name/object_name_prefix/google.compute.disk/0\" is the first shard of output objects containing all google.compute.disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", + "description": "The URI prefix of all generated Cloud Storage objects. For example: \"gs://bucket_name/object_name_prefix\". Each object URI is in format: \"gs://bucket_name/object_name_prefix// and only contains assets for that type. starts from 0. For example: \"gs://bucket_name/object_name_prefix/google.compute.disk/0\" is the first shard of output objects containing all google.compute.disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", "type": "string" } }, "type": "object" }, "GoogleCloudAssetV1p7beta1Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1Asset", "properties": { "accessLevel": { @@ -659,7 +659,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -693,7 +693,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1RelatedAsset": { - "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1RelatedAsset", "properties": { "ancestors": { @@ -780,7 +780,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -909,7 +909,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -1160,6 +1160,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -1238,7 +1245,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -1326,7 +1333,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -1336,7 +1343,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -1386,7 +1393,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, @@ -1522,7 +1529,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { diff --git a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json index 887051bf99..23fc55a07c 100644 --- a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://cloudasset.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Asset", - "description": "The cloud asset API manages the history and inventory of cloud resources.", + "description": "The Cloud Asset API manages the history and inventory of Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", "fullyEncodeReservedExpansion": true, @@ -108,7 +108,7 @@ "iamPolicies": { "methods": { "searchAll": { - "description": "Searches all the IAM policies within a given accessible CRM scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the IAM policies within a scope, even if they don't have `.getIamPolicy` permission of all the IAM policies. Callers should have `cloud.assets.SearchAllIamPolicies` permission on the requested scope, otherwise the request will be rejected.", + "description": "Searches all the IAM policies within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the IAM policies within a scope, even if they don't have `.getIamPolicy` permission of all the IAM policies. Callers should have `cloud.assets.SearchAllIamPolicies` permission on the requested scope, otherwise the request will be rejected.", "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/iamPolicies:searchAll", "httpMethod": "GET", "id": "cloudasset.iamPolicies.searchAll", @@ -133,7 +133,7 @@ "type": "string" }, "scope": { - "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number(such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project id (such as \"projects/abc\")", + "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number (such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project ID (such as \"projects/abc\")", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -153,7 +153,7 @@ "resources": { "methods": { "searchAll": { - "description": "Searches all the resources within a given accessible CRM scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the resources within a scope, even if they don't have `.get` permission of all the resources. Callers should have `cloud.assets.SearchAllResources` permission on the requested scope, otherwise the request will be rejected.", + "description": "Searches all the resources within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the resources within a scope, even if they don't have `.get` permission of all the resources. Callers should have `cloud.assets.SearchAllResources` permission on the requested scope, otherwise the request will be rejected.", "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/resources:searchAll", "httpMethod": "GET", "id": "cloudasset.resources.searchAll", @@ -189,7 +189,7 @@ "type": "string" }, "scope": { - "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number(such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project id (such as \"projects/abc\")", + "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number (such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project ID (such as \"projects/abc\")", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -207,11 +207,11 @@ } } }, - "revision": "20220225", + "revision": "20230121", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { - "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning rpc.", + "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning RPC.", "id": "AnalyzeIamPolicyLongrunningMetadata", "properties": { "createTime": { @@ -230,7 +230,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -286,7 +286,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -337,7 +337,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1Asset", "properties": { "accessLevel": { @@ -361,7 +361,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -395,7 +395,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1RelatedAsset": { - "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1RelatedAsset", "properties": { "ancestors": { @@ -482,7 +482,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -611,7 +611,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -862,6 +862,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -940,7 +947,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -1028,7 +1035,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -1038,7 +1045,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -1088,7 +1095,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, @@ -1203,7 +1210,7 @@ "type": "string" }, "results": { - "description": "A list of IamPolicy that match the search query. Related information such as the associated resource is returned along with the policy.", + "description": "A list of IAM policies that match the search query. Related information such as the associated resource is returned along with the policy.", "items": { "$ref": "IamPolicySearchResult" }, @@ -1257,7 +1264,7 @@ "additionalProperties": { "type": "string" }, - "description": "Labels associated with this resource. See [Labelling and grouping GCP resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information.", + "description": "Labels associated with this resource. See [Labelling and grouping Google Cloud resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information.", "type": "object" }, "location": { @@ -1269,7 +1276,7 @@ "type": "string" }, "networkTags": { - "description": "Network tags associated with this resource. Like labels, network tags are a type of annotations used to group GCP resources. See [Labelling GCP resources](lhttps://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information.", + "description": "Network tags associated with this resource. Like labels, network tags are a type of annotations used to group Google Cloud resources. See [Labelling Google Cloud resources](lhttps://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information.", "items": { "type": "string" }, diff --git a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json index be3b2a93eb..0f7cd0d725 100644 --- a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://cloudasset.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Asset", - "description": "The cloud asset API manages the history and inventory of cloud resources.", + "description": "The Cloud Asset API manages the history and inventory of Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", "fullyEncodeReservedExpansion": true, @@ -135,8 +135,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset." + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset." ], "location": "query", "type": "string" @@ -177,11 +177,11 @@ } } }, - "revision": "20220225", + "revision": "20230121", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { - "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning rpc.", + "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning RPC.", "id": "AnalyzeIamPolicyLongrunningMetadata", "properties": { "createTime": { @@ -200,7 +200,7 @@ "type": "object" }, "Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "Asset", "properties": { "accessLevel": { @@ -224,7 +224,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -249,7 +249,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -305,7 +305,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -342,7 +342,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1Asset", "properties": { "accessLevel": { @@ -366,7 +366,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -400,7 +400,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1RelatedAsset": { - "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1RelatedAsset", "properties": { "ancestors": { @@ -487,7 +487,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -616,7 +616,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -867,6 +867,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -945,7 +952,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -1033,7 +1040,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -1043,7 +1050,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -1093,7 +1100,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, @@ -1206,7 +1213,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { diff --git a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json index 93ebef7017..59117b46d2 100644 --- a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://cloudasset.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Asset", - "description": "The cloud asset API manages the history and inventory of cloud resources.", + "description": "The Cloud Asset API manages the history and inventory of Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", "fullyEncodeReservedExpansion": true, @@ -167,11 +167,11 @@ } } }, - "revision": "20220225", + "revision": "20230121", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { - "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning rpc.", + "description": "Represents the metadata of the longrunning operation for the AnalyzeIamPolicyLongrunning RPC.", "id": "AnalyzeIamPolicyLongrunningMetadata", "properties": { "createTime": { @@ -190,7 +190,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -246,7 +246,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -283,7 +283,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1Asset": { - "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset in Google Cloud. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1Asset", "properties": { "accessLevel": { @@ -307,7 +307,7 @@ }, "iamPolicy": { "$ref": "Policy", - "description": "A representation of the Cloud IAM policy set on a Google Cloud resource. There can be a maximum of one Cloud IAM policy set on any given resource. In addition, Cloud IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/docs/policies#inheritance) for more information." + "description": "A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See [this topic](https://cloud.google.com/iam/help/allow-policies/inheritance) for more information." }, "name": { "description": "The full name of the asset. 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.", @@ -392,8 +392,8 @@ "Unspecified content type.", "Resource metadata.", "The actual IAM policy set on a resource.", - "The Cloud Organization Policy set on an asset.", - "The Cloud Access context manager Policy set on an asset.", + "The organization policy set on an asset.", + "The Access Context Manager policy set on an asset.", "The related resources." ], "type": "string" @@ -422,11 +422,11 @@ "id": "GoogleCloudAssetV1p7beta1GcsDestination", "properties": { "uri": { - "description": "The uri of the Cloud Storage object. It's the same uri that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information.", + "description": "The URI of the Cloud Storage object. It's the same URI that is used by gsutil. Example: \"gs://bucket_name/object_name\". See [Viewing and Editing Object Metadata](https://cloud.google.com/storage/docs/viewing-editing-metadata) for more information.", "type": "string" }, "uriPrefix": { - "description": "The uri prefix of all generated Cloud Storage objects. Example: \"gs://bucket_name/object_name_prefix\". Each object uri is in format: \"gs://bucket_name/object_name_prefix/{ASSET_TYPE}/{SHARD_NUMBER} and only contains assets for that type. starts from 0. Example: \"gs://bucket_name/object_name_prefix/compute.googleapis.com/Disk/0\" is the first shard of output objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", + "description": "The URI prefix of all generated Cloud Storage objects. Example: \"gs://bucket_name/object_name_prefix\". Each object URI is in format: \"gs://bucket_name/object_name_prefix/{ASSET_TYPE}/{SHARD_NUMBER} and only contains assets for that type. starts from 0. Example: \"gs://bucket_name/object_name_prefix/compute.googleapis.com/Disk/0\" is the first shard of output objects containing all compute.googleapis.com/Disk assets. An INVALID_ARGUMENT error will be returned if file with the same name \"gs://bucket_name/object_name_prefix\" already exists.", "type": "string" } }, @@ -469,7 +469,7 @@ "type": "object" }, "GoogleCloudAssetV1p7beta1RelatedAsset": { - "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. Cloud IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "description": "An asset identify in Google Cloud which contains its name, type and ancestors. An asset can be any resource in the Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), a resource outside the Google Cloud resource hierarchy (such as Google Kubernetes Engine clusters and objects), or a policy (e.g. IAM policy). See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", "id": "GoogleCloudAssetV1p7beta1RelatedAsset", "properties": { "ancestors": { @@ -556,7 +556,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 [Cloud 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` For third-party assets, this field may be set differently.", "type": "string" }, "resourceUrl": { @@ -685,7 +685,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the Access Level. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The maximum length of the `access_level` component is 50 characters.", + "description": "Resource name for the `AccessLevel`. Format: `accessPolicies/{access_policy}/accessLevels/{access_level}`. The `access_level` component must begin with a letter, followed by alphanumeric characters or `_`. Its maximum length is 50 characters. After you create an `AccessLevel`, you cannot change its `name`.", "type": "string" }, "title": { @@ -936,6 +936,13 @@ "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", "properties": { + "externalResources": { + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "items": { + "type": "string" + }, + "type": "array" + }, "operations": { "description": "A list of ApiOperations allowed to be performed by the sources specified in the corresponding EgressFrom. A request matches if it uses an operation/service in this list.", "items": { @@ -1014,7 +1021,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 are allowed. Format: `projects/{project_number}` 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 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" } }, @@ -1102,7 +1109,7 @@ "type": "string" }, "name": { - "description": "Required. Resource name for the ServicePerimeter. The `short_name` component must begin with a letter and only include alphanumeric and '_'. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`", + "description": "Resource name for the `ServicePerimeter`. Format: `accessPolicies/{access_policy}/servicePerimeters/{service_perimeter}`. The `service_perimeter` component must begin with a letter, followed by alphanumeric characters or `_`. After you create a `ServicePerimeter`, you cannot change its `name`.", "type": "string" }, "perimeterType": { @@ -1112,7 +1119,7 @@ "PERIMETER_TYPE_BRIDGE" ], "enumDescriptions": [ - "Regular Perimeter.", + "Regular Perimeter. When no value is specified, the perimeter uses this type.", "Perimeter Bridge." ], "type": "string" @@ -1162,7 +1169,7 @@ "type": "array" }, "resources": { - "description": "A list of Google Cloud resources that are inside of the service perimeter. Currently only projects are allowed. Format: `projects/{project_number}`", + "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}`.", "items": { "type": "string" }, diff --git a/etc/api/cloudbilling/v1/cloudbilling-api.json b/etc/api/cloudbilling/v1/cloudbilling-api.json index 0bd8d6a6a2..1a6ae92178 100644 --- a/etc/api/cloudbilling/v1/cloudbilling-api.json +++ b/etc/api/cloudbilling/v1/cloudbilling-api.json @@ -175,7 +175,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^billingAccounts/[^/]+$", "required": true, @@ -271,7 +271,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^billingAccounts/[^/]+$", "required": true, @@ -300,7 +300,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^billingAccounts/[^/]+$", "required": true, @@ -521,7 +521,7 @@ } } }, - "revision": "20220305", + "revision": "20221206", "rootUrl": "https://cloudbilling.googleapis.com/", "schemas": { "AggregationInfo": { @@ -563,7 +563,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -644,7 +644,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -978,7 +978,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1038,7 +1038,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudbuild/v1/cloudbuild-api.json b/etc/api/cloudbuild/v1/cloudbuild-api.json index b33130c76c..cd8b003380 100644 --- a/etc/api/cloudbuild/v1/cloudbuild-api.json +++ b/etc/api/cloudbuild/v1/cloudbuild-api.json @@ -105,6 +105,31 @@ }, "protocol": "rest", "resources": { + "githubDotComWebhook": { + "methods": { + "receive": { + "description": "ReceiveGitHubDotComWebhook is called when the API receives a github.com webhook.", + "flatPath": "v1/githubDotComWebhook:receive", + "httpMethod": "POST", + "id": "cloudbuild.githubDotComWebhook.receive", + "parameterOrder": [], + "parameters": { + "webhookKey": { + "description": "For GitHub Enterprise webhooks, this key is used to associate the webhook request with the GitHubEnterpriseConfig to use for validation.", + "location": "query", + "type": "string" + } + }, + "path": "v1/githubDotComWebhook:receive", + "request": { + "$ref": "HttpBody" + }, + "response": { + "$ref": "Empty" + } + } + } + }, "locations": { "methods": { "regionalWebhook": { @@ -356,7 +381,7 @@ "type": "string" }, "parent": { - "description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/location`", + "description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/{location}`", "location": "query", "type": "string" }, @@ -423,7 +448,7 @@ ], "parameters": { "gheConfigId": { - "description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig\u2019s resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", + "description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig's resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", "location": "query", "type": "string" }, @@ -466,7 +491,7 @@ "type": "string" }, "name": { - "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -501,7 +526,7 @@ "type": "string" }, "name": { - "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -561,7 +586,7 @@ ], "parameters": { "name": { - "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -591,34 +616,6 @@ "resources": { "bitbucketServerConfigs": { "methods": { - "addBitbucketServerConnectedRepository": { - "description": "Add a Bitbucket Server repository to a given BitbucketServerConfig's connected repositories. This API is experimental.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}:addBitbucketServerConnectedRepository", - "httpMethod": "POST", - "id": "cloudbuild.projects.locations.bitbucketServerConfigs.addBitbucketServerConnectedRepository", - "parameterOrder": [ - "config" - ], - "parameters": { - "config": { - "description": "Required. The name of the `BitbucketServerConfig` to add a connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/bitbucketServerConfigs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+config}:addBitbucketServerConnectedRepository", - "request": { - "$ref": "AddBitbucketServerConnectedRepositoryRequest" - }, - "response": { - "$ref": "AddBitbucketServerConnectedRepositoryResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "create": { "description": "Creates a new `BitbucketServerConfig`. This API is experimental.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs", @@ -773,7 +770,7 @@ ] }, "removeBitbucketServerConnectedRepository": { - "description": "Remove a Bitbucket Server repository from an given BitbucketServerConfig\u2019s connected repositories. This API is experimental.", + "description": "Remove a Bitbucket Server repository from a given BitbucketServerConfig's connected repositories. This API is experimental.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bitbucketServerConfigs/{bitbucketServerConfigsId}:removeBitbucketServerConnectedRepository", "httpMethod": "POST", "id": "cloudbuild.projects.locations.bitbucketServerConfigs.removeBitbucketServerConnectedRepository", @@ -846,7 +843,7 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 50 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "The maximum number of configs to return. The service may return fewer than this value. The maximum value is 1000; values above 1000 will be coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -1028,7 +1025,7 @@ "type": "string" }, "parent": { - "description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/location`", + "description": "The parent of the collection of `Builds`. Format: `projects/{project}/locations/{location}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1078,6 +1075,265 @@ } } }, + "gitLabConfigs": { + "methods": { + "create": { + "description": "Creates a new `GitLabConfig`. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs", + "httpMethod": "POST", + "id": "cloudbuild.projects.locations.gitLabConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gitlabConfigId": { + "description": "Optional. The ID to use for the GitLabConfig, which will become the final component of the GitLabConfig\u2019s resource name. gitlab_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gitLabConfigs", + "request": { + "$ref": "GitLabConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete a `GitLabConfig`. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", + "httpMethod": "DELETE", + "id": "cloudbuild.projects.locations.gitLabConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The config resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a `GitLabConfig`. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", + "httpMethod": "GET", + "id": "cloudbuild.projects.locations.gitLabConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The config resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GitLabConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List all `GitLabConfigs` for a given project. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs", + "httpMethod": "GET", + "id": "cloudbuild.projects.locations.gitLabConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of configs to return. The service may return fewer than this value. If unspecified, at most 50 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 \u2018ListGitlabConfigsRequest\u2019 call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to \u2018ListGitlabConfigsRequest\u2019 must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gitLabConfigs", + "response": { + "$ref": "ListGitLabConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing `GitLabConfig`. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}", + "httpMethod": "PATCH", + "id": "cloudbuild.projects.locations.gitLabConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name for the config.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "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/{+name}", + "request": { + "$ref": "GitLabConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeGitLabConnectedRepository": { + "description": "Remove a GitLab repository from a given GitLabConfig's connected repositories. This API is experimental.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}:removeGitLabConnectedRepository", + "httpMethod": "POST", + "id": "cloudbuild.projects.locations.gitLabConfigs.removeGitLabConnectedRepository", + "parameterOrder": [ + "config" + ], + "parameters": { + "config": { + "description": "Required. The name of the `GitLabConfig` to remove a connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+config}:removeGitLabConnectedRepository", + "request": { + "$ref": "RemoveGitLabConnectedRepositoryRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "connectedRepositories": { + "methods": { + "batchCreate": { + "description": "Batch connecting GitLab repositories to Cloud Build. This API is experimental.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}/connectedRepositories:batchCreate", + "httpMethod": "POST", + "id": "cloudbuild.projects.locations.gitLabConfigs.connectedRepositories.batchCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The name of the `GitLabConfig` that adds connected repositories. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connectedRepositories:batchCreate", + "request": { + "$ref": "BatchCreateGitLabConnectedRepositoriesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "repos": { + "methods": { + "list": { + "description": "List all repositories for a given `GitLabConfig`. This API is experimental", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gitLabConfigs/{gitLabConfigsId}/repos", + "httpMethod": "GET", + "id": "cloudbuild.projects.locations.gitLabConfigs.repos.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of repositories to return. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous ListGitLabRepositoriesRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListGitLabRepositoriesRequest` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gitLabConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/repos", + "response": { + "$ref": "ListGitLabRepositoriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "githubEnterpriseConfigs": { "methods": { "create": { @@ -1090,7 +1346,7 @@ ], "parameters": { "gheConfigId": { - "description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig\u2019s resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", + "description": "Optional. The ID to use for the GithubEnterpriseConfig, which will become the final component of the GithubEnterpriseConfig's resource name. ghe_config_id must meet the following requirements: + They must contain only alphanumeric characters and dashes. + They can be 1-64 characters long. + They must begin and end with an alphanumeric character", "location": "query", "type": "string" }, @@ -1133,7 +1389,7 @@ "type": "string" }, "name": { - "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -1168,7 +1424,7 @@ "type": "string" }, "name": { - "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "This field should contain the name of the enterprise config resource. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -1228,7 +1484,7 @@ ], "parameters": { "name": { - "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/githubEnterpriseConfigs/[^/]+$", "required": true, @@ -1496,7 +1752,7 @@ ] }, "run": { - "description": "Runs a `BuildTrigger` at a particular source revision.", + "description": "Runs a `BuildTrigger` at a particular source revision. To run a regional or global trigger, use the POST request that includes the location endpoint in the path (ex. v1/projects/{projectId}/locations/{region}/triggers/{triggerId}:run). The POST request that does not include the location endpoint in the path can only be used when running global triggers.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/triggers/{triggersId}:run", "httpMethod": "POST", "id": "cloudbuild.projects.locations.triggers.run", @@ -1625,7 +1881,7 @@ "type": "string" }, "name": { - "description": "Required. The name of the `WorkerPool` to delete. Format: `projects/{project}/locations/{workerPool}/workerPools/{workerPool}`.", + "description": "Required. The name of the `WorkerPool` to delete. Format: `projects/{project}/locations/{location}/workerPools/{workerPool}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/workerPools/[^/]+$", "required": true, @@ -1930,7 +2186,7 @@ ] }, "run": { - "description": "Runs a `BuildTrigger` at a particular source revision.", + "description": "Runs a `BuildTrigger` at a particular source revision. To run a regional or global trigger, use the POST request that includes the location endpoint in the path (ex. v1/projects/{projectId}/locations/{region}/triggers/{triggerId}:run). The POST request that does not include the location endpoint in the path can only be used when running global triggers.", "flatPath": "v1/projects/{projectId}/triggers/{triggerId}:run", "httpMethod": "POST", "id": "cloudbuild.projects.triggers.run", @@ -2039,35 +2295,9 @@ } } }, - "revision": "20220218", + "revision": "20230120", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { - "AddBitbucketServerConnectedRepositoryRequest": { - "description": "RPC request object accepted by the AddBitbucketServerConnectedRepository RPC method.", - "id": "AddBitbucketServerConnectedRepositoryRequest", - "properties": { - "connectedRepository": { - "$ref": "BitbucketServerRepositoryId", - "description": "The connected repository to add." - } - }, - "type": "object" - }, - "AddBitbucketServerConnectedRepositoryResponse": { - "description": "RPC request object returned by the AddBitbucketServerConnectedRepository RPC method.", - "id": "AddBitbucketServerConnectedRepositoryResponse", - "properties": { - "config": { - "description": "The name of the `BitbucketServerConfig` that added connected repository. Format: `projects/{project}/locations/{location}/bitbucketServerConfigs/{config}`", - "type": "string" - }, - "connectedRepository": { - "$ref": "BitbucketServerRepositoryId", - "description": "The connected repository." - } - }, - "type": "object" - }, "ApprovalConfig": { "description": "ApprovalConfig describes configuration for manual approval of a build.", "id": "ApprovalConfig", @@ -2182,9 +2412,23 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "MavenArtifact" + }, + "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." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "PythonPackage" + }, + "type": "array" } }, "type": "object" @@ -2238,6 +2482,55 @@ }, "type": "object" }, + "BatchCreateGitLabConnectedRepositoriesRequest": { + "description": "RPC request object accepted by BatchCreateGitLabConnectedRepositories RPC method.", + "id": "BatchCreateGitLabConnectedRepositoriesRequest", + "properties": { + "requests": { + "description": "Required. Requests to connect GitLab repositories.", + "items": { + "$ref": "CreateGitLabConnectedRepositoryRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchCreateGitLabConnectedRepositoriesResponse": { + "description": "Response of BatchCreateGitLabConnectedRepositories RPC method.", + "id": "BatchCreateGitLabConnectedRepositoriesResponse", + "properties": { + "gitlabConnectedRepositories": { + "description": "The GitLab connected repository requests' responses.", + "items": { + "$ref": "GitLabConnectedRepository" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchCreateGitLabConnectedRepositoriesResponseMetadata": { + "description": "Metadata for `BatchCreateGitLabConnectedRepositories` operation.", + "id": "BatchCreateGitLabConnectedRepositoriesResponseMetadata", + "properties": { + "completeTime": { + "description": "Time the operation was completed.", + "format": "google-datetime", + "type": "string" + }, + "config": { + "description": "The name of the `GitLabConfig` that added connected repositories. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", + "type": "string" + }, + "createTime": { + "description": "Time the operation was created.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "BitbucketServerConfig": { "description": "BitbucketServerConfig represents the configuration for a Bitbucket Server.", "id": "BitbucketServerConfig", @@ -2392,7 +2685,7 @@ "type": "string" }, "projectKey": { - "description": "Required. Key of the project that the repo is in. For example: The key for http://mybitbucket.server/projects/TEST/repos/test-repo is \"TEST\".", + "description": "Required. Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is \"TEST\".", "type": "string" }, "pullRequest": { @@ -2404,7 +2697,7 @@ "description": "Filter to match changes in refs like branches, tags." }, "repoSlug": { - "description": "Required. Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL. For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in http://mybitbucket.server/projects/TEST/repos/test-repo.", + "description": "Required. Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL. For example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo.", "type": "string" } }, @@ -2576,7 +2869,7 @@ "type": "array" }, "timeout": { - "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is ten minutes.", + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", "format": "google-duration", "type": "string" }, @@ -2584,7 +2877,7 @@ "additionalProperties": { "$ref": "TimeSpan" }, - "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all specified images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", "readOnly": true, "type": "object" }, @@ -2651,7 +2944,7 @@ "id": "BuildOptions", "properties": { "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 1000GB; builds that request more than the maximum are rejected with an error.", + "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", "type": "string" }, @@ -2729,8 +3022,8 @@ "VERIFIED" ], "enumDescriptions": [ - "Not a verifiable build. (default)", - "Verified build." + "Not a verifiable build (the default).", + "Build must be verified." ], "type": "string" }, @@ -2788,6 +3081,18 @@ "description": "A step in the build pipeline.", "id": "BuildStep", "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, "args": { "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", "items": { @@ -2810,6 +3115,12 @@ }, "type": "array" }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "id": { "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", "type": "string" @@ -2958,6 +3269,10 @@ "$ref": "GitHubEventsConfig", "description": "GitHubEventsConfig describes the configuration of a trigger that creates a build whenever a GitHub event is received. Mutually exclusive with `trigger_template`." }, + "gitlabEnterpriseEventsConfig": { + "$ref": "GitLabEventsConfig", + "description": "GitLabEnterpriseEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab Enterprise event is received." + }, "id": { "description": "Output only. Unique identifier of the trigger.", "readOnly": true, @@ -2970,6 +3285,18 @@ }, "type": "array" }, + "includeBuildLogs": { + "description": "If set to INCLUDE_BUILD_LOGS_WITH_STATUS, log url will be shown on GitHub page when build status is final. Setting this field to INCLUDE_BUILD_LOGS_WITH_STATUS for non GitHub triggers results in INVALID_ARGUMENT error.", + "enum": [ + "INCLUDE_BUILD_LOGS_UNSPECIFIED", + "INCLUDE_BUILD_LOGS_WITH_STATUS" + ], + "enumDescriptions": [ + "Build logs will not be shown on GitHub.", + "Build logs will be shown on GitHub." + ], + "type": "string" + }, "includedFiles": { "description": "If any of the files altered in the commit pass the ignored_files filter and included_files is empty, then as far as this filter is concerned, we should trigger the build. If any of the files altered in the commit pass the ignored_files filter and included_files is not empty, then we make sure that at least one of those files matches a included_files glob. If not, then we do not trigger a build.", "items": { @@ -2985,6 +3312,10 @@ "$ref": "PubsubConfig", "description": "PubsubConfig describes the configuration of a trigger that creates a build whenever a Pub/Sub message is published." }, + "repositoryEventConfig": { + "$ref": "RepositoryEventConfig", + "description": "The configuration of a trigger that creates a build whenever an event from Repo API is received." + }, "resourceName": { "description": "The `Trigger` name with format: `projects/{project}/locations/{location}/triggers/{trigger}`, where {trigger} is a unique identifier generated by the service.", "type": "string" @@ -3145,6 +3476,21 @@ }, "type": "object" }, + "CreateGitLabConnectedRepositoryRequest": { + "description": "Request to connect a repository from a connected GitLab host.", + "id": "CreateGitLabConnectedRepositoryRequest", + "properties": { + "gitlabConnectedRepository": { + "$ref": "GitLabConnectedRepository", + "description": "Required. The GitLab repository to connect." + }, + "parent": { + "description": "Required. The name of the `GitLabConfig` that adds connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", + "type": "string" + } + }, + "type": "object" + }, "CreateWorkerPoolOperationMetadata": { "description": "Metadata for the `CreateWorkerPool` operation.", "id": "CreateWorkerPoolOperationMetadata", @@ -3251,7 +3597,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3325,13 +3671,15 @@ "UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", - "BITBUCKET_SERVER" + "BITBUCKET_SERVER", + "GITLAB" ], "enumDescriptions": [ "The default, unknown repo type.", "A Google Cloud Source Repositories-hosted repo.", "A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", - "A Bitbucket Server-hosted repo." + "A Bitbucket Server-hosted repo.", + "A GitLab-hosted repo." ], "type": "string" }, @@ -3340,7 +3688,7 @@ "type": "string" }, "uri": { - "description": "The URI of the repo (optional). If unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.", + "description": "The URI of the repo. 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" } }, @@ -3370,7 +3718,7 @@ "type": "string" }, "name": { - "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "Optional. The full resource name for the GitHubEnterpriseConfig For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "type": "string" }, "peeredNetwork": { @@ -3436,7 +3784,7 @@ "id": "GitHubEventsConfig", "properties": { "enterpriseConfigResourceName": { - "description": "Optional. The resource name of the github enterprise config that should be applied to this installation. For example: \"projects/{$project_id}/githubEnterpriseConfigs/{$config_id}\"", + "description": "Optional. The resource name of the github enterprise config that should be applied to this installation. For example: \"projects/{$project_id}/locations/{$location_id}/githubEnterpriseConfigs/{$config_id}\"", "type": "string" }, "installationId": { @@ -3463,6 +3811,181 @@ }, "type": "object" }, + "GitLabConfig": { + "description": "GitLabConfig represents the configuration for a GitLab integration.", + "id": "GitLabConfig", + "properties": { + "connectedRepositories": { + "description": "Connected GitLab.com or GitLabEnterprise repositories for this config.", + "items": { + "$ref": "GitLabRepositoryId" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. Time when the config was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "enterpriseConfig": { + "$ref": "GitLabEnterpriseConfig", + "description": "Optional. GitLabEnterprise config." + }, + "name": { + "description": "The resource name for the config.", + "type": "string" + }, + "secrets": { + "$ref": "GitLabSecrets", + "description": "Required. Secret Manager secrets needed by the config." + }, + "username": { + "description": "Username of the GitLab.com or GitLab Enterprise account Cloud Build will use.", + "type": "string" + }, + "webhookKey": { + "description": "Output only. UUID included in webhook requests. The UUID is used to look up the corresponding config.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GitLabConnectedRepository": { + "description": "GitLabConnectedRepository represents a GitLab connected repository request response.", + "id": "GitLabConnectedRepository", + "properties": { + "parent": { + "description": "The name of the `GitLabConfig` that added connected repository. Format: `projects/{project}/locations/{location}/gitLabConfigs/{config}`", + "type": "string" + }, + "repo": { + "$ref": "GitLabRepositoryId", + "description": "The GitLab repositories to connect." + }, + "status": { + "$ref": "Status", + "description": "Output only. The status of the repo connection request.", + "readOnly": true + } + }, + "type": "object" + }, + "GitLabEnterpriseConfig": { + "description": "GitLabEnterpriseConfig represents the configuration for a GitLabEnterprise integration.", + "id": "GitLabEnterpriseConfig", + "properties": { + "hostUri": { + "description": "Immutable. The URI of the GitlabEnterprise host.", + "type": "string" + }, + "serviceDirectoryConfig": { + "$ref": "ServiceDirectoryConfig", + "description": "The Service Directory configuration to be used when reaching out to the GitLab Enterprise instance." + }, + "sslCa": { + "description": "The SSL certificate to use in requests to GitLab Enterprise instances.", + "type": "string" + } + }, + "type": "object" + }, + "GitLabEventsConfig": { + "description": "GitLabEventsConfig describes the configuration of a trigger that creates a build whenever a GitLab event is received.", + "id": "GitLabEventsConfig", + "properties": { + "gitlabConfig": { + "$ref": "GitLabConfig", + "description": "Output only. The GitLabConfig specified in the gitlab_config_resource field.", + "readOnly": true + }, + "gitlabConfigResource": { + "description": "The GitLab config resource that this trigger config maps to.", + "type": "string" + }, + "projectNamespace": { + "description": "Namespace of the GitLab project.", + "type": "string" + }, + "pullRequest": { + "$ref": "PullRequestFilter", + "description": "Filter to match changes in pull requests." + }, + "push": { + "$ref": "PushFilter", + "description": "Filter to match changes in refs like branches, tags." + } + }, + "type": "object" + }, + "GitLabRepository": { + "description": "Proto Representing a GitLabRepository", + "id": "GitLabRepository", + "properties": { + "browseUri": { + "description": "Link to the browse repo page on the GitLab instance", + "type": "string" + }, + "description": { + "description": "Description of the repository", + "type": "string" + }, + "displayName": { + "description": "Display name of the repository", + "type": "string" + }, + "name": { + "description": "The resource name of the repository", + "type": "string" + }, + "repositoryId": { + "$ref": "GitLabRepositoryId", + "description": "Identifier for a repository" + } + }, + "type": "object" + }, + "GitLabRepositoryId": { + "description": "GitLabRepositoryId identifies a specific repository hosted on GitLab.com or GitLabEnterprise", + "id": "GitLabRepositoryId", + "properties": { + "id": { + "description": "Required. Identifier for the repository. example: \"namespace/project-slug\", namespace is usually the username or group ID", + "type": "string" + }, + "webhookId": { + "description": "Output only. The ID of the webhook that was created for receiving events from this repo. We only create and manage a single webhook for each repo.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GitLabSecrets": { + "description": "GitLabSecrets represents the secrets in Secret Manager for a GitLab integration.", + "id": "GitLabSecrets", + "properties": { + "apiAccessTokenVersion": { + "description": "Required. The resource name for the api access token\u2019s secret version", + "type": "string" + }, + "apiKeyVersion": { + "description": "Required. Immutable. API Key that will be attached to webhook requests from GitLab to Cloud Build.", + "type": "string" + }, + "readAccessTokenVersion": { + "description": "Required. The resource name for the read access token\u2019s secret version", + "type": "string" + }, + "webhookSecretVersion": { + "description": "Required. Immutable. The resource name for the webhook secret\u2019s secret version. Once this field has been set, it cannot be changed. If you need to change it, please create another GitLabConfig.", + "type": "string" + } + }, + "type": "object" + }, "GitRepoSource": { "description": "GitRepoSource describes a repo and ref of a code repository.", "id": "GitRepoSource", @@ -3485,73 +4008,20 @@ "UNKNOWN", "CLOUD_SOURCE_REPOSITORIES", "GITHUB", - "BITBUCKET_SERVER" + "BITBUCKET_SERVER", + "GITLAB" ], "enumDescriptions": [ "The default, unknown repo type.", "A Google Cloud Source Repositories-hosted repo.", "A GitHub-hosted repo not necessarily on \"github.com\" (i.e. GitHub Enterprise).", - "A Bitbucket Server-hosted repo." + "A Bitbucket Server-hosted repo.", + "A GitLab-hosted repo." ], "type": "string" }, "uri": { - "description": "The URI of the repo (required).", - "type": "string" - } - }, - "type": "object" - }, - "GoogleDevtoolsCloudbuildV2OperationMetadata": { - "description": "Represents the metadata of the long-running operation.", - "id": "GoogleDevtoolsCloudbuildV2OperationMetadata", - "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" - }, - "HTTPDelivery": { - "description": "HTTPDelivery is the delivery configuration for an HTTP notification.", - "id": "HTTPDelivery", - "properties": { - "uri": { - "description": "The URI to which JSON-containing HTTP POST requests should be sent.", + "description": "The URI of the repo. Either uri or repository can be specified and is required.", "type": "string" } }, @@ -3701,6 +4171,42 @@ }, "type": "object" }, + "ListGitLabConfigsResponse": { + "description": "RPC response object returned by ListGitLabConfigs RPC method.", + "id": "ListGitLabConfigsResponse", + "properties": { + "gitlabConfigs": { + "description": "A list of GitLabConfigs", + "items": { + "$ref": "GitLabConfig" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, + "ListGitLabRepositoriesResponse": { + "description": "RPC response object returned by the ListGitLabRepositories RPC method.", + "id": "ListGitLabRepositoriesResponse", + "properties": { + "gitlabRepositories": { + "description": "List of GitLab repositories", + "items": { + "$ref": "GitLabRepository" + }, + "type": "array" + }, + "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" + } + }, + "type": "object" + }, "ListGithubEnterpriseConfigsResponse": { "description": "RPC response object returned by ListGithubEnterpriseConfigs RPC method.", "id": "ListGithubEnterpriseConfigsResponse", @@ -3733,6 +4239,33 @@ }, "type": "object" }, + "MavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "MavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "type": "string" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Defines the network configuration for the pool.", "id": "NetworkConfig", @@ -3754,119 +4287,10 @@ "peeredNetwork": { "description": "Required. Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as `12345`, and `{network}` is the name of a VPC network in the project. See [Understanding network configuration options](https://cloud.google.com/build/docs/private-pools/set-up-private-pool-environment)", "type": "string" - } - }, - "type": "object" - }, - "Notification": { - "description": "Notification is the container which holds the data that is relevant to this particular notification.", - "id": "Notification", - "properties": { - "filter": { - "description": "The filter string to use for notification filtering. Currently, this is assumed to be a CEL program. See https://opensource.google/projects/cel for more.", + }, + "peeredNetworkIpRange": { + "description": "Immutable. Subnet 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 prefix size of 29 bits. `/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.", "type": "string" - }, - "httpDelivery": { - "$ref": "HTTPDelivery", - "description": "Configuration for HTTP delivery." - }, - "slackDelivery": { - "$ref": "SlackDelivery", - "description": "Configuration for Slack delivery." - }, - "smtpDelivery": { - "$ref": "SMTPDelivery", - "description": "Configuration for SMTP (email) delivery." - }, - "structDelivery": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "Escape hatch for users to supply custom delivery configs.", - "type": "object" - } - }, - "type": "object" - }, - "NotifierConfig": { - "description": "NotifierConfig is the top-level configuration message.", - "id": "NotifierConfig", - "properties": { - "apiVersion": { - "description": "The API version of this configuration format.", - "type": "string" - }, - "kind": { - "description": "The type of notifier to use (e.g. SMTPNotifier).", - "type": "string" - }, - "metadata": { - "$ref": "NotifierMetadata", - "description": "Metadata for referring to/handling/deploying this notifier." - }, - "spec": { - "$ref": "NotifierSpec", - "description": "The actual configuration for this notifier." - } - }, - "type": "object" - }, - "NotifierMetadata": { - "description": "NotifierMetadata contains the data which can be used to reference or describe this notifier.", - "id": "NotifierMetadata", - "properties": { - "name": { - "description": "The human-readable and user-given name for the notifier. For example: \"repo-merge-email-notifier\".", - "type": "string" - }, - "notifier": { - "description": "The string representing the name and version of notifier to deploy. Expected to be of the form of \"/:\". For example: \"gcr.io/my-project/notifiers/smtp:1.2.34\".", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSecret": { - "description": "NotifierSecret is the container that maps a secret name (reference) to its Google Cloud Secret Manager resource path.", - "id": "NotifierSecret", - "properties": { - "name": { - "description": "Name is the local name of the secret, such as the verbatim string \"my-smtp-password\".", - "type": "string" - }, - "value": { - "description": "Value is interpreted to be a resource path for fetching the actual (versioned) secret data for this secret. For example, this would be a Google Cloud Secret Manager secret version resource path like: \"projects/my-project/secrets/my-secret/versions/latest\".", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSecretRef": { - "description": "NotifierSecretRef contains the reference to a secret stored in the corresponding NotifierSpec.", - "id": "NotifierSecretRef", - "properties": { - "secretRef": { - "description": "The value of `secret_ref` should be a `name` that is registered in a `Secret` in the `secrets` list of the `Spec`.", - "type": "string" - } - }, - "type": "object" - }, - "NotifierSpec": { - "description": "NotifierSpec is the configuration container for notifications.", - "id": "NotifierSpec", - "properties": { - "notification": { - "$ref": "Notification", - "description": "The configuration of this particular notifier." - }, - "secrets": { - "description": "Configurations for secret resources used by this particular notifier.", - "items": { - "$ref": "NotifierSecret" - }, - "type": "array" } }, "type": "object" @@ -4083,6 +4507,24 @@ }, "type": "object" }, + "PythonPackage": { + "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": "PythonPackage", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ReceiveTriggerWebhookResponse": { "description": "ReceiveTriggerWebhookResponse [Experimental] is the response object for the ReceiveTriggerWebhook method.", "id": "ReceiveTriggerWebhookResponse", @@ -4100,6 +4542,17 @@ }, "type": "object" }, + "RemoveGitLabConnectedRepositoryRequest": { + "description": "RPC request object accepted by RemoveGitLabConnectedRepository RPC method.", + "id": "RemoveGitLabConnectedRepositoryRequest", + "properties": { + "connectedRepository": { + "$ref": "GitLabRepositoryId", + "description": "The connected repository to remove." + } + }, + "type": "object" + }, "RepoSource": { "description": "Location of the source in a Google Cloud Source Repository.", "id": "RepoSource", @@ -4142,17 +4595,53 @@ }, "type": "object" }, + "RepositoryEventConfig": { + "description": "The configuration of a trigger that creates a build whenever an event from Repo API is received.", + "id": "RepositoryEventConfig", + "properties": { + "pullRequest": { + "$ref": "PullRequestFilter", + "description": "Filter to match changes in pull requests." + }, + "push": { + "$ref": "PushFilter", + "description": "Filter to match changes in refs like branches, tags." + }, + "repository": { + "description": "The resource name of the Repo API resource.", + "type": "string" + }, + "repositoryType": { + "description": "Output only. The type of the SCM vendor the repository points to.", + "enum": [ + "REPOSITORY_TYPE_UNSPECIFIED", + "GITHUB", + "GITHUB_ENTERPRISE", + "GITLAB_ENTERPRISE" + ], + "enumDescriptions": [ + "If unspecified, RepositoryType defaults to GITHUB.", + "The SCM repo is GITHUB.", + "The SCM repo is GITHUB Enterprise.", + "The SCM repo is GITLAB Enterprise." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Results": { "description": "Artifacts created by the build pipeline.", "id": "Results", "properties": { "artifactManifest": { - "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.", + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "type": "string" }, "artifactTiming": { "$ref": "TimeSpan", - "description": "Time to push all non-container artifacts." + "description": "Time to push all non-container artifacts to Cloud Storage." }, "buildStepImages": { "description": "List of build step digests, in the order corresponding to build step indices.", @@ -4176,10 +4665,24 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "UploadedMavenArtifact" + }, + "type": "array" + }, "numArtifacts": { - "description": "Number of artifacts uploaded. Only populated when artifacts are uploaded.", + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "UploadedPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -4222,84 +4725,6 @@ }, "type": "object" }, - "RunWorkflowCustomOperationMetadata": { - "description": "Represents the custom metadata of the RunWorkflow long-running operation.", - "id": "RunWorkflowCustomOperationMetadata", - "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" - }, - "pipelineRunId": { - "description": "Output only. ID of the pipeline run created by RunWorkflow.", - "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" - }, - "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" - }, - "SMTPDelivery": { - "description": "SMTPDelivery is the delivery configuration for an SMTP (email) notification.", - "id": "SMTPDelivery", - "properties": { - "fromAddress": { - "description": "This is the SMTP account/email that appears in the `From:` of the email. If empty, it is assumed to be sender.", - "type": "string" - }, - "password": { - "$ref": "NotifierSecretRef", - "description": "The SMTP sender's password." - }, - "port": { - "description": "The SMTP port of the server.", - "type": "string" - }, - "recipientAddresses": { - "description": "This is the list of addresses to which we send the email (i.e. in the `To:` of the email).", - "items": { - "type": "string" - }, - "type": "array" - }, - "senderAddress": { - "description": "This is the SMTP account/email that is used to send the message.", - "type": "string" - }, - "server": { - "description": "The address of the SMTP server.", - "type": "string" - } - }, - "type": "object" - }, "Secret": { "description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", "id": "Secret", @@ -4355,13 +4780,13 @@ }, "type": "object" }, - "SlackDelivery": { - "description": "SlackDelivery is the delivery configuration for delivering Slack messages via webhooks. See Slack webhook documentation at: https://api.slack.com/messaging/webhooks.", - "id": "SlackDelivery", + "ServiceDirectoryConfig": { + "description": "ServiceDirectoryConfig represents Service Directory configuration for a SCM host connection.", + "id": "ServiceDirectoryConfig", "properties": { - "webhookUri": { - "$ref": "NotifierSecretRef", - "description": "The secret reference for the Slack webhook URI for sending messages to a channel." + "service": { + "description": "The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.", + "type": "string" } }, "type": "object" @@ -4580,6 +5005,46 @@ }, "type": "object" }, + "UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "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.", "id": "Volume", @@ -4652,7 +5117,7 @@ "id": "WorkerConfig", "properties": { "diskSizeGb": { - "description": "Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 1000. If `0` is specified, Cloud Build will use a standard disk size.", + "description": "Size of the disk attached to the worker, in GB. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). Specify a value of up to 2000. If `0` is specified, Cloud Build will use a standard disk size.", "format": "int64", "type": "string" }, diff --git a/etc/api/cloudchannel/v1/cloudchannel-api.json b/etc/api/cloudchannel/v1/cloudchannel-api.json index 2dbfb23e7f..c19054e78a 100644 --- a/etc/api/cloudchannel/v1/cloudchannel-api.json +++ b/etc/api/cloudchannel/v1/cloudchannel-api.json @@ -4,6 +4,9 @@ "scopes": { "https://www.googleapis.com/auth/apps.order": { "description": "Manage users on your domain" + }, + "https://www.googleapis.com/auth/apps.reports.usage.readonly": { + "description": "View usage reports for your G Suite domain" } } } @@ -172,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 supplied auth token is invalid. * 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. * 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", @@ -436,6 +439,157 @@ } }, "resources": { + "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.", + "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs", + "httpMethod": "POST", + "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the ChannelPartner that will receive the repricing config. Parent uses the format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}", + "location": "path", + "pattern": "^accounts/[^/]+/channelPartnerLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/channelPartnerRepricingConfigs", + "request": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "response": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "delete": { + "description": "Deletes the given ChannelPartnerRepricingConfig permanently. You can only delete configs if their RepricingConfig.effective_invoice_month is set to a date after the current month. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The ChannelPartnerRepricingConfig is active or in the past. * NOT_FOUND: No ChannelPartnerRepricingConfig found for the name in the request.", + "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs/{channelPartnerRepricingConfigsId}", + "httpMethod": "DELETE", + "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the channel partner repricing config rule to delete.", + "location": "path", + "pattern": "^accounts/[^/]+/channelPartnerLinks/[^/]+/channelPartnerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "get": { + "description": "Gets information about how a Distributor modifies their bill before sending it to a ChannelPartner. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The ChannelPartnerRepricingConfig was not found. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the ChannelPartnerRepricingConfig resource, otherwise returns an error.", + "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs/{channelPartnerRepricingConfigsId}", + "httpMethod": "GET", + "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the ChannelPartnerRepricingConfig Format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}.", + "location": "path", + "pattern": "^accounts/[^/]+/channelPartnerLinks/[^/]+/channelPartnerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "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.", + "flatPath": "v1/accounts/{accountsId}/channelPartnerLinks/{channelPartnerLinksId}/channelPartnerRepricingConfigs", + "httpMethod": "GET", + "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter for [CloudChannelService.ListChannelPartnerRepricingConfigs] results (channel_partner_link only). You can use this filter when you support a BatchGet-like query. To use the filter, you must set `parent=accounts/{account_id}/channelPartnerLinks/-`. Example: `channel_partner_link = accounts/account_id/channelPartnerLinks/c1` OR `channel_partner_link = accounts/account_id/channelPartnerLinks/c2`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of repricing configs to return. The service may return fewer than this value. If unspecified, returns a maximum of 50 rules. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results beyond the first page. Obtained through ListChannelPartnerRepricingConfigsResponse.next_page_token of the previous CloudChannelService.ListChannelPartnerRepricingConfigs call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the account's ChannelPartnerLink. Parent uses the format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}. Supports accounts/{account_id}/channelPartnerLinks/- to retrieve configs for all channel partners.", + "location": "path", + "pattern": "^accounts/[^/]+/channelPartnerLinks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/channelPartnerRepricingConfigs", + "response": { + "$ref": "GoogleCloudChannelV1ListChannelPartnerRepricingConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "patch": { + "description": "Updates a ChannelPartnerRepricingConfig. Call this method to set modifications for a specific ChannelPartner's bill. This method overwrites the existing CustomerRepricingConfig. You can only update configs if the RepricingConfig.effective_invoice_month is a future month. To make changes to configs for the current month, use CreateChannelPartnerRepricingConfig, taking note of its restrictions. You cannot update the RepricingConfig.effective_invoice_month. When updating a config in the future: * This config must already exist. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The ChannelPartnerRepricingConfig 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/{channelPartnerRepricingConfigsId}", + "httpMethod": "PATCH", + "id": "cloudchannel.accounts.channelPartnerLinks.channelPartnerRepricingConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the ChannelPartnerRepricingConfig. Format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}.", + "location": "path", + "pattern": "^accounts/[^/]+/channelPartnerLinks/[^/]+/channelPartnerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "response": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + }, "customers": { "methods": { "create": { @@ -1014,6 +1168,157 @@ } }, "resources": { + "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.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs", + "httpMethod": "POST", + "id": "cloudchannel.accounts.customers.customerRepricingConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the customer that will receive this repricing config. Parent uses the format: accounts/{account_id}/customers/{customer_id}", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customerRepricingConfigs", + "request": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "response": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "delete": { + "description": "Deletes the given CustomerRepricingConfig permanently. You can only delete configs if their RepricingConfig.effective_invoice_month is set to a date after the current month. Possible error codes: * PERMISSION_DENIED: The account making the request does not own this customer. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * FAILED_PRECONDITION: The CustomerRepricingConfig is active or in the past. * NOT_FOUND: No CustomerRepricingConfig found for the name in the request.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs/{customerRepricingConfigsId}", + "httpMethod": "DELETE", + "id": "cloudchannel.accounts.customers.customerRepricingConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the customer repricing config rule to delete. Format: accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+/customerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "get": { + "description": "Gets information about how a Reseller modifies their bill before sending it to a Customer. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * NOT_FOUND: The CustomerRepricingConfig was not found. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the CustomerRepricingConfig resource, otherwise returns an error.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs/{customerRepricingConfigsId}", + "httpMethod": "GET", + "id": "cloudchannel.accounts.customers.customerRepricingConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the CustomerRepricingConfig. Format: accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+/customerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "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.", + "flatPath": "v1/accounts/{accountsId}/customers/{customersId}/customerRepricingConfigs", + "httpMethod": "GET", + "id": "cloudchannel.accounts.customers.customerRepricingConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter for [CloudChannelService.ListCustomerRepricingConfigs] results (customer only). You can use this filter when you support a BatchGet-like query. To use the filter, you must set `parent=accounts/{account_id}/customers/-`. Example: customer = accounts/account_id/customers/c1 OR customer = accounts/account_id/customers/c2.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of repricing configs to return. The service may return fewer than this value. If unspecified, returns a maximum of 50 rules. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results beyond the first page. Obtained through ListCustomerRepricingConfigsResponse.next_page_token of the previous CloudChannelService.ListCustomerRepricingConfigs call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the customer. Parent uses the format: accounts/{account_id}/customers/{customer_id}. Supports accounts/{account_id}/customers/- to retrieve configs for all customers.", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customerRepricingConfigs", + "response": { + "$ref": "GoogleCloudChannelV1ListCustomerRepricingConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + }, + "patch": { + "description": "Updates a CustomerRepricingConfig. Call this method to set modifications for a specific customer's bill. This method overwrites the existing CustomerRepricingConfig. You can only update configs if the RepricingConfig.effective_invoice_month is a future month. To make changes to configs for the current month, use CreateCustomerRepricingConfig, taking note of its restrictions. You cannot update the RepricingConfig.effective_invoice_month. When updating a config in the future: * This config must already exist. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The CustomerRepricingConfig 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/{customerRepricingConfigsId}", + "httpMethod": "PATCH", + "id": "cloudchannel.accounts.customers.customerRepricingConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. Resource name of the CustomerRepricingConfig. Format: accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.", + "location": "path", + "pattern": "^accounts/[^/]+/customers/[^/]+/customerRepricingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "response": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.order" + ] + } + } + }, "entitlements": { "methods": { "activate": { @@ -1379,6 +1684,111 @@ ] } } + }, + "reportJobs": { + "methods": { + "fetchReportResults": { + "description": "Retrieves data generated by CloudChannelReportsService.RunReportJob.", + "flatPath": "v1/accounts/{accountsId}/reportJobs/{reportJobsId}:fetchReportResults", + "httpMethod": "POST", + "id": "cloudchannel.accounts.reportJobs.fetchReportResults", + "parameterOrder": [ + "reportJob" + ], + "parameters": { + "reportJob": { + "description": "Required. The report job created by CloudChannelReportsService.RunReportJob. Report_job uses the format: accounts/{account_id}/reportJobs/{report_job_id}", + "location": "path", + "pattern": "^accounts/[^/]+/reportJobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+reportJob}:fetchReportResults", + "request": { + "$ref": "GoogleCloudChannelV1FetchReportResultsRequest" + }, + "response": { + "$ref": "GoogleCloudChannelV1FetchReportResultsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.reports.usage.readonly" + ] + } + } + }, + "reports": { + "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.", + "flatPath": "v1/accounts/{accountsId}/reports", + "httpMethod": "GET", + "id": "cloudchannel.accounts.reports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "Optional. The BCP-47 language code, such as \"en-US\". If specified, the response is localized to the corresponding language code if the original data sources support it. Default is \"en-US\".", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size of the report. The server might return fewer results than requested. If unspecified, returns 20 reports. The maximum value is 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token that specifies a page of results beyond the first page. Obtained through ListReportsResponse.next_page_token of the previous CloudChannelReportsService.ListReports call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the partner account to list available reports for. Parent uses the format: accounts/{account_id}", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/reports", + "response": { + "$ref": "GoogleCloudChannelV1ListReportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.reports.usage.readonly" + ] + }, + "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.", + "flatPath": "v1/accounts/{accountsId}/reports/{reportsId}:run", + "httpMethod": "POST", + "id": "cloudchannel.accounts.reports.run", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The report's resource name. Specifies the account and report used to generate report data. The report_id identifier is a UID (for example, `613bf59q`). Name uses the format: accounts/{account_id}/reports/{report_id}", + "location": "path", + "pattern": "^accounts/[^/]+/reports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:run", + "request": { + "$ref": "GoogleCloudChannelV1RunReportJobRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/apps.reports.usage.readonly" + ] + } + } } } }, @@ -1599,7 +2009,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://cloudchannel.googleapis.com/", "schemas": { "GoogleCloudChannelV1ActivateEntitlementRequest": { @@ -1778,6 +2188,28 @@ }, "type": "object" }, + "GoogleCloudChannelV1ChannelPartnerRepricingConfig": { + "description": "Configuration for how a distributor will rebill a channel partner (also known as a distributor-authorized reseller).", + "id": "GoogleCloudChannelV1ChannelPartnerRepricingConfig", + "properties": { + "name": { + "description": "Output only. Resource name of the ChannelPartnerRepricingConfig. Format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}.", + "readOnly": true, + "type": "string" + }, + "repricingConfig": { + "$ref": "GoogleCloudChannelV1RepricingConfig", + "description": "Required. The configuration for bill modifications made by a reseller before sending it to ChannelPartner." + }, + "updateTime": { + "description": "Output only. Timestamp of an update to the repricing rule. If `update_time` is after RepricingConfig.effective_invoice_month then it indicates this was set mid-month.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1CheckCloudIdentityAccountsExistRequest": { "description": "Request message for CloudChannelService.CheckCloudIdentityAccountsExist.", "id": "GoogleCloudChannelV1CheckCloudIdentityAccountsExistRequest", @@ -1878,6 +2310,43 @@ }, "type": "object" }, + "GoogleCloudChannelV1Column": { + "description": "The definition of a report column. Specifies the data properties in the corresponding position of the report rows.", + "id": "GoogleCloudChannelV1Column", + "properties": { + "columnId": { + "description": "The unique name of the column (for example, customer_domain, channel_partner, customer_cost). You can use column IDs in RunReportJobRequest.filter. To see all reports and their columns, call CloudChannelReportsService.ListReports.", + "type": "string" + }, + "dataType": { + "description": "The type of the values for this column.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "STRING", + "INT", + "DECIMAL", + "MONEY", + "DATE", + "DATE_TIME" + ], + "enumDescriptions": [ + "Not used.", + "ReportValues for this column will use string_value.", + "ReportValues for this column will use int_value.", + "ReportValues for this column will use decimal_value.", + "ReportValues for this column will use money_value.", + "ReportValues for this column will use date_value.", + "ReportValues for this column will use date_time_value." + ], + "type": "string" + }, + "displayName": { + "description": "The column's display name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1CommitmentSettings": { "description": "Commitment settings for commitment-based offers.", "id": "GoogleCloudChannelV1CommitmentSettings", @@ -1901,6 +2370,35 @@ }, "type": "object" }, + "GoogleCloudChannelV1ConditionalOverride": { + "description": "Specifies the override to conditionally apply.", + "id": "GoogleCloudChannelV1ConditionalOverride", + "properties": { + "adjustment": { + "$ref": "GoogleCloudChannelV1RepricingAdjustment", + "description": "Required. Information about the applied override's adjustment." + }, + "rebillingBasis": { + "description": "Required. The RebillingBasis to use for the applied override. Shows the relative cost based on your repricing costs.", + "enum": [ + "REBILLING_BASIS_UNSPECIFIED", + "COST_AT_LIST", + "DIRECT_CUSTOMER_COST" + ], + "enumDescriptions": [ + "Not used.", + "Use the list cost, also known as the MSRP.", + "Pass through all discounts except the Reseller Program Discount. If this is the default cost base and no adjustments are specified, the output cost will be exactly what the customer would see if they viewed the bill in the Google Cloud Console." + ], + "type": "string" + }, + "repricingCondition": { + "$ref": "GoogleCloudChannelV1RepricingCondition", + "description": "Required. Specifies the condition which, if met, will apply the override." + } + }, + "type": "object" + }, "GoogleCloudChannelV1Constraints": { "description": "Represents the constraints for buying the Offer.", "id": "GoogleCloudChannelV1Constraints", @@ -2096,6 +2594,51 @@ }, "type": "object" }, + "GoogleCloudChannelV1CustomerRepricingConfig": { + "description": "Configuration for how a reseller will reprice a Customer.", + "id": "GoogleCloudChannelV1CustomerRepricingConfig", + "properties": { + "name": { + "description": "Output only. Resource name of the CustomerRepricingConfig. Format: accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.", + "readOnly": true, + "type": "string" + }, + "repricingConfig": { + "$ref": "GoogleCloudChannelV1RepricingConfig", + "description": "Required. The configuration for bill modifications made by a reseller before sending it to customers." + }, + "updateTime": { + "description": "Output only. Timestamp of an update to the repricing rule. If `update_time` is after RepricingConfig.effective_invoice_month then it indicates this was set mid-month.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1DateRange": { + "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." + }, + "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." + }, + "usageEndDateTime": { + "$ref": "GoogleTypeDateTime", + "description": "The latest usage date time (exclusive). If you use time groupings (daily, weekly, etc), each group uses midnight to midnight (Pacific time). The usage end date is rounded down to include all usage from the specified date. We recommend that clients pass `usage_start_date_time` in Pacific time." + }, + "usageStartDateTime": { + "$ref": "GoogleTypeDateTime", + "description": "The earliest usage date time (inclusive). If you use time groupings (daily, weekly, etc), each group uses midnight to midnight (Pacific time). The usage start date is rounded down to include all usage from the specified date. We recommend that clients pass `usage_start_date_time` in Pacific time." + } + }, + "type": "object" + }, "GoogleCloudChannelV1EduData": { "description": "Required Edu Attributes", "id": "GoogleCloudChannelV1EduData", @@ -2173,7 +2716,7 @@ "type": "string" }, "parameters": { - "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. The response may include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. - max_units: The maximum assignable units for a flexible offer. - num_units: The total commitment for commitment-based offers.", + "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.", "items": { "$ref": "GoogleCloudChannelV1Parameter" }, @@ -2200,7 +2743,7 @@ "type": "string" }, "purchaseOrderId": { - "description": "Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.", + "description": "Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters. This is only supported for Google Workspace entitlements.", "type": "string" }, "suspensionReasons": { @@ -2286,6 +2829,44 @@ }, "type": "object" }, + "GoogleCloudChannelV1FetchReportResultsRequest": { + "description": "Request message for CloudChannelReportsService.FetchReportResults.", + "id": "GoogleCloudChannelV1FetchReportResultsRequest", + "properties": { + "pageSize": { + "description": "Optional. Requested page size of the report. The server may return fewer results than requested. If you don't specify a page size, the server uses a sensible default (may change over time). The maximum value is 30,000; the server will change larger values to 30,000.", + "format": "int32", + "type": "integer" + }, + "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" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1FetchReportResultsResponse": { + "description": "Response message for CloudChannelReportsService.FetchReportResults. Contains a tabular representation of the report results.", + "id": "GoogleCloudChannelV1FetchReportResultsResponse", + "properties": { + "nextPageToken": { + "description": "Pass this token to FetchReportResultsRequest.page_token to retrieve the next page of results.", + "type": "string" + }, + "reportMetadata": { + "$ref": "GoogleCloudChannelV1ReportResultsMetadata", + "description": "The metadata for the report results (display name, columns, row count, and date ranges)." + }, + "rows": { + "description": "The report's lists of values. Each row follows the settings and ordering of the columns from `report_metadata`.", + "items": { + "$ref": "GoogleCloudChannelV1Row" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudChannelV1ImportCustomerRequest": { "description": "Request message for CloudChannelService.ImportCustomer", "id": "GoogleCloudChannelV1ImportCustomerRequest", @@ -2335,6 +2916,42 @@ }, "type": "object" }, + "GoogleCloudChannelV1ListChannelPartnerRepricingConfigsResponse": { + "description": "Response message for CloudChannelService.ListChannelPartnerRepricingConfigs.", + "id": "GoogleCloudChannelV1ListChannelPartnerRepricingConfigsResponse", + "properties": { + "channelPartnerRepricingConfigs": { + "description": "The repricing configs for this channel partner.", + "items": { + "$ref": "GoogleCloudChannelV1ChannelPartnerRepricingConfig" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListChannelPartnerRepricingConfigsRequest.page_token to obtain that page.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ListCustomerRepricingConfigsResponse": { + "description": "Response message for CloudChannelService.ListCustomerRepricingConfigs.", + "id": "GoogleCloudChannelV1ListCustomerRepricingConfigsResponse", + "properties": { + "customerRepricingConfigs": { + "description": "The repricing configs for this channel partner.", + "items": { + "$ref": "GoogleCloudChannelV1CustomerRepricingConfig" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListCustomerRepricingConfigsRequest.page_token to obtain that page.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1ListCustomersResponse": { "description": "Response message for CloudChannelService.ListCustomers.", "id": "GoogleCloudChannelV1ListCustomersResponse", @@ -2443,6 +3060,24 @@ }, "type": "object" }, + "GoogleCloudChannelV1ListReportsResponse": { + "description": "Response message for CloudChannelReportsService.ListReports.", + "id": "GoogleCloudChannelV1ListReportsResponse", + "properties": { + "nextPageToken": { + "description": "Pass this token to FetchReportResultsRequest.page_token to retrieve the next page of results.", + "type": "string" + }, + "reports": { + "description": "The reports available to the partner.", + "items": { + "$ref": "GoogleCloudChannelV1Report" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudChannelV1ListSkusResponse": { "description": "Response message for ListSkus.", "id": "GoogleCloudChannelV1ListSkusResponse", @@ -2496,7 +3131,7 @@ "type": "string" }, "languageCode": { - "description": "The BCP-47 language code. For example, \"en-US\". The response will localize in the corresponding language code, if specified. The default value is \"en-US\".", + "description": "Optional. The BCP-47 language code. For example, \"en-US\". The response will localize in the corresponding language code, if specified. The default value is \"en-US\".", "type": "string" }, "pageSize": { @@ -2538,7 +3173,7 @@ "id": "GoogleCloudChannelV1ListTransferableSkusRequest", "properties": { "authToken": { - "description": "The super admin of the resold customer generates this token to authorize a reseller to access their Cloud Identity and purchase entitlements on their behalf. You can omit this token after authorization. See https://support.google.com/a/answer/7643790 for more details.", + "description": "Optional. The super admin of the resold customer generates this token to authorize a reseller to access their Cloud Identity and purchase entitlements on their behalf. You can omit this token after authorization. See https://support.google.com/a/answer/7643790 for more details.", "type": "string" }, "cloudIdentityId": { @@ -2637,6 +3272,10 @@ "$ref": "GoogleCloudChannelV1Constraints", "description": "Constraints on transacting the Offer." }, + "dealCode": { + "description": "The deal code of the offer to get a special promotion or discount.", + "type": "string" + }, "endTime": { "description": "Output only. End of the Offer validity time.", "format": "google-datetime", @@ -2786,6 +3425,17 @@ }, "type": "object" }, + "GoogleCloudChannelV1PercentageAdjustment": { + "description": "An adjustment that applies a flat markup or markdown to an entire bill.", + "id": "GoogleCloudChannelV1PercentageAdjustment", + "properties": { + "percentage": { + "$ref": "GoogleTypeDecimal", + "description": "The percentage of the bill to adjust. For example: Mark down by 1% => \"-1.00\" Mark up by 1% => \"1.00\" Pass-Through => \"0.00\"" + } + }, + "type": "object" + }, "GoogleCloudChannelV1Period": { "description": "Represents period in days/months/years.", "id": "GoogleCloudChannelV1Period", @@ -3137,6 +3787,269 @@ }, "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.", + "id": "GoogleCloudChannelV1Report", + "properties": { + "columns": { + "description": "The list of columns included in the report. This defines the schema of the report results.", + "items": { + "$ref": "GoogleCloudChannelV1Column" + }, + "type": "array" + }, + "description": { + "description": "A description of other aspects of the report, such as the products it supports.", + "type": "string" + }, + "displayName": { + "description": "A human-readable name for this report.", + "type": "string" + }, + "name": { + "description": "Required. The report's resource name. Specifies the account and report used to generate report data. The report_id identifier is a UID (for example, `613bf59q`). Name uses the format: accounts/{account_id}/reports/{report_id}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ReportJob": { + "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": { + "name": { + "description": "Required. The resource name of a report job. Name uses the format: `accounts/{account_id}/reportJobs/{report_job_id}`", + "type": "string" + }, + "reportStatus": { + "$ref": "GoogleCloudChannelV1ReportStatus", + "description": "The current status of report generation." + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ReportResultsMetadata": { + "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", + "id": "GoogleCloudChannelV1ReportResultsMetadata", + "properties": { + "dateRange": { + "$ref": "GoogleCloudChannelV1DateRange", + "description": "The date range of reported usage." + }, + "precedingDateRange": { + "$ref": "GoogleCloudChannelV1DateRange", + "description": "The usage dates immediately preceding `date_range` with the same duration. Use this to calculate trending usage and costs. This is only populated if you request trending data. For example, if `date_range` is July 1-15, `preceding_date_range` will be June 16-30." + }, + "report": { + "$ref": "GoogleCloudChannelV1Report", + "description": "Details of the completed report." + }, + "rowCount": { + "description": "The total number of rows of data in the final report.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ReportStatus": { + "description": "Status of a report generation process.", + "id": "GoogleCloudChannelV1ReportStatus", + "properties": { + "endTime": { + "description": "The report generation's completion time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The report generation's start time.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "The current state of the report generation process.", + "enum": [ + "STATE_UNSPECIFIED", + "STARTED", + "WRITING", + "AVAILABLE", + "FAILED" + ], + "enumDescriptions": [ + "Not used.", + "Report processing started.", + "Data generated from the report is being staged.", + "Report data is available for access.", + "Report failed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1ReportValue": { + "description": "A single report value.", + "id": "GoogleCloudChannelV1ReportValue", + "properties": { + "dateTimeValue": { + "$ref": "GoogleTypeDateTime", + "description": "A value of type `google.type.DateTime` (year, month, day, hour, minute, second, and UTC offset or timezone.)" + }, + "dateValue": { + "$ref": "GoogleTypeDate", + "description": "A value of type `google.type.Date` (year, month, day)." + }, + "decimalValue": { + "$ref": "GoogleTypeDecimal", + "description": "A value of type `google.type.Decimal`, representing non-integer numeric values." + }, + "intValue": { + "description": "A value of type `int`.", + "format": "int64", + "type": "string" + }, + "moneyValue": { + "$ref": "GoogleTypeMoney", + "description": "A value of type `google.type.Money` (currency code, whole units, decimal units)." + }, + "stringValue": { + "description": "A value of type `string`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1RepricingAdjustment": { + "description": "A type that represents the various adjustments you can apply to a bill.", + "id": "GoogleCloudChannelV1RepricingAdjustment", + "properties": { + "percentageAdjustment": { + "$ref": "GoogleCloudChannelV1PercentageAdjustment", + "description": "Flat markup or markdown on an entire bill." + } + }, + "type": "object" + }, + "GoogleCloudChannelV1RepricingCondition": { + "description": "Represents the various repricing conditions you can use for a conditional override.", + "id": "GoogleCloudChannelV1RepricingCondition", + "properties": { + "skuGroupCondition": { + "$ref": "GoogleCloudChannelV1SkuGroupCondition", + "description": "SKU Group condition for override." + } + }, + "type": "object" + }, + "GoogleCloudChannelV1RepricingConfig": { + "description": "Configuration for repricing a Google bill over a period of time.", + "id": "GoogleCloudChannelV1RepricingConfig", + "properties": { + "adjustment": { + "$ref": "GoogleCloudChannelV1RepricingAdjustment", + "description": "Required. Information about the adjustment." + }, + "channelPartnerGranularity": { + "$ref": "GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity", + "description": "Applies the repricing configuration at the channel partner level. This is the only supported value for ChannelPartnerRepricingConfig." + }, + "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.", + "items": { + "$ref": "GoogleCloudChannelV1ConditionalOverride" + }, + "type": "array" + }, + "effectiveInvoiceMonth": { + "$ref": "GoogleTypeDate", + "description": "Required. The YearMonth when these adjustments activate. The Day field needs to be \"0\" since we only accept YearMonth repricing boundaries." + }, + "entitlementGranularity": { + "$ref": "GoogleCloudChannelV1RepricingConfigEntitlementGranularity", + "description": "Applies the repricing configuration at the entitlement level. This is the only supported value for CustomerRepricingConfig." + }, + "rebillingBasis": { + "description": "Required. The RebillingBasis to use for this bill. Specifies the relative cost based on repricing costs you will apply.", + "enum": [ + "REBILLING_BASIS_UNSPECIFIED", + "COST_AT_LIST", + "DIRECT_CUSTOMER_COST" + ], + "enumDescriptions": [ + "Not used.", + "Use the list cost, also known as the MSRP.", + "Pass through all discounts except the Reseller Program Discount. If this is the default cost base and no adjustments are specified, the output cost will be exactly what the customer would see if they viewed the bill in the Google Cloud Console." + ], + "type": "string" + } + }, + "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.", + "id": "GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity", + "properties": {}, + "type": "object" + }, + "GoogleCloudChannelV1RepricingConfigEntitlementGranularity": { + "description": "Applies the repricing configuration at the entitlement level.", + "id": "GoogleCloudChannelV1RepricingConfigEntitlementGranularity", + "properties": { + "entitlement": { + "description": "Resource name of the entitlement. Format: accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1Row": { + "description": "A row of report values.", + "id": "GoogleCloudChannelV1Row", + "properties": { + "values": { + "description": "The list of values in the row.", + "items": { + "$ref": "GoogleCloudChannelV1ReportValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1RunReportJobRequest": { + "description": "Request message for CloudChannelReportsService.RunReportJob.", + "id": "GoogleCloudChannelV1RunReportJobRequest", + "properties": { + "dateRange": { + "$ref": "GoogleCloudChannelV1DateRange", + "description": "Optional. The range of usage or invoice dates to include in the result." + }, + "filter": { + "description": "Optional. A structured string that defines conditions on dimension columns to restrict the report output. Filters support logical operators (AND, OR, NOT) and conditional operators (=, !=, <, >, <=, and >=) using `column_id` as keys. For example: `(customer:\"accounts/C123abc/customers/S456def\" OR customer:\"accounts/C123abc/customers/S789ghi\") AND invoice_start_date.year >= 2022`", + "type": "string" + }, + "languageCode": { + "description": "Optional. The BCP-47 language code, such as \"en-US\". If specified, the response is localized to the corresponding language code if the original data sources support it. Default is \"en-US\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1RunReportJobResponse": { + "description": "Response message for CloudChannelReportsService.RunReportJob.", + "id": "GoogleCloudChannelV1RunReportJobResponse", + "properties": { + "reportJob": { + "$ref": "GoogleCloudChannelV1ReportJob", + "description": "Pass `report_job.name` to FetchReportResultsRequest.report_job to retrieve the report's results." + }, + "reportMetadata": { + "$ref": "GoogleCloudChannelV1ReportResultsMetadata", + "description": "The metadata for the report's results (display name, columns, row count, and date range). If you view this before the operation finishes, you may see incomplete data." + } + }, + "type": "object" + }, "GoogleCloudChannelV1Sku": { "description": "Represents a product's purchasable Stock Keeping Unit (SKU). SKUs represent the different variations of the product. For example, Google Workspace Business Standard and Google Workspace Business Plus are Google Workspace product SKUs.", "id": "GoogleCloudChannelV1Sku", @@ -3156,6 +4069,17 @@ }, "type": "object" }, + "GoogleCloudChannelV1SkuGroupCondition": { + "description": "A condition that applies the override if a line item SKU is found in the SKU group.", + "id": "GoogleCloudChannelV1SkuGroupCondition", + "properties": { + "skuGroup": { + "description": "Specifies a SKU group (https://cloud.google.com/skus/sku-groups). Resource name of SKU group. Format: accounts/{account}/skuGroups/{sku_group}. Example: \"accounts/C01234/skuGroups/3d50fd57-3157-4577-a5a9-a219b8490041\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1StartPaidServiceRequest": { "description": "Request message for CloudChannelService.StartPaidService.", "id": "GoogleCloudChannelV1StartPaidServiceRequest", @@ -3406,6 +4330,68 @@ }, "type": "object" }, + "GoogleCloudChannelV1alpha1ChannelPartnerEvent": { + "description": "Represents Pub/Sub messages about updates to a Channel Partner. You can retrieve updated values through the ChannelPartnerLinks API.", + "id": "GoogleCloudChannelV1alpha1ChannelPartnerEvent", + "properties": { + "channelPartner": { + "description": "Resource name for the Channel Partner Link. Channel_partner uses the format: accounts/{account_id}/channelPartnerLinks/{channel_partner_id}", + "type": "string" + }, + "eventType": { + "description": "Type of event performed on the Channel Partner.", + "enum": [ + "TYPE_UNSPECIFIED", + "LINK_STATE_CHANGED", + "PARTNER_ADVANTAGE_INFO_CHANGED" + ], + "enumDescriptions": [ + "Default value. Does not display if there are no errors.", + "The Channel Partner link state changed.", + "The Channel Partner's Partner Advantage information changed. This can entail the Channel Partner's authorization to sell a product in a particular region." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1alpha1Column": { + "description": "The definition of a report column. Specifies the data properties in the corresponding position of the report rows.", + "id": "GoogleCloudChannelV1alpha1Column", + "properties": { + "columnId": { + "description": "The unique name of the column (for example, customer_domain, channel_partner, customer_cost). You can use column IDs in RunReportJobRequest.filter. To see all reports and their columns, call CloudChannelReportsService.ListReports.", + "type": "string" + }, + "dataType": { + "description": "The type of the values for this column.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "STRING", + "INT", + "DECIMAL", + "MONEY", + "DATE", + "DATE_TIME" + ], + "enumDescriptions": [ + "Not used.", + "ReportValues for this column will use string_value.", + "ReportValues for this column will use int_value.", + "ReportValues for this column will use decimal_value.", + "ReportValues for this column will use money_value.", + "ReportValues for this column will use date_value.", + "ReportValues for this column will use date_time_value." + ], + "type": "string" + }, + "displayName": { + "description": "The column's display name.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudChannelV1alpha1CommitmentSettings": { "description": "Commitment settings for commitment-based offers.", "id": "GoogleCloudChannelV1alpha1CommitmentSettings", @@ -3454,6 +4440,29 @@ }, "type": "object" }, + "GoogleCloudChannelV1alpha1DateRange": { + "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." + }, + "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." + }, + "usageEndDateTime": { + "$ref": "GoogleTypeDateTime", + "description": "The latest usage date time (exclusive). If you use time groupings (daily, weekly, etc), each group uses midnight to midnight (Pacific time). The usage end date is rounded down to include all usage from the specified date. We recommend that clients pass `usage_start_date_time` in Pacific time." + }, + "usageStartDateTime": { + "$ref": "GoogleTypeDateTime", + "description": "The earliest usage date time (inclusive). If you use time groupings (daily, weekly, etc), each group uses midnight to midnight (Pacific time). The usage start date is rounded down to include all usage from the specified date. We recommend that clients pass `usage_start_date_time` in Pacific time." + } + }, + "type": "object" + }, "GoogleCloudChannelV1alpha1Entitlement": { "description": "An entitlement is a representation of a customer's ability to use a service.", "id": "GoogleCloudChannelV1alpha1Entitlement", @@ -3501,7 +4510,7 @@ "type": "string" }, "parameters": { - "description": "Extended entitlement parameters. When creating an entitlement, valid parameter names and values are defined in the Offer.parameter_definitions. The response may include the following output-only Parameters: - assigned_units: The number of licenses assigned to users. - max_units: The maximum assignable units for a flexible offer. - num_units: The total commitment for commitment-based offers.", + "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.", "items": { "$ref": "GoogleCloudChannelV1alpha1Parameter" }, @@ -3534,7 +4543,7 @@ "type": "string" }, "purchaseOrderId": { - "description": "Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.", + "description": "Optional. This purchase order (PO) information is for resellers to use for their company tracking usage. If a purchaseOrderId value is given, it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters. This is only supported for Google Workspace entitlements.", "type": "string" }, "suspensionReasons": { @@ -3792,10 +4801,129 @@ }, "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.", + "id": "GoogleCloudChannelV1alpha1Report", + "properties": { + "columns": { + "description": "The list of columns included in the report. This defines the schema of the report results.", + "items": { + "$ref": "GoogleCloudChannelV1alpha1Column" + }, + "type": "array" + }, + "description": { + "description": "A description of other aspects of the report, such as the products it supports.", + "type": "string" + }, + "displayName": { + "description": "A human-readable name for this report.", + "type": "string" + }, + "name": { + "description": "Required. The report's resource name. Specifies the account and report used to generate report data. The report_id identifier is a UID (for example, `613bf59q`). Name uses the format: accounts/{account_id}/reports/{report_id}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1alpha1ReportJob": { + "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": { + "name": { + "description": "Required. The resource name of a report job. Name uses the format: `accounts/{account_id}/reportJobs/{report_job_id}`", + "type": "string" + }, + "reportStatus": { + "$ref": "GoogleCloudChannelV1alpha1ReportStatus", + "description": "The current status of report generation." + } + }, + "type": "object" + }, + "GoogleCloudChannelV1alpha1ReportResultsMetadata": { + "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", + "id": "GoogleCloudChannelV1alpha1ReportResultsMetadata", + "properties": { + "dateRange": { + "$ref": "GoogleCloudChannelV1alpha1DateRange", + "description": "The date range of reported usage." + }, + "precedingDateRange": { + "$ref": "GoogleCloudChannelV1alpha1DateRange", + "description": "The usage dates immediately preceding `date_range` with the same duration. Use this to calculate trending usage and costs. This is only populated if you request trending data. For example, if `date_range` is July 1-15, `preceding_date_range` will be June 16-30." + }, + "report": { + "$ref": "GoogleCloudChannelV1alpha1Report", + "description": "Details of the completed report." + }, + "rowCount": { + "description": "The total number of rows of data in the final report.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1alpha1ReportStatus": { + "description": "Status of a report generation process.", + "id": "GoogleCloudChannelV1alpha1ReportStatus", + "properties": { + "endTime": { + "description": "The report generation's completion time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The report generation's start time.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "The current state of the report generation process.", + "enum": [ + "STATE_UNSPECIFIED", + "STARTED", + "WRITING", + "AVAILABLE", + "FAILED" + ], + "enumDescriptions": [ + "Not used.", + "Report processing started.", + "Data generated from the report is being staged.", + "Report data is available for access.", + "Report failed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudChannelV1alpha1RunReportJobResponse": { + "description": "Response message for CloudChannelReportsService.RunReportJob.", + "id": "GoogleCloudChannelV1alpha1RunReportJobResponse", + "properties": { + "reportJob": { + "$ref": "GoogleCloudChannelV1alpha1ReportJob", + "description": "Pass `report_job.name` to FetchReportResultsRequest.report_job to retrieve the report's results." + }, + "reportMetadata": { + "$ref": "GoogleCloudChannelV1alpha1ReportResultsMetadata", + "description": "The metadata for the report's results (display name, columns, row count, and date range). If you view this before the operation finishes, you may see incomplete data." + } + }, + "type": "object" + }, "GoogleCloudChannelV1alpha1SubscriberEvent": { "description": "Represents information which resellers will get as part of notification from Pub/Sub.", "id": "GoogleCloudChannelV1alpha1SubscriberEvent", "properties": { + "channelPartnerEvent": { + "$ref": "GoogleCloudChannelV1alpha1ChannelPartnerEvent", + "description": "Channel Partner event sent as part of Pub/Sub event to partners." + }, "customerEvent": { "$ref": "GoogleCloudChannelV1alpha1CustomerEvent", "description": "Customer event sent as part of Pub/Sub event to partners." @@ -3930,7 +5058,7 @@ "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" @@ -3962,6 +5090,90 @@ }, "type": "object" }, + "GoogleTypeDate": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "id": "GoogleTypeDate", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleTypeDateTime": { + "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", + "id": "GoogleTypeDateTime", + "properties": { + "day": { + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", + "format": "int32", + "type": "integer" + }, + "hours": { + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", + "format": "int32", + "type": "integer" + }, + "minutes": { + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", + "format": "int32", + "type": "integer" + }, + "nanos": { + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" + }, + "timeZone": { + "$ref": "GoogleTypeTimeZone", + "description": "Time zone." + }, + "utcOffset": { + "description": "UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.", + "format": "google-duration", + "type": "string" + }, + "year": { + "description": "Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleTypeDecimal": { + "description": "A representation of a decimal value, such as 2.5. Clients may convert values into language-native decimal formats, such as Java's BigDecimal or Python's decimal.Decimal. [BigDecimal]: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html [decimal.Decimal]: https://docs.python.org/3/library/decimal.html", + "id": "GoogleTypeDecimal", + "properties": { + "value": { + "description": "The decimal value, as a string. The string representation consists of an optional sign, `+` (`U+002B`) or `-` (`U+002D`), followed by a sequence of zero or more decimal digits (\"the integer\"), optionally followed by a fraction, optionally followed by an exponent. An empty string **should** be interpreted as `0`. The fraction consists of a decimal point followed by zero or more decimal digits. The string must contain at least one digit in either the integer or the fraction. The number formed by the sign, the integer and the fraction is referred to as the significand. The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) followed by one or more decimal digits. Services **should** normalize decimal values before storing them by: - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). - Coercing the exponent character to upper-case, with explicit sign (`2.5e8` -> `2.5E+8`). - Removing an explicitly-provided zero exponent (`2.5E0` -> `2.5`). Services **may** perform additional normalization based on its own needs and the internal decimal implementation selected, such as shifting the decimal point and exponent value together (example: `2.5E-1` <-> `0.25`). Additionally, services **may** preserve trailing zeroes in the fraction to indicate increased precision, but are not required to do so. Note that only the `.` character is supported to divide the integer and the fraction; `,` **should not** be supported regardless of locale. Additionally, thousand separators **should not** be supported. If a service does support them, values **must** be normalized. The ENBF grammar is: DecimalString = '' | [Sign] Significand [Exponent]; Sign = '+' | '-'; Significand = Digits '.' | [Digits] '.' Digits; Exponent = ('e' | 'E') [Sign] Digits; Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; Services **should** clearly document the range of supported values, the maximum supported precision (total number of digits), and, if applicable, the scale (number of digits after the decimal point), as well as how it behaves when receiving out-of-bounds values. Services **may** choose to accept values passed as input even when the value has a higher precision or scale than the service supports, and **should** round the value to fit the supported scale. Alternatively, the service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if precision would be lost. Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) if the service receives a value outside of the supported range.", + "type": "string" + } + }, + "type": "object" + }, "GoogleTypeMoney": { "description": "Represents an amount of money with its currency type.", "id": "GoogleTypeMoney", @@ -3984,7 +5196,7 @@ "type": "object" }, "GoogleTypePostalAddress": { - "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 i18n-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", + "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": "GoogleTypePostalAddress", "properties": { "addressLines": { @@ -4040,6 +5252,21 @@ } }, "type": "object" + }, + "GoogleTypeTimeZone": { + "description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", + "id": "GoogleTypeTimeZone", + "properties": { + "id": { + "description": "IANA Time Zone Database time zone, e.g. \"America/New_York\".", + "type": "string" + }, + "version": { + "description": "Optional. IANA Time Zone Database version number, e.g. \"2019a\".", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/clouddebugger/v2/clouddebugger-api.json b/etc/api/clouddebugger/v2/clouddebugger-api.json index c591af0e0e..772e094aff 100644 --- a/etc/api/clouddebugger/v2/clouddebugger-api.json +++ b/etc/api/clouddebugger/v2/clouddebugger-api.json @@ -448,7 +448,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://clouddebugger.googleapis.com/", "schemas": { "AliasContext": { @@ -739,7 +739,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/clouddeploy/v1/clouddeploy-api.json b/etc/api/clouddeploy/v1/clouddeploy-api.json index 50fb91fd09..4b68d59b40 100644 --- a/etc/api/clouddeploy/v1/clouddeploy-api.json +++ b/etc/api/clouddeploy/v1/clouddeploy-api.json @@ -169,7 +169,7 @@ ], "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).", + "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" }, @@ -338,7 +338,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -363,7 +363,7 @@ ], "parameters": { "filter": { - "description": "Filter builds to be returned. See https://google.aip.dev/160 for more details.", + "description": "Filter pipelines to be returned. See https://google.aip.dev/160 for more details.", "location": "query", "type": "string" }, @@ -458,7 +458,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -486,7 +486,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -508,6 +508,34 @@ "resources": { "releases": { "methods": { + "abandon": { + "description": "Abandons a Release in the Delivery Pipeline.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}:abandon", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.abandon", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "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, + "type": "string" + } + }, + "path": "v1/{+name}:abandon", + "request": { + "$ref": "AbandonReleaseRequest" + }, + "response": { + "$ref": "AbandonReleaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a new Release in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases", @@ -586,7 +614,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter builds to be returned. See https://google.aip.dev/160 for more details.", + "description": "Optional. Filter releases to be returned. See https://google.aip.dev/160 for more details.", "location": "query", "type": "string" }, @@ -732,7 +760,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter builds to be returned. See https://google.aip.dev/160 for more details.", + "description": "Optional. Filter rollouts to be returned. See https://google.aip.dev/160 for more details.", "location": "query", "type": "string" }, @@ -767,6 +795,111 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "retryJob": { + "description": "Retries the specified Job in a Rollout.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}:retryJob", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.retryJob", + "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}:retryJob", + "request": { + "$ref": "RetryJobRequest" + }, + "response": { + "$ref": "RetryJobResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "jobRuns": { + "methods": { + "get": { + "description": "Gets details of a single JobRun.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}/jobRuns/{jobRunsId}", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.jobRuns.get", + "parameterOrder": [ + "name" + ], + "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}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+/jobRuns/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "JobRun" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists JobRuns in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/deliveryPipelines/{deliveryPipelinesId}/releases/{releasesId}/rollouts/{rolloutsId}/jobRuns", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.deliveryPipelines.releases.rollouts.jobRuns.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter results 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 `JobRun` objects to return. The service may return fewer than this value. If unspecified, at most 50 `JobRun` objects will be returned. The maximum value is 1000; values above 1000 will be set to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListJobRuns` call. Provide this to retrieve the subsequent page. When paginating, all other provided parameters match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The `Rollout` which owns this collection of `JobRun` objects.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/jobRuns", + "response": { + "$ref": "ListJobRunsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -1028,7 +1161,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/targets/[^/]+$", "required": true, @@ -1053,7 +1186,7 @@ ], "parameters": { "filter": { - "description": "Optional. Filter builds to be returned. See https://google.aip.dev/160 for more details.", + "description": "Optional. Filter targets to be returned. See https://google.aip.dev/160 for more details.", "location": "query", "type": "string" }, @@ -1148,7 +1281,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/targets/[^/]+$", "required": true, @@ -1176,7 +1309,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/targets/[^/]+$", "required": true, @@ -1201,9 +1334,21 @@ } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://clouddeploy.googleapis.com/", "schemas": { + "AbandonReleaseRequest": { + "description": "The request object used by `AbandonRelease`.", + "id": "AbandonReleaseRequest", + "properties": {}, + "type": "object" + }, + "AbandonReleaseResponse": { + "description": "The response object for `AbandonRelease`.", + "id": "AbandonReleaseResponse", + "properties": {}, + "type": "object" + }, "AnthosCluster": { "description": "Information specifying an Anthos Cluster.", "id": "AnthosCluster", @@ -1233,7 +1378,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1289,7 +1434,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1323,23 +1468,35 @@ "properties": {}, "type": "object" }, - "Config": { - "description": "Service-wide configuration.", - "id": "Config", + "CloudRunLocation": { + "description": "Information specifying where to deploy a Cloud Run Service.", + "id": "CloudRunLocation", "properties": { - "defaultSkaffoldVersion": { - "description": "Output only. Default Skaffold version that is assigned when a Release is created without specifying a Skaffold version.", + "location": { + "description": "Required. The location for the Cloud Run Service. Format must be `projects/{project}/locations/{location}`.", + "type": "string" + } + }, + "type": "object" + }, + "CloudRunMetadata": { + "description": "CloudRunMetadata contains information from a Cloud Run deployment.", + "id": "CloudRunMetadata", + "properties": { + "revision": { + "description": "Output only. The Cloud Run Revision id associated with a `Rollout`.", "readOnly": true, "type": "string" }, - "name": { - "description": "Name of the configuration.", + "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" }, - "supportedVersions": { - "description": "Output only. All supported versions of Skaffold.", + "serviceUrls": { + "description": "Output only. The Cloud Run Service urls that are associated with a `Rollout`.", "items": { - "$ref": "SkaffoldVersion" + "type": "string" }, "readOnly": true, "type": "array" @@ -1347,8 +1504,30 @@ }, "type": "object" }, + "Config": { + "description": "Service-wide configuration.", + "id": "Config", + "properties": { + "defaultSkaffoldVersion": { + "description": "Default Skaffold version that is assigned when a Release is created without specifying a Skaffold version.", + "type": "string" + }, + "name": { + "description": "Name of the configuration.", + "type": "string" + }, + "supportedVersions": { + "description": "All supported versions of Skaffold.", + "items": { + "$ref": "SkaffoldVersion" + }, + "type": "array" + } + }, + "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1392,7 +1571,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 Google Cloud Deploy.", "type": "object" }, "condition": { @@ -1429,6 +1608,10 @@ "$ref": "SerialPipeline", "description": "SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`." }, + "suspended": { + "description": "When suspended, no new releases or rollouts can be created, but in-progress ones will complete.", + "type": "boolean" + }, "uid": { "description": "Output only. Unique identifier of the `DeliveryPipeline`.", "readOnly": true, @@ -1443,8 +1626,113 @@ }, "type": "object" }, + "DeliveryPipelineNotificationEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/deliverypipeline_notification\" Platform Log event that describes the failure to send delivery pipeline status change Pub/Sub notification.", + "id": "DeliveryPipelineNotificationEvent", + "properties": { + "deliveryPipeline": { + "description": "The name of the `Delivery Pipeline`.", + "type": "string" + }, + "message": { + "description": "Debug message for when a notification fails to send.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a Pub/Sub failure.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, + "DeployJob": { + "description": "A deploy Job.", + "id": "DeployJob", + "properties": {}, + "type": "object" + }, + "DeployJobRun": { + "description": "DeployJobRun contains information specific to a deploy `JobRun`.", + "id": "DeployJobRun", + "properties": { + "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" + }, + "failureCause": { + "description": "Output only. The reason the deploy failed. This will always be unspecified while the deploy 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 Google Cloud Deploy has insufficient permissions. See [Required permission](/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." + ], + "readOnly": true, + "type": "string" + }, + "failureMessage": { + "description": "Output only. Additional information about the deploy failure, if available.", + "readOnly": true, + "type": "string" + }, + "metadata": { + "$ref": "DeployJobRunMetadata", + "description": "Output only. Metadata containing information about the deploy job run.", + "readOnly": true + } + }, + "type": "object" + }, + "DeployJobRunMetadata": { + "description": "DeployJobRunMetadata surfaces information associated with a `DeployJobRun` to the user.", + "id": "DeployJobRunMetadata", + "properties": { + "cloudRun": { + "$ref": "CloudRunMetadata", + "description": "Output only. The name of the Cloud Run Service that is associated with a `DeployJobRun`.", + "readOnly": true + } + }, + "type": "object" + }, + "DeploymentJobs": { + "description": "Deployment job composition.", + "id": "DeploymentJobs", + "properties": { + "deployJob": { + "$ref": "Job", + "description": "Output only. The deploy Job. This is the first job run in the phase.", + "readOnly": true + }, + "verifyJob": { + "$ref": "Job", + "description": "Output only. The verify Job. Runs after a deploy if the deploy succeeds.", + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1461,6 +1749,11 @@ "$ref": "DefaultPool", "description": "Optional. Use default Cloud Build pool." }, + "executionTimeout": { + "description": "Optional. Execution timeout for a Cloud Build Execution. This must be between 10m and 24h in seconds format. If unspecified, a default timeout of 1h is used.", + "format": "google-duration", + "type": "string" + }, "privatePool": { "$ref": "PrivatePool", "description": "Optional. Use private Cloud Build pool." @@ -1475,12 +1768,14 @@ "enum": [ "EXECUTION_ENVIRONMENT_USAGE_UNSPECIFIED", "RENDER", - "DEPLOY" + "DEPLOY", + "VERIFY" ], "enumDescriptions": [ "Default value. This value is unused.", "Use for rendering.", - "Use for deploying and deployment hooks." + "Use for deploying and deployment hooks.", + "Use for deployment verification." ], "type": "string" }, @@ -1531,6 +1826,177 @@ }, "type": "object" }, + "Job": { + "description": "Job represents an operation for a `Rollout`.", + "id": "Job", + "properties": { + "deployJob": { + "$ref": "DeployJob", + "description": "Output only. A deploy Job.", + "readOnly": true + }, + "id": { + "description": "Output only. The ID of the Job.", + "readOnly": true, + "type": "string" + }, + "jobRun": { + "description": "Output only. The name of the `JobRun` responsible for the most recent invocation of this Job.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the Job.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "DISABLED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED", + "ABORTED" + ], + "enumDescriptions": [ + "The Job has an unspecified state.", + "The Job is waiting for an earlier Phase(s) or Job(s) to complete.", + "The Job is disabled.", + "The Job is in progress.", + "The Job succeeded.", + "The Job failed.", + "The Job was aborted." + ], + "readOnly": true, + "type": "string" + }, + "verifyJob": { + "$ref": "VerifyJob", + "description": "Output only. A verify Job.", + "readOnly": true + } + }, + "type": "object" + }, + "JobRun": { + "description": "A `JobRun` resource in the Google Cloud Deploy API. A `JobRun` contains information of a single `Rollout` job evaluation.", + "id": "JobRun", + "properties": { + "createTime": { + "description": "Output only. Time at which the `JobRun` was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deployJobRun": { + "$ref": "DeployJobRun", + "description": "Output only. Information specific to a deploy `JobRun`.", + "readOnly": true + }, + "endTime": { + "description": "Output only. Time at which the `JobRun` ended.", + "format": "google-datetime", + "readOnly": true, + "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" + }, + "jobId": { + "description": "Output only. ID of the `Rollout` job this `JobRun` corresponds to.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Optional. Name of the `JobRun`. Format is projects/{project}/locations/{location}/ deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/ {rollouts}/jobRuns/{uuid}.", + "type": "string" + }, + "phaseId": { + "description": "Output only. ID of the `Rollout` phase this `JobRun` belongs in.", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. Time at which the `JobRun` was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the `JobRun`.", + "enum": [ + "STATE_UNSPECIFIED", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED" + ], + "enumDescriptions": [ + "The `JobRun` has an unspecified state.", + "The `JobRun` is in progress.", + "The `JobRun` has succeeded.", + "The `JobRun` has failed." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. Unique identifier of the `JobRun`.", + "readOnly": true, + "type": "string" + }, + "verifyJobRun": { + "$ref": "VerifyJobRun", + "description": "Output only. Information specific to a verify `JobRun`.", + "readOnly": true + } + }, + "type": "object" + }, + "JobRunNotificationEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/jobrun_notification\" Platform Log event that describes the failure to send JobRun resource update Pub/Sub notification.", + "id": "JobRunNotificationEvent", + "properties": { + "jobRun": { + "description": "The name of the `JobRun`.", + "type": "string" + }, + "message": { + "description": "Debug message for when a notification fails to send.", + "type": "string" + }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, + "releaseUid": { + "description": "Unique identifier of the `Release`.", + "type": "string" + }, + "rolloutUid": { + "description": "Unique identifier of the `Rollout`.", + "type": "string" + }, + "targetId": { + "description": "ID of the `Target`.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a Pub/Sub failure.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, "ListDeliveryPipelinesResponse": { "description": "The response object from `ListDeliveryPipelines`.", "id": "ListDeliveryPipelinesResponse", @@ -1556,6 +2022,31 @@ }, "type": "object" }, + "ListJobRunsResponse": { + "description": "ListJobRunsResponse is the response object returned by `ListJobRuns`.", + "id": "ListJobRunsResponse", + "properties": { + "jobRuns": { + "description": "The `JobRun` objects.", + "items": { + "$ref": "JobRun" + }, + "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" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1701,6 +2192,18 @@ }, "type": "object" }, + "Metadata": { + "description": "Metadata includes information associated with a `Rollout`.", + "id": "Metadata", + "properties": { + "cloudRun": { + "$ref": "CloudRunMetadata", + "description": "Output only. The name of the Cloud Run Service that is associated with a `Rollout`.", + "readOnly": true + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1780,6 +2283,44 @@ }, "type": "object" }, + "Phase": { + "description": "Phase represents a collection of jobs that are logically grouped together for a `Rollout`.", + "id": "Phase", + "properties": { + "deploymentJobs": { + "$ref": "DeploymentJobs", + "description": "Output only. Deployment job composition.", + "readOnly": true + }, + "id": { + "description": "Output only. The ID of the Phase.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Current state of the Phase.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "IN_PROGRESS", + "SUCCEEDED", + "FAILED", + "ABORTED" + ], + "enumDescriptions": [ + "The Phase has an unspecified state.", + "The Phase is waiting for an earlier Phase(s) to complete.", + "The Phase is in progress.", + "The Phase has succeeded.", + "The Phase has failed.", + "The Phase was aborted." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "PipelineCondition": { "description": "PipelineCondition contains all conditions relevant to a Delivery Pipeline.", "id": "PipelineCondition", @@ -1790,7 +2331,11 @@ }, "targetsPresentCondition": { "$ref": "TargetsPresentCondition", - "description": "Detalis around targets enumerated in the pipeline." + "description": "Details around targets enumerated in the pipeline." + }, + "targetsTypeCondition": { + "$ref": "TargetsTypeCondition", + "description": "Details on the whether the targets enumerated in the pipeline are of the same type." } }, "type": "object" @@ -1865,6 +2410,11 @@ "description": "A `Release` resource in the Google Cloud Deploy API. A `Release` defines a specific Skaffold configuration instance that can be deployed.", "id": "Release", "properties": { + "abandoned": { + "description": "Output only. Indicates whether this is an abandoned release.", + "readOnly": true, + "type": "boolean" + }, "annotations": { "additionalProperties": { "type": "string" @@ -1982,6 +2532,71 @@ }, "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", + "properties": { + "message": { + "description": "Debug message for when a notification fails to send.", + "type": "string" + }, + "release": { + "description": "The name 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_RENDER_STATUES_CHANGE" + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, + "ReleaseRenderEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/release_render\" Platform Log event that describes the render status change.", + "id": "ReleaseRenderEvent", + "properties": { + "message": { + "description": "Debug message for when a render transition occurs. Provides further details as rendering progresses through render states.", + "type": "string" + }, + "release": { + "description": "The name of the `Release`.", + "type": "string" + } + }, + "type": "object" + }, + "RetryJobRequest": { + "description": "RetryJobRequest is the request object used by `RetryJob`.", + "id": "RetryJobRequest", + "properties": { + "jobId": { + "description": "Required. The job ID for the Job to retry.", + "type": "string" + }, + "phaseId": { + "description": "Required. The phase ID the Job to retry belongs to.", + "type": "string" + } + }, + "type": "object" + }, + "RetryJobResponse": { + "description": "The response object from 'RetryJob'.", + "id": "RetryJobResponse", + "properties": {}, + "type": "object" + }, "Rollout": { "description": "A `Rollout` resource in the Google Cloud Deploy API. A `Rollout` contains information around a specific deployment to a `Target`.", "id": "Rollout", @@ -2031,20 +2646,26 @@ "type": "string" }, "deployFailureCause": { - "description": "Output only. The reason this deploy failed. This will always be unspecified while the deploy in progress.", + "description": "Output only. The reason this rollout failed. This will always be unspecified while the rollout is in progress.", "enum": [ "FAILURE_CAUSE_UNSPECIFIED", "CLOUD_BUILD_UNAVAILABLE", "EXECUTION_FAILED", "DEADLINE_EXCEEDED", - "RELEASE_FAILED" + "RELEASE_FAILED", + "RELEASE_ABANDONED", + "VERIFICATION_CONFIG_NOT_FOUND", + "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](/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 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." ], "readOnly": true, "type": "string" @@ -2075,7 +2696,7 @@ "type": "string" }, "failureReason": { - "description": "Output only. Reason the build failed. Empty if the build succeeded.", + "description": "Output only. Additional information about the rollout failure, if available.", "readOnly": true, "type": "string" }, @@ -2086,10 +2707,23 @@ "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.", "type": "object" }, + "metadata": { + "$ref": "Metadata", + "description": "Output only. Metadata contains information about the rollout.", + "readOnly": true + }, "name": { "description": "Optional. Name of the `Rollout`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/a-z{0,62}.", "type": "string" }, + "phases": { + "description": "Output only. The phases that represent the workflows of this `Rollout`.", + "items": { + "$ref": "Phase" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "Output only. Current state of the `Rollout`.", "enum": [ @@ -2127,6 +2761,47 @@ }, "type": "object" }, + "RolloutNotificationEvent": { + "description": "Payload proto for \"clouddeploy.googleapis.com/rollout_notification\" Platform Log event that describes the failure to send rollout status change Pub/Sub notification.", + "id": "RolloutNotificationEvent", + "properties": { + "message": { + "description": "Debug message for when a notification fails to send.", + "type": "string" + }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, + "releaseUid": { + "description": "Unique identifier of the `Release`.", + "type": "string" + }, + "rollout": { + "description": "The name of the `Rollout`.", + "type": "string" + }, + "targetId": { + "description": "ID of the `Target` that the rollout is deployed to.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a Pub/Sub failure.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, "SerialPipeline": { "description": "SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`.", "id": "SerialPipeline", @@ -2147,7 +2822,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2183,6 +2858,10 @@ }, "type": "array" }, + "strategy": { + "$ref": "Strategy", + "description": "Optional. The strategy to use for a `Rollout` to this stage." + }, "targetId": { "description": "The target_id to which this stage points. This field refers exclusively to the last segment of a target name. For example, this field would just be `my-target` (rather than `projects/project/locations/location/targets/my-target`). The location of the `Target` is inferred to be the same as the location of the `DeliveryPipeline` that contains this `Stage`.", "type": "string" @@ -2190,6 +2869,17 @@ }, "type": "object" }, + "Standard": { + "description": "Standard represents the standard deployment strategy.", + "id": "Standard", + "properties": { + "verify": { + "description": "Whether to verify a deployment.", + "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", @@ -2217,6 +2907,17 @@ }, "type": "object" }, + "Strategy": { + "description": "Strategy contains deployment strategy information.", + "id": "Strategy", + "properties": { + "standard": { + "$ref": "Standard", + "description": "Standard deployment strategy executes a single deploy and allows verifying the deployment." + } + }, + "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.", "id": "Target", @@ -2272,6 +2973,10 @@ "description": "Optional. Whether or not the `Target` requires approval.", "type": "boolean" }, + "run": { + "$ref": "CloudRunLocation", + "description": "Information specifying a Cloud Run deployment target." + }, "targetId": { "description": "Output only. Resource id of the `Target`.", "readOnly": true, @@ -2313,6 +3018,35 @@ }, "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", + "properties": { + "message": { + "description": "Debug message for when a notification fails to send.", + "type": "string" + }, + "target": { + "description": "The name of the `Target`.", + "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a Pub/Sub failure.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" + } + }, + "type": "object" + }, "TargetRender": { "description": "Details of rendering for a single target.", "id": "TargetRender", @@ -2322,16 +3056,23 @@ "enum": [ "FAILURE_CAUSE_UNSPECIFIED", "CLOUD_BUILD_UNAVAILABLE", - "EXECUTION_FAILED" + "EXECUTION_FAILED", + "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](/deploy/docs/cloud-deploy-service-account#required_permissions).", - "The render operation did not complete successfully; check Cloud Build logs." + "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).", + "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." ], "readOnly": true, "type": "string" }, + "failureMessage": { + "description": "Output only. Additional information about the render failure, if available.", + "readOnly": true, + "type": "string" + }, "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, @@ -2362,7 +3103,7 @@ "id": "TargetsPresentCondition", "properties": { "missingTargets": { - "description": "The list of Target names that are missing. 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" }, @@ -2380,12 +3121,27 @@ }, "type": "object" }, + "TargetsTypeCondition": { + "description": "TargetsTypeCondition contains information on whether the Targets defined in the Delivery Pipeline are of the same type.", + "id": "TargetsTypeCondition", + "properties": { + "errorDetails": { + "description": "Human readable error message.", + "type": "string" + }, + "status": { + "description": "True if the targets are all a comparable type. For example this is true if all targets are GKE clusters. This is false if some targets are Cloud Run targets and others are GKE clusters.", + "type": "boolean" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2407,6 +3163,60 @@ } }, "type": "object" + }, + "VerifyJob": { + "description": "A verify Job.", + "id": "VerifyJob", + "properties": {}, + "type": "object" + }, + "VerifyJobRun": { + "description": "VerifyJobRun contains information specific to a verify `JobRun`.", + "id": "VerifyJobRun", + "properties": { + "artifactUri": { + "description": "Output only. URI of a directory containing the verify artifacts. This contains the Skaffold event log.", + "readOnly": true, + "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}.", + "readOnly": true, + "type": "string" + }, + "eventLogPath": { + "description": "Output only. File path of the Skaffold event log relative to the artifact URI.", + "readOnly": true, + "type": "string" + }, + "failureCause": { + "description": "Output only. The reason the verify failed. This will always be unspecified while the verify is in progress or if it succeeded.", + "enum": [ + "FAILURE_CAUSE_UNSPECIFIED", + "CLOUD_BUILD_UNAVAILABLE", + "EXECUTION_FAILED", + "DEADLINE_EXCEEDED", + "VERIFICATION_CONFIG_NOT_FOUND", + "CLOUD_BUILD_REQUEST_FAILED" + ], + "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).", + "The verify operation did not complete successfully; check Cloud Build logs.", + "The verify build 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." + ], + "readOnly": true, + "type": "string" + }, + "failureMessage": { + "description": "Output only. Additional information about the verify failure, if available.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json index 4e51af47e6..fbeed74275 100644 --- a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json +++ b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json @@ -262,7 +262,7 @@ ], "enumDescriptions": [ "No alignment specified.", - "The time periods shall be consecutive, have width equal to the requested duration, and be aligned at the `alignment_time` provided in the request. The `alignment_time` does not have to be inside the query period but even if it is outside, only time periods are returned which overlap with the query period. A rounded alignment will typically result in a different size of the first or the last time period.", + "The time periods shall be consecutive, have width equal to the requested duration, and be aligned at the alignment_time provided in the request. The alignment_time does not have to be inside the query period but even if it is outside, only time periods are returned which overlap with the query period. A rounded alignment will typically result in a different size of the first or the last time period.", "The time periods shall be consecutive, have width equal to the requested duration, and be aligned at the end of the requested time period. This can result in a different size of the first time period." ], "location": "query", @@ -306,12 +306,12 @@ "type": "integer" }, "pageToken": { - "description": "Optional. A `next_page_token` provided by a previous response. To view additional results, pass this token along with the identical query parameters as the first request.", + "description": "Optional. A next_page_token provided by a previous response. To view additional results, pass this token along with the identical query parameters as the first request.", "location": "query", "type": "string" }, "projectName": { - "description": "Required. The resource name of the Google Cloud Platform project. Written as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}` and `{projectNumber}` can be found in the [Google Cloud Console](https://support.google.com/cloud/answer/6158840). Examples: `projects/my-project-123`, `projects/5551234`.", + "description": "Required. The resource name of the Google Cloud Platform project. Written as `projects/{projectID}` or `projects/{projectNumber}`, where `{projectID}` and `{projectNumber}` can be found in the [Google Cloud console](https://support.google.com/cloud/answer/6158840). Examples: `projects/my-project-123`, `projects/5551234`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -354,7 +354,7 @@ "type": "string" }, "timedCountDuration": { - "description": "Optional. The preferred duration for a single returned `TimedCount`. If not set, no timed counts are returned.", + "description": "Optional. The preferred duration for a single returned TimedCount. If not set, no timed counts are returned.", "format": "google-duration", "location": "query", "type": "string" @@ -382,7 +382,7 @@ ], "parameters": { "groupName": { - "description": "Required. The group resource name. Written as `projects/{projectID}/groups/{group_name}`. Call [`groupStats.list`](https://cloud.google.com/error-reporting/reference/rest/v1beta1/projects.groupStats/list) 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_name}`. Call groupStats.list to return a list of groups belonging to this project. Example: `projects/my-project-123/groups/my-group`", "location": "path", "pattern": "^projects/[^/]+/groups/[^/]+$", "required": true, @@ -430,7 +430,7 @@ } } }, - "revision": "20220302", + "revision": "20230112", "rootUrl": "https://clouderrorreporting.googleapis.com/", "schemas": { "DeleteEventsResponse": { @@ -541,7 +541,7 @@ "type": "array" }, "affectedUsersCount": { - "description": "Approximate number of affected users in the given group that match the filter criteria. Users are distinguished by data in the `ErrorContext` of the individual error events, such as their login name or their remote IP address in case of HTTP requests. The number of affected users can be zero even if the number of errors is non-zero if no data was provided from which the affected user could be deduced. Users are counted based on data in the request context that was provided in the error report. If more users are implicitly affected, such as due to a crash of the whole service, this is not reflected here.", + "description": "Approximate number of affected users in the given group that match the filter criteria. Users are distinguished by data in the ErrorContext of the individual error events, such as their login name or their remote IP address in case of HTTP requests. The number of affected users can be zero even if the number of errors is non-zero if no data was provided from which the affected user could be deduced. Users are counted based on data in the request context that was provided in the error report. If more users are implicitly affected, such as due to a crash of the whole service, this is not reflected here.", "format": "int64", "type": "string" }, @@ -681,7 +681,7 @@ "type": "string" }, "message": { - "description": "Required. The error message. If no `context.reportLocation` is provided, the message must contain a header (typically consisting of the exception type name and an error message) and an exception stack trace in one of the supported programming languages and formats. Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go. Supported stack trace formats are: * **Java**: Must be the return value of [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29). * **Python**: Must be the return value of [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc). * **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned by V8. * **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace). * **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx). * **PHP**: Must start with `PHP (Notice|Parse error|Fatal error|Warning)` and contain the result of [`(string)$exception`](http://php.net/manual/en/exception.tostring.php). * **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).", + "description": "Required. The error message. If no `context.reportLocation` is provided, the message must contain a header (typically consisting of the exception type name and an error message) and an exception stack trace in one of the supported programming languages and formats. Supported languages are Java, Python, JavaScript, Ruby, C#, PHP, and Go. Supported stack trace formats are: * **Java**: Must be the return value of [`Throwable.printStackTrace()`](https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace%28%29). * **Python**: Must be the return value of [`traceback.format_exc()`](https://docs.python.org/2/library/traceback.html#traceback.format_exc). * **JavaScript**: Must be the value of [`error.stack`](https://github.com/v8/v8/wiki/Stack-Trace-API) as returned by V8. * **Ruby**: Must contain frames returned by [`Exception.backtrace`](https://ruby-doc.org/core-2.2.0/Exception.html#method-i-backtrace). * **C#**: Must be the return value of [`Exception.ToString()`](https://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx). * **PHP**: Must be prefixed with `\"PHP (Notice|Parse error|Fatal error|Warning): \"` and contain the result of [`(string)$exception`](https://php.net/manual/en/exception.tostring.php). * **Go**: Must be the return value of [`runtime.Stack()`](https://golang.org/pkg/runtime/debug/#Stack).", "type": "string" }, "serviceContext": { diff --git a/etc/api/cloudfunctions/v1/cloudfunctions-api.json b/etc/api/cloudfunctions/v1/cloudfunctions-api.json index 82af22fbdf..a0050966d9 100644 --- a/etc/api/cloudfunctions/v1/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v1/cloudfunctions-api.json @@ -185,7 +185,7 @@ ], "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).", + "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" }, @@ -398,7 +398,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -493,7 +493,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -521,7 +521,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -546,11 +546,11 @@ } } }, - "revision": "20220224", + "revision": "20230119", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -606,7 +606,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -945,7 +945,12 @@ "GenerateUploadUrlRequest": { "description": "Request of `GenerateSourceUploadUrl` method.", "id": "GenerateUploadUrlRequest", - "properties": {}, + "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.", + "type": "string" + } + }, "type": "object" }, "GenerateUploadUrlResponse": { @@ -959,6 +964,153 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleCloudFunctionsV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "API version used to start the operation.", + "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`.", + "type": "boolean" + }, + "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" + }, + "requestResource": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The original request that started the operation.", + "type": "object" + }, + "stages": { + "description": "Mechanism for reporting in-progress stages", + "items": { + "$ref": "GoogleCloudFunctionsV2Stage" + }, + "type": "array" + }, + "statusDetail": { + "description": "Human-readable status of the operation, if any.", + "type": "string" + }, + "target": { + "description": "Server-defined resource path for the target of the operation.", + "type": "string" + }, + "verb": { + "description": "Name of the verb executed by the operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2Stage": { + "description": "Each Stage of the deployment process", + "id": "GoogleCloudFunctionsV2Stage", + "properties": { + "message": { + "description": "Message describing the Stage", + "type": "string" + }, + "name": { + "description": "Name of the Stage. This will be unique for each Stage.", + "enum": [ + "NAME_UNSPECIFIED", + "ARTIFACT_REGISTRY", + "BUILD", + "SERVICE", + "TRIGGER", + "SERVICE_ROLLBACK", + "TRIGGER_ROLLBACK" + ], + "enumDescriptions": [ + "Not specified. Invalid name.", + "Artifact Regsitry Stage", + "Build Stage", + "Service Stage", + "Trigger Stage", + "Service Rollback Stage", + "Trigger Rollback Stage" + ], + "type": "string" + }, + "resource": { + "description": "Resource of the Stage", + "type": "string" + }, + "resourceUri": { + "description": "Link to the current Stage resource", + "type": "string" + }, + "state": { + "description": "Current state of the Stage", + "enum": [ + "STATE_UNSPECIFIED", + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETE" + ], + "enumDescriptions": [ + "Not specified. Invalid state.", + "Stage has not started.", + "Stage is in progress.", + "Stage has completed." + ], + "type": "string" + }, + "stateMessages": { + "description": "State messages from the current Stage.", + "items": { + "$ref": "GoogleCloudFunctionsV2StateMessage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2StateMessage": { + "description": "Informational messages about the state of the Cloud Function or Operation.", + "id": "GoogleCloudFunctionsV2StateMessage", + "properties": { + "message": { + "description": "The message.", + "type": "string" + }, + "severity": { + "description": "Severity of the state message.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Not specified. Invalid severity.", + "ERROR-level severity.", + "WARNING-level severity.", + "INFO-level severity." + ], + "type": "string" + }, + "type": { + "description": "One-word CamelCase type of the state message.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1573,7 +1725,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1631,7 +1783,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json index aeb207dea5..2aa1325a97 100644 --- a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json @@ -119,7 +119,7 @@ ], "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).", + "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" }, @@ -309,7 +309,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -414,7 +414,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -442,7 +442,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -571,11 +571,11 @@ } } }, - "revision": "20220224", + "revision": "20230119", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -631,7 +631,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -653,8 +653,26 @@ "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.", + "enum": [ + "DOCKER_REGISTRY_UNSPECIFIED", + "CONTAINER_REGISTRY", + "ARTIFACT_REGISTRY" + ], + "enumDescriptions": [ + "Unspecified.", + "Docker images will be stored in multi-regional Container Registry repositories named `gcf`.", + "Docker images will be stored in regional Artifact Registry repositories. By default, GCF will create and use repositories named `gcf-artifacts` in every region in which a function is deployed. But the repository to use can also be specified by the user using the `docker_repository` field." + ], + "type": "string" + }, "dockerRepository": { - "description": "Optional. User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'.", + "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'.", "type": "string" }, "entryPoint": { @@ -696,6 +714,10 @@ "description": "Required. The name of a CloudEvents 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`.", + "type": "string" + }, "value": { "description": "Required. The value for the attribute.", "type": "string" @@ -707,6 +729,10 @@ "description": "Describes EventTrigger, used to request events to be sent from another service.", "id": "EventTrigger", "properties": { + "channel": { + "description": "Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.", + "type": "string" + }, "eventFilters": { "description": "Criteria used to filter events.", "items": { @@ -776,7 +802,7 @@ "type": "object" }, "Function": { - "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations.", + "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulates function and trigger configurations.", "id": "Function", "properties": { "buildConfig": { @@ -788,7 +814,7 @@ "type": "string" }, "environment": { - "description": "Describe whether the function is gen1 or gen2.", + "description": "Describe whether the function is 1st Gen or 2nd Gen.", "enum": [ "ENVIRONMENT_UNSPECIFIED", "GEN_1", @@ -896,6 +922,153 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleCloudFunctionsV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "API version used to start the operation.", + "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`.", + "type": "boolean" + }, + "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" + }, + "requestResource": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The original request that started the operation.", + "type": "object" + }, + "stages": { + "description": "Mechanism for reporting in-progress stages", + "items": { + "$ref": "GoogleCloudFunctionsV2Stage" + }, + "type": "array" + }, + "statusDetail": { + "description": "Human-readable status of the operation, if any.", + "type": "string" + }, + "target": { + "description": "Server-defined resource path for the target of the operation.", + "type": "string" + }, + "verb": { + "description": "Name of the verb executed by the operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2Stage": { + "description": "Each Stage of the deployment process", + "id": "GoogleCloudFunctionsV2Stage", + "properties": { + "message": { + "description": "Message describing the Stage", + "type": "string" + }, + "name": { + "description": "Name of the Stage. This will be unique for each Stage.", + "enum": [ + "NAME_UNSPECIFIED", + "ARTIFACT_REGISTRY", + "BUILD", + "SERVICE", + "TRIGGER", + "SERVICE_ROLLBACK", + "TRIGGER_ROLLBACK" + ], + "enumDescriptions": [ + "Not specified. Invalid name.", + "Artifact Regsitry Stage", + "Build Stage", + "Service Stage", + "Trigger Stage", + "Service Rollback Stage", + "Trigger Rollback Stage" + ], + "type": "string" + }, + "resource": { + "description": "Resource of the Stage", + "type": "string" + }, + "resourceUri": { + "description": "Link to the current Stage resource", + "type": "string" + }, + "state": { + "description": "Current state of the Stage", + "enum": [ + "STATE_UNSPECIFIED", + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETE" + ], + "enumDescriptions": [ + "Not specified. Invalid state.", + "Stage has not started.", + "Stage is in progress.", + "Stage has completed." + ], + "type": "string" + }, + "stateMessages": { + "description": "State messages from the current Stage.", + "items": { + "$ref": "GoogleCloudFunctionsV2StateMessage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2StateMessage": { + "description": "Informational messages about the state of the Cloud Function or Operation.", + "id": "GoogleCloudFunctionsV2StateMessage", + "properties": { + "message": { + "description": "The message.", + "type": "string" + }, + "severity": { + "description": "Severity of the state message.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Not specified. Invalid severity.", + "ERROR-level severity.", + "WARNING-level severity.", + "INFO-level severity." + ], + "type": "string" + }, + "type": { + "description": "One-word CamelCase type of the state message.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1515,14 +1688,82 @@ }, "type": "object" }, + "SecretEnvVar": { + "description": "Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable.", + "id": "SecretEnvVar", + "properties": { + "key": { + "description": "Name of the environment variable.", + "type": "string" + }, + "projectId": { + "description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", + "type": "string" + }, + "secret": { + "description": "Name of the secret in secret manager (not the full resource name).", + "type": "string" + }, + "version": { + "description": "Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start.", + "type": "string" + } + }, + "type": "object" + }, + "SecretVersion": { + "description": "Configuration for a single version.", + "id": "SecretVersion", + "properties": { + "path": { + "description": "Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`.", + "type": "string" + }, + "version": { + "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" + } + }, + "type": "object" + }, + "SecretVolume": { + "description": "Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container.", + "id": "SecretVolume", + "properties": { + "mountPath": { + "description": "The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets", + "type": "string" + }, + "projectId": { + "description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", + "type": "string" + }, + "secret": { + "description": "Name of the secret in secret manager (not the full resource name).", + "type": "string" + }, + "versions": { + "description": "List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point.", + "items": { + "$ref": "SecretVersion" + }, + "type": "array" + } + }, + "type": "object" + }, "ServiceConfig": { - "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed).", + "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). Next tag: 23", "id": "ServiceConfig", "properties": { "allTrafficOnLatestRevision": { "description": "Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic.", "type": "boolean" }, + "availableCpu": { + "description": "The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: \"1\" indicates 1 vCPU", + "type": "string" + }, "availableMemory": { "description": "The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description.", "type": "string" @@ -1555,11 +1796,49 @@ "format": "int32", "type": "integer" }, + "maxInstanceRequestConcurrency": { + "description": "Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.", + "format": "int32", + "type": "integer" + }, "minInstanceCount": { "description": "The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case.", "format": "int32", "type": "integer" }, + "revision": { + "description": "Output only. The name of service revision.", + "readOnly": true, + "type": "string" + }, + "secretEnvironmentVariables": { + "description": "Secret environment variables configuration.", + "items": { + "$ref": "SecretEnvVar" + }, + "type": "array" + }, + "secretVolumes": { + "description": "Secret volumes configuration.", + "items": { + "$ref": "SecretVolume" + }, + "type": "array" + }, + "securityLevel": { + "description": "Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY.", + "enum": [ + "SECURITY_LEVEL_UNSPECIFIED", + "SECURE_ALWAYS", + "SECURE_OPTIONAL" + ], + "enumDescriptions": [ + "Unspecified.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly." + ], + "type": "string" + }, "service": { "description": "Output only. Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}`", "readOnly": true, @@ -1606,7 +1885,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1698,7 +1977,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json index f84592be58..3a0e454bca 100644 --- a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json @@ -119,7 +119,7 @@ ], "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).", + "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" }, @@ -309,7 +309,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -414,7 +414,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -442,7 +442,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/functions/[^/]+$", "required": true, @@ -571,11 +571,11 @@ } } }, - "revision": "20220224", + "revision": "20230119", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -631,7 +631,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -653,8 +653,26 @@ "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.", + "enum": [ + "DOCKER_REGISTRY_UNSPECIFIED", + "CONTAINER_REGISTRY", + "ARTIFACT_REGISTRY" + ], + "enumDescriptions": [ + "Unspecified.", + "Docker images will be stored in multi-regional Container Registry repositories named `gcf`.", + "Docker images will be stored in regional Artifact Registry repositories. By default, GCF will create and use repositories named `gcf-artifacts` in every region in which a function is deployed. But the repository to use can also be specified by the user using the `docker_repository` field." + ], + "type": "string" + }, "dockerRepository": { - "description": "Optional. User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'.", + "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'.", "type": "string" }, "entryPoint": { @@ -696,6 +714,10 @@ "description": "Required. The name of a CloudEvents 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`.", + "type": "string" + }, "value": { "description": "Required. The value for the attribute.", "type": "string" @@ -707,6 +729,10 @@ "description": "Describes EventTrigger, used to request events to be sent from another service.", "id": "EventTrigger", "properties": { + "channel": { + "description": "Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.", + "type": "string" + }, "eventFilters": { "description": "Criteria used to filter events.", "items": { @@ -776,7 +802,7 @@ "type": "object" }, "Function": { - "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations.", + "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulates function and trigger configurations.", "id": "Function", "properties": { "buildConfig": { @@ -788,7 +814,7 @@ "type": "string" }, "environment": { - "description": "Describe whether the function is gen1 or gen2.", + "description": "Describe whether the function is 1st Gen or 2nd Gen.", "enum": [ "ENVIRONMENT_UNSPECIFIED", "GEN_1", @@ -896,6 +922,153 @@ }, "type": "object" }, + "GoogleCloudFunctionsV2OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "GoogleCloudFunctionsV2OperationMetadata", + "properties": { + "apiVersion": { + "description": "API version used to start the operation.", + "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`.", + "type": "boolean" + }, + "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" + }, + "requestResource": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The original request that started the operation.", + "type": "object" + }, + "stages": { + "description": "Mechanism for reporting in-progress stages", + "items": { + "$ref": "GoogleCloudFunctionsV2Stage" + }, + "type": "array" + }, + "statusDetail": { + "description": "Human-readable status of the operation, if any.", + "type": "string" + }, + "target": { + "description": "Server-defined resource path for the target of the operation.", + "type": "string" + }, + "verb": { + "description": "Name of the verb executed by the operation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2Stage": { + "description": "Each Stage of the deployment process", + "id": "GoogleCloudFunctionsV2Stage", + "properties": { + "message": { + "description": "Message describing the Stage", + "type": "string" + }, + "name": { + "description": "Name of the Stage. This will be unique for each Stage.", + "enum": [ + "NAME_UNSPECIFIED", + "ARTIFACT_REGISTRY", + "BUILD", + "SERVICE", + "TRIGGER", + "SERVICE_ROLLBACK", + "TRIGGER_ROLLBACK" + ], + "enumDescriptions": [ + "Not specified. Invalid name.", + "Artifact Regsitry Stage", + "Build Stage", + "Service Stage", + "Trigger Stage", + "Service Rollback Stage", + "Trigger Rollback Stage" + ], + "type": "string" + }, + "resource": { + "description": "Resource of the Stage", + "type": "string" + }, + "resourceUri": { + "description": "Link to the current Stage resource", + "type": "string" + }, + "state": { + "description": "Current state of the Stage", + "enum": [ + "STATE_UNSPECIFIED", + "NOT_STARTED", + "IN_PROGRESS", + "COMPLETE" + ], + "enumDescriptions": [ + "Not specified. Invalid state.", + "Stage has not started.", + "Stage is in progress.", + "Stage has completed." + ], + "type": "string" + }, + "stateMessages": { + "description": "State messages from the current Stage.", + "items": { + "$ref": "GoogleCloudFunctionsV2StateMessage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudFunctionsV2StateMessage": { + "description": "Informational messages about the state of the Cloud Function or Operation.", + "id": "GoogleCloudFunctionsV2StateMessage", + "properties": { + "message": { + "description": "The message.", + "type": "string" + }, + "severity": { + "description": "Severity of the state message.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Not specified. Invalid severity.", + "ERROR-level severity.", + "WARNING-level severity.", + "INFO-level severity." + ], + "type": "string" + }, + "type": { + "description": "One-word CamelCase type of the state message.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudFunctionsV2alphaOperationMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudFunctionsV2alphaOperationMetadata", @@ -1515,14 +1688,82 @@ }, "type": "object" }, + "SecretEnvVar": { + "description": "Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable.", + "id": "SecretEnvVar", + "properties": { + "key": { + "description": "Name of the environment variable.", + "type": "string" + }, + "projectId": { + "description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", + "type": "string" + }, + "secret": { + "description": "Name of the secret in secret manager (not the full resource name).", + "type": "string" + }, + "version": { + "description": "Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start.", + "type": "string" + } + }, + "type": "object" + }, + "SecretVersion": { + "description": "Configuration for a single version.", + "id": "SecretVersion", + "properties": { + "path": { + "description": "Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`.", + "type": "string" + }, + "version": { + "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" + } + }, + "type": "object" + }, + "SecretVolume": { + "description": "Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container.", + "id": "SecretVolume", + "properties": { + "mountPath": { + "description": "The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets", + "type": "string" + }, + "projectId": { + "description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", + "type": "string" + }, + "secret": { + "description": "Name of the secret in secret manager (not the full resource name).", + "type": "string" + }, + "versions": { + "description": "List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point.", + "items": { + "$ref": "SecretVersion" + }, + "type": "array" + } + }, + "type": "object" + }, "ServiceConfig": { - "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed).", + "description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed). Next tag: 23", "id": "ServiceConfig", "properties": { "allTrafficOnLatestRevision": { "description": "Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic.", "type": "boolean" }, + "availableCpu": { + "description": "The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: \"1\" indicates 1 vCPU", + "type": "string" + }, "availableMemory": { "description": "The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description.", "type": "string" @@ -1555,11 +1796,49 @@ "format": "int32", "type": "integer" }, + "maxInstanceRequestConcurrency": { + "description": "Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.", + "format": "int32", + "type": "integer" + }, "minInstanceCount": { "description": "The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case.", "format": "int32", "type": "integer" }, + "revision": { + "description": "Output only. The name of service revision.", + "readOnly": true, + "type": "string" + }, + "secretEnvironmentVariables": { + "description": "Secret environment variables configuration.", + "items": { + "$ref": "SecretEnvVar" + }, + "type": "array" + }, + "secretVolumes": { + "description": "Secret volumes configuration.", + "items": { + "$ref": "SecretVolume" + }, + "type": "array" + }, + "securityLevel": { + "description": "Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY.", + "enum": [ + "SECURITY_LEVEL_UNSPECIFIED", + "SECURE_ALWAYS", + "SECURE_OPTIONAL" + ], + "enumDescriptions": [ + "Unspecified.", + "Requests for a URL that match this handler that do not use HTTPS are automatically redirected to the HTTPS URL with the same path. Query parameters are reserved for the redirect.", + "Both HTTP and HTTPS requests with URLs that match the handler succeed without redirects. The application can examine the request to determine which protocol was used and respond accordingly." + ], + "type": "string" + }, "service": { "description": "Output only. Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}`", "readOnly": true, @@ -1606,7 +1885,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1698,7 +1977,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudidentity/v1/cloudidentity-api.json b/etc/api/cloudidentity/v1/cloudidentity-api.json index f26df3f84f..323e12eb16 100644 --- a/etc/api/cloudidentity/v1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1/cloudidentity-api.json @@ -120,6 +120,151 @@ }, "protocol": "rest", "resources": { + "customers": { + "resources": { + "userinvitations": { + "methods": { + "cancel": { + "description": "Cancels a UserInvitation that was already sent.", + "flatPath": "v1/customers/{customersId}/userinvitations/{userinvitationsId}:cancel", + "httpMethod": "POST", + "id": "cloudidentity.customers.userinvitations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. `UserInvitation` name in the format `customers/{customer}/userinvitations/{user_email_address}`", + "location": "path", + "pattern": "^customers/[^/]+/userinvitations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelUserInvitationRequest" + }, + "response": { + "$ref": "Operation" + } + }, + "get": { + "description": "Retrieves a UserInvitation resource. **Note:** New consumer accounts with the customer's verified domain created within the previous 48 hours will not appear in the result. This delay also applies to newly-verified domains.", + "flatPath": "v1/customers/{customersId}/userinvitations/{userinvitationsId}", + "httpMethod": "GET", + "id": "cloudidentity.customers.userinvitations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. `UserInvitation` name in the format `customers/{customer}/userinvitations/{user_email_address}`", + "location": "path", + "pattern": "^customers/[^/]+/userinvitations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "UserInvitation" + } + }, + "isInvitableUser": { + "description": "Verifies whether a user account is eligible to receive a UserInvitation (is an unmanaged account). Eligibility is based on the following criteria: * the email address is a consumer account and it's the primary email address of the account, and * the domain of the email address matches an existing verified Google Workspace or Cloud Identity domain If both conditions are met, the user is eligible. **Note:** This method is not supported for Workspace Essentials customers.", + "flatPath": "v1/customers/{customersId}/userinvitations/{userinvitationsId}:isInvitableUser", + "httpMethod": "GET", + "id": "cloudidentity.customers.userinvitations.isInvitableUser", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. `UserInvitation` name in the format `customers/{customer}/userinvitations/{user_email_address}`", + "location": "path", + "pattern": "^customers/[^/]+/userinvitations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:isInvitableUser", + "response": { + "$ref": "IsInvitableUserResponse" + } + }, + "list": { + "description": "Retrieves a list of UserInvitation resources. **Note:** New consumer accounts with the customer's verified domain created within the previous 48 hours will not appear in the result. This delay also applies to newly-verified domains.", + "flatPath": "v1/customers/{customersId}/userinvitations", + "httpMethod": "GET", + "id": "cloudidentity.customers.userinvitations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A query string for filtering `UserInvitation` results by their current state, in the format: `\"state=='invited'\"`.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. The sort order of the list results. You can sort the results in descending order based on either email or last update timestamp but not both, using `order_by=\"email desc\"`. Currently, sorting is supported for `update_time asc`, `update_time desc`, `email asc`, and `email desc`. If not specified, results will be returned based on `email asc` order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of UserInvitation resources to return. If unspecified, at most 100 resources will be returned. The maximum value is 200; values above 200 will be set to 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListUserInvitations` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBooks` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The customer ID of the Google Workspace or Cloud Identity account the UserInvitation resources are associated with.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/userinvitations", + "response": { + "$ref": "ListUserInvitationsResponse" + } + }, + "send": { + "description": "Sends a UserInvitation to email. If the `UserInvitation` does not exist for this request and it is a valid request, the request creates a `UserInvitation`. **Note:** The `get` and `list` methods have a 48-hour delay where newly-created consumer accounts will not appear in the results. You can still send a `UserInvitation` to those accounts if you know the unmanaged email address and IsInvitableUser==True.", + "flatPath": "v1/customers/{customersId}/userinvitations/{userinvitationsId}:send", + "httpMethod": "POST", + "id": "cloudidentity.customers.userinvitations.send", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. `UserInvitation` name in the format `customers/{customer}/userinvitations/{user_email_address}`", + "location": "path", + "pattern": "^customers/[^/]+/userinvitations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:send", + "request": { + "$ref": "SendUserInvitationRequest" + }, + "response": { + "$ref": "Operation" + } + } + } + } + } + }, "devices": { "methods": { "cancelWipe": { @@ -869,7 +1014,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent resource under which to list all `Group` resources. Must be of the form `identitysources/{identity_source}` for external- identity-mapped groups or `customers/{customer}` for Google Groups. The `customer` must begin with \"C\" (for example, 'C046psxkn').", + "description": "Required. The parent resource under which to list all `Group` resources. Must be of the form `identitysources/{identity_source}` for external- identity-mapped groups or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793)", "location": "query", "type": "string" }, @@ -981,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}' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels`). The `customer` must begin with \"C\" (for example, 'C046psxkn').", + "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)", "location": "query", "type": "string" }, @@ -1399,11 +1544,430 @@ } } } + }, + "inboundSamlSsoProfiles": { + "methods": { + "create": { + "description": "Creates an InboundSamlSsoProfile for a customer.", + "flatPath": "v1/inboundSamlSsoProfiles", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1/inboundSamlSsoProfiles", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to get. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InboundSamlSsoProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists InboundSamlSsoProfiles for a customer.", + "flatPath": "v1/inboundSamlSsoProfiles", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of InboundSamlSsoProfiles to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100. Requests with page_size greater than that will be silently interpreted as having this maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSamlSsoProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSamlSsoProfiles` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/inboundSamlSsoProfiles", + "response": { + "$ref": "ListInboundSamlSsoProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSamlSsoProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "idpCredentials": { + "methods": { + "add": { + "description": "Adds an IdpCredential. Up to 2 credentials are allowed.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials:add", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The InboundSamlSsoProfile that owns the IdpCredential. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/idpCredentials:add", + "request": { + "$ref": "AddIdpCredentialRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an IdpCredential.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an IdpCredential.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to retrieve. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "IdpCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of IdpCredentials in an InboundSamlSsoProfile.", + "flatPath": "v1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of `IdpCredential`s to return. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListIdpCredentials` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListIdpCredentials` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of `IdpCredential`s. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/idpCredentials", + "response": { + "$ref": "ListIdpCredentialsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "inboundSsoAssignments": { + "methods": { + "create": { + "description": "Creates an InboundSsoAssignment for users and devices in a `Customer` under a given `Group` or `OrgUnit`.", + "flatPath": "v1/inboundSsoAssignments", + "httpMethod": "POST", + "id": "cloudidentity.inboundSsoAssignments.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1/inboundSsoAssignments", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSsoAssignment. To disable SSO, Create (or Update) an assignment that has `sso_mode` == `SSO_OFF`.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSsoAssignments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to delete. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSsoAssignment.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to fetch. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InboundSsoAssignment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the InboundSsoAssignments for a `Customer`.", + "flatPath": "v1/inboundSsoAssignments", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of assignments to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100, though requests with page_size greater than that will be silently interpreted as having this maximum value. This may increase in the futue.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSsoAssignments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSsoAssignments` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/inboundSsoAssignments", + "response": { + "$ref": "ListInboundSsoAssignmentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSsoAssignment. The body of this request is the `inbound_sso_assignment` field and the `update_mask` is relative to that. For example: a PATCH to `/v1/inboundSsoAssignments/0abcdefg1234567&update_mask=rank` with a body of `{ \"rank\": 1 }` moves that (presumably group-targeted) SSO assignment to the highest priority and shifts any other group-targeted assignments down in priority.", + "flatPath": "v1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSsoAssignments.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { + "AddIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.AddIdpCredential.", + "id": "AddIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "AddIdpCredentialRequest": { + "description": "The request for creating an IdpCredential with its associated payload. An InboundSamlSsoProfile can own up to 2 credentials.", + "id": "AddIdpCredentialRequest", + "properties": { + "pemData": { + "description": "PEM encoded x509 certificate containing the public key for verifying IdP signatures.", + "type": "string" + } + }, + "type": "object" + }, + "CancelUserInvitationRequest": { + "description": "Request to cancel sent invitation for target email in UserInvitation.", + "id": "CancelUserInvitationRequest", + "properties": {}, + "type": "object" + }, "CheckTransitiveMembershipResponse": { "description": "The response message for MembershipsService.CheckTransitiveMembership.", "id": "CheckTransitiveMembershipResponse", @@ -1421,6 +1985,18 @@ "properties": {}, "type": "object" }, + "CreateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.CreateInboundSamlSsoProfile.", + "id": "CreateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "CreateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.CreateInboundSsoAssignment.", + "id": "CreateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "CreateMembershipMetadata": { "description": "Metadata for CreateMembership LRO.", "id": "CreateMembershipMetadata", @@ -1433,12 +2009,42 @@ "properties": {}, "type": "object" }, + "DeleteIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteIdpCredential.", + "id": "DeleteIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteInboundSamlSsoProfile.", + "id": "DeleteInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.DeleteInboundSsoAssignment.", + "id": "DeleteInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "DeleteMembershipMetadata": { "description": "Metadata for DeleteMembership LRO.", "id": "DeleteMembershipMetadata", "properties": {}, "type": "object" }, + "DsaPublicKeyInfo": { + "description": "Information of a DSA public key.", + "id": "DsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of parameter P).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "DynamicGroupMetadata": { "description": "Dynamic group metadata like queries and status.", "id": "DynamicGroupMetadata", @@ -1915,6 +2521,10 @@ "readOnly": true, "type": "string" }, + "deviceId": { + "description": "Unique identifier for the device.", + "type": "string" + }, "deviceType": { "description": "Output only. Type of device.", "enum": [ @@ -2242,7 +2852,7 @@ "id": "GoogleAppsCloudidentityDevicesV1LookupSelfDeviceUsersResponse", "properties": { "customer": { - "description": "The obfuscated customer Id that may be passed back to other Devices API methods such as List, Get, etc.", + "description": "The customer resource name that may be passed back to other Devices API methods such as List, Get, etc.", "type": "string" }, "names": { @@ -2376,7 +2986,7 @@ "type": "string" }, "parent": { - "description": "Required. Immutable. The resource name of the entity under which this `Group` resides in the Cloud Identity resource hierarchy. Must be of the form `identitysources/{identity_source}` for external- identity-mapped groups or `customers/{customer}` for Google Groups. The `customer` must begin with \"C\" (for example, 'C046psxkn').", + "description": "Required. Immutable. The resource name of the entity under which this `Group` resides in the Cloud Identity resource hierarchy. Must be of the form `identitysources/{identity_source}` for external [identity-mapped groups](https://support.google.com/a/answer/9039510) or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793)", "type": "string" }, "updateTime": { @@ -2437,6 +3047,126 @@ }, "type": "object" }, + "IdpCredential": { + "description": "Credential for verifying signatures produced by the Identity Provider.", + "id": "IdpCredential", + "properties": { + "dsaKeyInfo": { + "$ref": "DsaPublicKeyInfo", + "description": "Output only. Information of a DSA public key.", + "readOnly": true + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the credential.", + "readOnly": true, + "type": "string" + }, + "rsaKeyInfo": { + "$ref": "RsaPublicKeyInfo", + "description": "Output only. Information of a RSA public key.", + "readOnly": true + }, + "updateTime": { + "description": "Output only. Time when the `IdpCredential` was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InboundSamlSsoProfile": { + "description": "A [SAML 2.0](https://www.oasis-open.org/standards#samlv2.0) federation between a Google enterprise customer and a SAML identity provider.", + "id": "InboundSamlSsoProfile", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "displayName": { + "description": "Human-readable name of the SAML SSO profile.", + "type": "string" + }, + "idpConfig": { + "$ref": "SamlIdpConfig", + "description": "SAML identity provider configuration." + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "readOnly": true, + "type": "string" + }, + "spConfig": { + "$ref": "SamlSpConfig", + "description": "SAML service provider configuration for this SAML SSO profile. These are the service provider details provided by Google that should be configured on the corresponding identity provider." + } + }, + "type": "object" + }, + "InboundSsoAssignment": { + "description": "Targets with \"set\" SSO assignments and their respective assignments.", + "id": "InboundSsoAssignment", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "readOnly": true, + "type": "string" + }, + "rank": { + "description": "Must be zero (which is the default value so it can be omitted) for assignments with `target_org_unit` set and must be greater-than-or-equal-to one for assignments with `target_group` set.", + "format": "int32", + "type": "integer" + }, + "samlSsoInfo": { + "$ref": "SamlSsoInfo", + "description": "SAML SSO details. Must be set if and only if `sso_mode` is set to `SAML_SSO`." + }, + "signInBehavior": { + "$ref": "SignInBehavior", + "description": "Assertions about users assigned to an IdP will always be accepted from that IdP. This controls whether/when Google should redirect a user to the IdP. Unset (defaults) is the recommended configuration." + }, + "ssoMode": { + "description": "Inbound SSO behavior.", + "enum": [ + "SSO_MODE_UNSPECIFIED", + "SSO_OFF", + "SAML_SSO", + "DOMAIN_WIDE_SAML_IF_ENABLED" + ], + "enumDescriptions": [ + "Not allowed.", + "Disable SSO for the targeted users.", + "Use an external SAML Identity Provider for SSO for the targeted users.", + "Use the domain-wide SAML Identity Provider for the targeted users if one is configured; otherwise, this is equivalent to `SSO_OFF`. Note that this will also be equivalent to `SSO_OFF` if/when support for domain-wide SAML is removed. Google may disallow this mode at that point and existing assignments with this mode may be automatically changed to `SSO_OFF`." + ], + "type": "string" + }, + "targetGroup": { + "description": "Immutable. Must be of the form `groups/{group}`.", + "type": "string" + }, + "targetOrgUnit": { + "description": "Immutable. Must be of the form `orgUnits/{org_unit}`.", + "type": "string" + } + }, + "type": "object" + }, + "IsInvitableUserResponse": { + "description": "Response for IsInvitableUser RPC.", + "id": "IsInvitableUserResponse", + "properties": { + "isInvitableUser": { + "description": "Returns true if the email address is invitable.", + "type": "boolean" + } + }, + "type": "object" + }, "ListGroupsResponse": { "description": "Response message for ListGroups operation.", "id": "ListGroupsResponse", @@ -2455,6 +3185,60 @@ }, "type": "object" }, + "ListIdpCredentialsResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListIdpCredentials method.", + "id": "ListIdpCredentialsResponse", + "properties": { + "idpCredentials": { + "description": "The IdpCredentials from the specified InboundSamlSsoProfile.", + "items": { + "$ref": "IdpCredential" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSamlSsoProfilesResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListInboundSamlSsoProfiles method.", + "id": "ListInboundSamlSsoProfilesResponse", + "properties": { + "inboundSamlSsoProfiles": { + "description": "List of InboundSamlSsoProfiles.", + "items": { + "$ref": "InboundSamlSsoProfile" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSsoAssignmentsResponse": { + "description": "Response of the InboundSsoAssignmentsService.ListInboundSsoAssignments method.", + "id": "ListInboundSsoAssignmentsResponse", + "properties": { + "inboundSsoAssignments": { + "description": "The assignments.", + "items": { + "$ref": "InboundSsoAssignment" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "ListMembershipsResponse": { "description": "The response message for MembershipsService.ListMemberships.", "id": "ListMembershipsResponse", @@ -2473,6 +3257,24 @@ }, "type": "object" }, + "ListUserInvitationsResponse": { + "description": "Response message for UserInvitation listing request.", + "id": "ListUserInvitationsResponse", + "properties": { + "nextPageToken": { + "description": "The token for the next page. If not empty, indicates that there may be more `UserInvitation` resources that match the listing request; this value can be used in a subsequent ListUserInvitationsRequest to get continued results with the current list call.", + "type": "string" + }, + "userInvitations": { + "description": "The list of UserInvitation resources.", + "items": { + "$ref": "UserInvitation" + }, + "type": "array" + } + }, + "type": "object" + }, "LookupGroupNameResponse": { "description": "The response message for GroupsService.LookupGroupName.", "id": "LookupGroupNameResponse", @@ -2781,6 +3583,69 @@ }, "type": "object" }, + "RsaPublicKeyInfo": { + "description": "Information of a RSA public key.", + "id": "RsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of the modulus).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SamlIdpConfig": { + "description": "SAML IDP (identity provider) configuration.", + "id": "SamlIdpConfig", + "properties": { + "changePasswordUri": { + "description": "The **Change Password URL** of the identity provider. Users will be sent to this URL when changing their passwords at `myaccount.google.com`. This takes precedence over the change password URL configured at customer-level. Must use `HTTPS`.", + "type": "string" + }, + "entityId": { + "description": "Required. The SAML **Entity ID** of the identity provider.", + "type": "string" + }, + "logoutRedirectUri": { + "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is currently not supported. Must use `HTTPS`.", + "type": "string" + }, + "singleSignOnServiceUri": { + "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently assumed to accept the `HTTP-Redirect` binding.", + "type": "string" + } + }, + "type": "object" + }, + "SamlSpConfig": { + "description": "SAML SP (service provider) configuration.", + "id": "SamlSpConfig", + "properties": { + "assertionConsumerServiceUri": { + "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Currently assumed to accept response messages via the `HTTP-POST` binding.", + "readOnly": true, + "type": "string" + }, + "entityId": { + "description": "Output only. The SAML **Entity ID** for this service provider.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SamlSsoInfo": { + "description": "Details that are applicable when `sso_mode` == `SAML_SSO`.", + "id": "SamlSsoInfo", + "properties": { + "inboundSamlSsoProfile": { + "description": "Required. Name of the `InboundSamlSsoProfile` to use. Must be of the form `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. ", + "type": "string" + } + }, + "type": "object" + }, "SearchGroupsResponse": { "description": "The response message for GroupsService.SearchGroups.", "id": "SearchGroupsResponse", @@ -2851,6 +3716,31 @@ }, "type": "object" }, + "SendUserInvitationRequest": { + "description": "A request to send email for inviting target user corresponding to the UserInvitation.", + "id": "SendUserInvitationRequest", + "properties": {}, + "type": "object" + }, + "SignInBehavior": { + "description": "Controls sign-in behavior.", + "id": "SignInBehavior", + "properties": { + "redirectCondition": { + "description": "When to redirect sign-ins to the IdP.", + "enum": [ + "REDIRECT_CONDITION_UNSPECIFIED", + "NEVER" + ], + "enumDescriptions": [ + "Default and means \"always\"", + "Sign-in flows where the user is prompted for their identity will not redirect to the IdP (so the user will most likely be prompted by Google for a password), but special flows like IdP-initiated SAML and sign-in following automatic redirection to the IdP by domain-specific service URLs will accept the IdP's assertion of the user's identity." + ], + "type": "string" + } + }, + "type": "object" + }, "Status": { "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "id": "Status", @@ -2895,6 +3785,18 @@ "properties": {}, "type": "object" }, + "UpdateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.UpdateInboundSamlSsoProfile.", + "id": "UpdateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "UpdateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.UpdateInboundSsoAssignment.", + "id": "UpdateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "UpdateMembershipMetadata": { "description": "Metadata for UpdateMembership LRO.", "id": "UpdateMembershipMetadata", @@ -2916,6 +3818,45 @@ } }, "type": "object" + }, + "UserInvitation": { + "description": "The `UserInvitation` resource represents an email that can be sent to an unmanaged user account inviting them to join the customer's Google Workspace or Cloud Identity account. An unmanaged account shares an email address domain with the Google Workspace or Cloud Identity account but is not managed by it yet. If the user accepts the `UserInvitation`, the user account will become managed.", + "id": "UserInvitation", + "properties": { + "mailsSentCount": { + "description": "Number of invitation emails sent to the user.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Shall be of the form `customers/{customer}/userinvitations/{user_email_address}`.", + "type": "string" + }, + "state": { + "description": "State of the `UserInvitation`.", + "enum": [ + "STATE_UNSPECIFIED", + "NOT_YET_SENT", + "INVITED", + "ACCEPTED", + "DECLINED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The `UserInvitation` has been created and is ready for sending as an email.", + "The user has been invited by email.", + "The user has accepted the invitation and is part of the organization.", + "The user declined the invitation." + ], + "type": "string" + }, + "updateTime": { + "description": "Time when the `UserInvitation` was last updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json index 822a920c53..7da1b6e438 100644 --- a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json @@ -322,6 +322,11 @@ "name" ], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Device in format: `devices/{device_id}`, where device_id is the unique ID assigned to the Device.", "location": "path", @@ -347,6 +352,11 @@ "name" ], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Customer in format: `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Device in format: `devices/{device_id}`, where device_id is the unique ID assigned to the Device.", "location": "path", @@ -371,6 +381,11 @@ "id": "cloudidentity.devices.list", "parameterOrder": [], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer.", + "location": "query", + "type": "string" + }, "filter": { "description": "Optional. Additional restrictions when fetching list of devices. For a list of search fields, refer to [Mobile device search fields](https://developers.google.com/admin-sdk/directory/v1/search-operators). Multiple search fields are separated by the space character.", "location": "query", @@ -542,6 +557,11 @@ "name" ], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Device in format: `devices/{device_id}/deviceUsers/{device_user_id}`, where device_id is the unique ID assigned to the Device, and device_user_id is the unique ID assigned to the User.", "location": "path", @@ -567,6 +587,11 @@ "name" ], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Device in format: `devices/{device_id}/deviceUsers/{device_user_id}`, where device_id is the unique ID assigned to the Device, and device_user_id is the unique ID assigned to the User.", "location": "path", @@ -593,6 +618,11 @@ "parent" ], "parameters": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "location": "query", + "type": "string" + }, "filter": { "description": "Optional. Additional restrictions when fetching list of devices. For a list of search fields, refer to [Mobile device search fields](https://developers.google.com/admin-sdk/directory/v1/search-operators). Multiple search fields are separated by the space character.", "location": "query", @@ -932,7 +962,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent resource under which to list all `Group` resources. Must be of the form `identitysources/{identity_source_id}` for external- identity-mapped groups or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn').", + "description": "Required. The parent resource under which to list all `Group` resources. Must be of the form `identitysources/{identity_source_id}` for external- identity-mapped groups or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793)", "location": "query", "type": "string" }, @@ -1032,6 +1062,11 @@ "id": "cloudidentity.groups.search", "parameterOrder": [], "parameters": { + "orderBy": { + "description": "The ordering of groups for the display name or email in the search groups 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 name: order_by=\"display_name\" Sort by the descending group key email: order_by=\"group_key desc\"", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of results to return. Note that the number of results returned may be less than this value even if there are more available results. To fetch all results, clients must continue calling this method repeatedly until the response no longer contains a `next_page_token`. If unspecified, defaults to 200 for `GroupView.BASIC` and to 50 for `GroupView.FULL`. Must not be greater than 1000 for `GroupView.BASIC` or 500 for `GroupView.FULL`.", "format": "int32", @@ -1044,7 +1079,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').", + "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'`", "location": "query", "type": "string" }, @@ -1459,6 +1494,402 @@ } } }, + "inboundSamlSsoProfiles": { + "methods": { + "create": { + "description": "Creates an InboundSamlSsoProfile for a customer.", + "flatPath": "v1beta1/inboundSamlSsoProfiles", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1beta1/inboundSamlSsoProfiles", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSamlSsoProfile.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSamlSsoProfile.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSamlSsoProfile to get. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "InboundSamlSsoProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists InboundSamlSsoProfiles for a customer.", + "flatPath": "v1beta1/inboundSamlSsoProfiles", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A [Common Expression Language](https://github.com/google/cel-spec) expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==\"customers/C0123abc\"`. Omitting the filter or specifying a filter of `customer==\"customers/my_customer\"` will return the profiles for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of InboundSamlSsoProfiles to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100. Requests with page_size greater than that will be silently interpreted as having this maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSamlSsoProfiles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSamlSsoProfiles` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/inboundSamlSsoProfiles", + "response": { + "$ref": "ListInboundSamlSsoProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSamlSsoProfile.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSamlSsoProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "InboundSamlSsoProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "idpCredentials": { + "methods": { + "add": { + "description": "Adds an IdpCredential. Up to 2 credentials are allowed.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials:add", + "httpMethod": "POST", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.add", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The InboundSamlSsoProfile that owns the IdpCredential. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/idpCredentials:add", + "request": { + "$ref": "AddIdpCredentialRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an IdpCredential.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to delete. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an IdpCredential.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials/{idpCredentialsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the IdpCredential to retrieve. Format: `inboundSamlSsoProfiles/{sso_profile_id}/idpCredentials/{idp_credential_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+/idpCredentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "IdpCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of IdpCredentials in an InboundSamlSsoProfile.", + "flatPath": "v1beta1/inboundSamlSsoProfiles/{inboundSamlSsoProfilesId}/idpCredentials", + "httpMethod": "GET", + "id": "cloudidentity.inboundSamlSsoProfiles.idpCredentials.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of `IdpCredential`s to return. The service may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListIdpCredentials` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListIdpCredentials` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of `IdpCredential`s. Format: `inboundSamlSsoProfiles/{sso_profile_id}`", + "location": "path", + "pattern": "^inboundSamlSsoProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/idpCredentials", + "response": { + "$ref": "ListIdpCredentialsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "inboundSsoAssignments": { + "methods": { + "create": { + "description": "Creates an InboundSsoAssignment for users and devices in a `Customer` under a given `Group` or `OrgUnit`.", + "flatPath": "v1beta1/inboundSsoAssignments", + "httpMethod": "POST", + "id": "cloudidentity.inboundSsoAssignments.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1beta1/inboundSsoAssignments", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an InboundSsoAssignment. To disable SSO, Create (or Update) an assignment that has `sso_mode` == `SSO_OFF`.", + "flatPath": "v1beta1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "DELETE", + "id": "cloudidentity.inboundSsoAssignments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to delete. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an InboundSsoAssignment.", + "flatPath": "v1beta1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The [resource name](https://cloud.google.com/apis/design/resource_names) of the InboundSsoAssignment to fetch. Format: `inboundSsoAssignments/{assignment}`", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "InboundSsoAssignment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the InboundSsoAssignments for a `Customer`.", + "flatPath": "v1beta1/inboundSsoAssignments", + "httpMethod": "GET", + "id": "cloudidentity.inboundSsoAssignments.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "A CEL expression to filter the results. The only currently-supported filter is filtering by customer. For example: `customer==customers/C0123abc`. Omitting the filter or specifying a filter of `customer==customers/my_customer` will return the assignments for the customer that the caller (authenticated user) belongs to.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of assignments to return. The service may return fewer than this value. If omitted (or defaulted to zero) the server will use a sensible default. This default may change over time. The maximum allowed value is 100, though requests with page_size greater than that will be silently interpreted as having this maximum value. This may increase in the futue.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListInboundSsoAssignments` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListInboundSsoAssignments` must match the call that provided the page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/inboundSsoAssignments", + "response": { + "$ref": "ListInboundSsoAssignmentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an InboundSsoAssignment. The body of this request is the `inbound_sso_assignment` field and the `update_mask` is relative to that. For example: a PATCH to `/v1beta1/inboundSsoAssignments/0abcdefg1234567&update_mask=rank` with a body of `{ \"rank\": 1 }` moves that (presumably group-targeted) SSO assignment to the highest priority and shifts any other group-targeted assignments down in priority.", + "flatPath": "v1beta1/inboundSsoAssignments/{inboundSsoAssignmentsId}", + "httpMethod": "PATCH", + "id": "cloudidentity.inboundSsoAssignments.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "location": "path", + "pattern": "^inboundSsoAssignments/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "InboundSsoAssignment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "orgUnits": { "resources": { "memberships": { @@ -1536,9 +1967,26 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { + "AddIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.AddIdpCredential.", + "id": "AddIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "AddIdpCredentialRequest": { + "description": "The request for creating an IdpCredential with its associated payload. An InboundSamlSsoProfile can own up to 2 credentials.", + "id": "AddIdpCredentialRequest", + "properties": { + "pemData": { + "description": "PEM encoded x509 certificate containing the public key for verifying IdP signatures.", + "type": "string" + } + }, + "type": "object" + }, "AndroidAttributes": { "description": "Resource representing the Android specific attributes of a Device.", "id": "AndroidAttributes", @@ -1577,7 +2025,12 @@ "ApproveDeviceUserRequest": { "description": "Request message for approving the device to access user data.", "id": "ApproveDeviceUserRequest", - "properties": {}, + "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + } + }, "type": "object" }, "ApproveDeviceUserResponse": { @@ -1594,7 +2047,12 @@ "BlockDeviceUserRequest": { "description": "Request message for blocking account on device.", "id": "BlockDeviceUserRequest", - "properties": {}, + "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + } + }, "type": "object" }, "BlockDeviceUserResponse": { @@ -1617,7 +2075,12 @@ "CancelWipeDeviceRequest": { "description": "Request message for cancelling an unfinished device wipe.", "id": "CancelWipeDeviceRequest", - "properties": {}, + "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + } + }, "type": "object" }, "CancelWipeDeviceResponse": { @@ -1634,7 +2097,12 @@ "CancelWipeDeviceUserRequest": { "description": "Request message for cancelling an unfinished user account wipe.", "id": "CancelWipeDeviceUserRequest", - "properties": {}, + "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + } + }, "type": "object" }, "CancelWipeDeviceUserResponse": { @@ -1852,6 +2320,10 @@ "description": "Request message for creating a Company Owned device.", "id": "CreateDeviceRequest", "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + }, "device": { "$ref": "Device", "description": "Required. The device to be created. The name field within this device is ignored in the create method. A new name is created by the method, and returned within the response. Only the fields `device_type`, `serial_number` and `asset_tag` (if present) are used to create the device. All other fields are ignored. The `device_type` and `serial_number` fields are required." @@ -1859,6 +2331,18 @@ }, "type": "object" }, + "CreateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.CreateInboundSamlSsoProfile.", + "id": "CreateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "CreateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.CreateInboundSsoAssignment.", + "id": "CreateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "CustomAttributeValue": { "description": "Additional custom attribute values may be one of these types", "id": "CustomAttributeValue", @@ -1879,6 +2363,24 @@ }, "type": "object" }, + "DeleteIdpCredentialOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteIdpCredential.", + "id": "DeleteIdpCredentialOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.DeleteInboundSamlSsoProfile.", + "id": "DeleteInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "DeleteInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.DeleteInboundSsoAssignment.", + "id": "DeleteInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "Device": { "description": "A Device within the Cloud Identity Devices API. Represents a Device known to Google Cloud, independent of the device ownership, type, and whether it is assigned or in use by a user.", "id": "Device", @@ -1912,6 +2414,29 @@ "readOnly": true, "type": "string" }, + "clientTypes": { + "description": "List of the clients the device is reporting to.", + "items": { + "enum": [ + "CLIENT_TYPE_UNSPECIFIED", + "DRIVE_FS", + "FUNDAMENTAL", + "ENDPOINT_VERIFICATION", + "WINDOWS_ADVANCED", + "GOOGLE_CREDENTIALS_PROVIDER_FOR_WINDOWS" + ], + "enumDescriptions": [ + "Default value", + "Managed by DriveFS", + "Management type for every secure device", + "Managed by Endpoint Verification", + "Managed by Windows", + "Managed by Google credential provider for windows" + ], + "type": "string" + }, + "type": "array" + }, "compromisedState": { "description": "Output only. Represents whether the Device is compromised.", "enum": [ @@ -1933,6 +2458,10 @@ "readOnly": true, "type": "string" }, + "deviceId": { + "description": "Unique identifier for the device.", + "type": "string" + }, "deviceType": { "description": "Output only. Type of device.", "enum": [ @@ -1990,6 +2519,10 @@ "description": "Output only. Attributes specific to Endpoint Verification devices.", "readOnly": true }, + "hostname": { + "description": "Host name of the device.", + "type": "string" + }, "imei": { "description": "Output only. IMEI number of device if GSM device; empty otherwise.", "readOnly": true, @@ -2200,6 +2733,18 @@ }, "type": "object" }, + "DsaPublicKeyInfo": { + "description": "Information of a DSA public key.", + "id": "DsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of parameter P).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "DynamicGroupMetadata": { "description": "Dynamic group metadata like queries and status.", "id": "DynamicGroupMetadata", @@ -2310,21 +2855,6 @@ }, "type": "object" }, - "FirstAdminInvitationInfo": { - "description": "Message containing first admin invitation info for customers", - "id": "FirstAdminInvitationInfo", - "properties": { - "isFirstAdmin": { - "description": "Optional. To enable First Admin Invitation for Domained Customer", - "type": "boolean" - }, - "primaryDomain": { - "description": "Optional. Domain information of first admin invited", - "type": "string" - } - }, - "type": "object" - }, "GetMembershipGraphResponse": { "description": "The response message for MembershipsService.GetMembershipGraph.", "id": "GetMembershipGraphResponse", @@ -2654,6 +3184,10 @@ "readOnly": true, "type": "string" }, + "deviceId": { + "description": "Unique identifier for the device.", + "type": "string" + }, "deviceType": { "description": "Output only. Type of device.", "enum": [ @@ -2978,13 +3512,6 @@ "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": "Additional entity key aliases for a Group.", - "items": { - "$ref": "EntityKey" - }, - "type": "array" - }, "createTime": { "description": "Output only. The time when the `Group` was created.", "format": "google-datetime", @@ -3020,7 +3547,7 @@ "type": "string" }, "parent": { - "description": "Required. Immutable. The resource name of the entity under which this `Group` resides in the Cloud Identity resource hierarchy. Must be of the form `identitysources/{identity_source_id}` for external- identity-mapped groups or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn').", + "description": "Required. Immutable. The resource name of the entity under which this `Group` resides in the Cloud Identity resource hierarchy. Must be of the form `identitysources/{identity_source}` for external [identity-mapped groups](https://support.google.com/a/answer/9039510) or `customers/{customer_id}` for Google Groups. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793)", "type": "string" }, "posixGroups": { @@ -3088,6 +3615,115 @@ }, "type": "object" }, + "IdpCredential": { + "description": "Credential for verifying signatures produced by the Identity Provider.", + "id": "IdpCredential", + "properties": { + "dsaKeyInfo": { + "$ref": "DsaPublicKeyInfo", + "description": "Output only. Information of a DSA public key.", + "readOnly": true + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the credential.", + "readOnly": true, + "type": "string" + }, + "rsaKeyInfo": { + "$ref": "RsaPublicKeyInfo", + "description": "Output only. Information of a RSA public key.", + "readOnly": true + }, + "updateTime": { + "description": "Output only. Time when the `IdpCredential` was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InboundSamlSsoProfile": { + "description": "A [SAML 2.0](https://www.oasis-open.org/standards#samlv2.0) federation between a Google enterprise customer and a SAML identity provider.", + "id": "InboundSamlSsoProfile", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "displayName": { + "description": "Human-readable name of the SAML SSO profile.", + "type": "string" + }, + "idpConfig": { + "$ref": "SamlIdpConfig", + "description": "SAML identity provider configuration." + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the SAML SSO profile.", + "readOnly": true, + "type": "string" + }, + "spConfig": { + "$ref": "SamlSpConfig", + "description": "SAML service provider configuration for this SAML SSO profile. These are the service provider details provided by Google that should be configured on the corresponding identity provider." + } + }, + "type": "object" + }, + "InboundSsoAssignment": { + "description": "Targets with \"set\" SSO assignments and their respective assignments.", + "id": "InboundSsoAssignment", + "properties": { + "customer": { + "description": "Immutable. The customer. For example: `customers/C0123abc`.", + "type": "string" + }, + "name": { + "description": "Output only. [Resource name](https://cloud.google.com/apis/design/resource_names) of the Inbound SSO Assignment.", + "readOnly": true, + "type": "string" + }, + "rank": { + "description": "Must be zero (which is the default value so it can be omitted) for assignments with `target_org_unit` set and must be greater-than-or-equal-to one for assignments with `target_group` set.", + "format": "int32", + "type": "integer" + }, + "samlSsoInfo": { + "$ref": "SamlSsoInfo", + "description": "SAML SSO details. Must be set if and only if `sso_mode` is set to `SAML_SSO`." + }, + "signInBehavior": { + "$ref": "SignInBehavior", + "description": "Assertions about users assigned to an IdP will always be accepted from that IdP. This controls whether/when Google should redirect a user to the IdP. Unset (defaults) is the recommended configuration." + }, + "ssoMode": { + "description": "Inbound SSO behavior.", + "enum": [ + "SSO_MODE_UNSPECIFIED", + "SSO_OFF", + "SAML_SSO", + "DOMAIN_WIDE_SAML_IF_ENABLED" + ], + "enumDescriptions": [ + "Not allowed.", + "Disable SSO for the targeted users.", + "Use an external SAML Identity Provider for SSO for the targeted users.", + "Use the domain-wide SAML Identity Provider for the targeted users if one is configured; otherwise, this is equivalent to `SSO_OFF`. Note that this will also be equivalent to `SSO_OFF` if/when support for domain-wide SAML is removed. Google may disallow this mode at that point and existing assignments with this mode may be automatically changed to `SSO_OFF`." + ], + "type": "string" + }, + "targetGroup": { + "description": "Immutable. Must be of the form `groups/{group}`.", + "type": "string" + }, + "targetOrgUnit": { + "description": "Immutable. Must be of the form `orgUnits/{org_unit}`.", + "type": "string" + } + }, + "type": "object" + }, "IsInvitableUserResponse": { "description": "Response for IsInvitableUser RPC.", "id": "IsInvitableUserResponse", @@ -3171,6 +3807,60 @@ }, "type": "object" }, + "ListIdpCredentialsResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListIdpCredentials method.", + "id": "ListIdpCredentialsResponse", + "properties": { + "idpCredentials": { + "description": "The IdpCredentials from the specified InboundSamlSsoProfile.", + "items": { + "$ref": "IdpCredential" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSamlSsoProfilesResponse": { + "description": "Response of the InboundSamlSsoProfilesService.ListInboundSamlSsoProfiles method.", + "id": "ListInboundSamlSsoProfilesResponse", + "properties": { + "inboundSamlSsoProfiles": { + "description": "List of InboundSamlSsoProfiles.", + "items": { + "$ref": "InboundSamlSsoProfile" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "ListInboundSsoAssignmentsResponse": { + "description": "Response of the InboundSsoAssignmentsService.ListInboundSsoAssignments method.", + "id": "ListInboundSsoAssignmentsResponse", + "properties": { + "inboundSsoAssignments": { + "description": "The assignments.", + "items": { + "$ref": "InboundSsoAssignment" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, "ListMembershipsResponse": { "description": "The response message for MembershipsService.ListMemberships.", "id": "ListMembershipsResponse", @@ -3253,7 +3943,7 @@ "id": "LookupSelfDeviceUsersResponse", "properties": { "customer": { - "description": "The obfuscated customer Id that may be passed back to other Devices API methods such as List, Get, etc.", + "description": "The customer Id that may be passed back to other Devices API methods such as List, Get, etc.", "type": "string" }, "names": { @@ -3626,6 +4316,69 @@ }, "type": "object" }, + "RsaPublicKeyInfo": { + "description": "Information of a RSA public key.", + "id": "RsaPublicKeyInfo", + "properties": { + "keySize": { + "description": "Key size in bits (size of the modulus).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SamlIdpConfig": { + "description": "SAML IDP (identity provider) configuration.", + "id": "SamlIdpConfig", + "properties": { + "changePasswordUri": { + "description": "The **Change Password URL** of the identity provider. Users will be sent to this URL when changing their passwords at `myaccount.google.com`. This takes precedence over the change password URL configured at customer-level. Must use `HTTPS`.", + "type": "string" + }, + "entityId": { + "description": "Required. The SAML **Entity ID** of the identity provider.", + "type": "string" + }, + "logoutRedirectUri": { + "description": "The **Logout Redirect URL** (sign-out page URL) of the identity provider. When a user clicks the sign-out link on a Google page, they will be redirected to this URL. This is a pure redirect with no attached SAML `LogoutRequest` i.e. SAML single logout is currently not supported. Must use `HTTPS`.", + "type": "string" + }, + "singleSignOnServiceUri": { + "description": "Required. The `SingleSignOnService` endpoint location (sign-in page URL) of the identity provider. This is the URL where the `AuthnRequest` will be sent. Must use `HTTPS`. Currently assumed to accept the `HTTP-Redirect` binding.", + "type": "string" + } + }, + "type": "object" + }, + "SamlSpConfig": { + "description": "SAML SP (service provider) configuration.", + "id": "SamlSpConfig", + "properties": { + "assertionConsumerServiceUri": { + "description": "Output only. The SAML **Assertion Consumer Service (ACS) URL** to be used for the IDP-initiated login. Currently assumed to accept response messages via the `HTTP-POST` binding.", + "readOnly": true, + "type": "string" + }, + "entityId": { + "description": "Output only. The SAML **Entity ID** for this service provider.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SamlSsoInfo": { + "description": "Details that are applicable when `sso_mode` == `SAML_SSO`.", + "id": "SamlSsoInfo", + "properties": { + "inboundSamlSsoProfile": { + "description": "Required. Name of the `InboundSamlSsoProfile` to use. Must be of the form `inboundSamlSsoProfiles/{inbound_saml_sso_profile}`. ", + "type": "string" + } + }, + "type": "object" + }, "SearchGroupsResponse": { "description": "The response message for GroupsService.SearchGroups.", "id": "SearchGroupsResponse", @@ -3699,10 +4452,24 @@ "SendUserInvitationRequest": { "description": "A request to send email for inviting target user corresponding to the UserInvitation.", "id": "SendUserInvitationRequest", + "properties": {}, + "type": "object" + }, + "SignInBehavior": { + "description": "Controls sign-in behavior.", + "id": "SignInBehavior", "properties": { - "firstAdminInvitationInfo": { - "$ref": "FirstAdminInvitationInfo", - "description": "Optional. First admin invitation info for customers" + "redirectCondition": { + "description": "When to redirect sign-ins to the IdP.", + "enum": [ + "REDIRECT_CONDITION_UNSPECIFIED", + "NEVER" + ], + "enumDescriptions": [ + "Default and means \"always\"", + "Sign-in flows where the user is prompted for their identity will not redirect to the IdP (so the user will most likely be prompted by Google for a password), but special flows like IdP-initiated SAML and sign-in following automatic redirection to the IdP by domain-specific service URLs will accept the IdP's assertion of the user's identity." + ], + "type": "string" } }, "type": "object" @@ -3745,6 +4512,18 @@ }, "type": "object" }, + "UpdateInboundSamlSsoProfileOperationMetadata": { + "description": "LRO response metadata for InboundSamlSsoProfilesService.UpdateInboundSamlSsoProfile.", + "id": "UpdateInboundSamlSsoProfileOperationMetadata", + "properties": {}, + "type": "object" + }, + "UpdateInboundSsoAssignmentOperationMetadata": { + "description": "LRO response metadata for InboundSsoAssignmentsService.UpdateInboundSsoAssignment.", + "id": "UpdateInboundSsoAssignmentOperationMetadata", + "properties": {}, + "type": "object" + }, "UpdateMembershipRolesParams": { "description": "The details of an update to a `MembershipRole`.", "id": "UpdateMembershipRolesParams", @@ -3804,6 +4583,10 @@ "description": "Request message for wiping all data on the device.", "id": "WipeDeviceRequest", "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + }, "removeResetLock": { "description": "Optional. Specifies if a user is able to factory reset a device after a Device Wipe. On iOS, this is called \"Activation Lock\", while on Android, this is known as \"Factory Reset Protection\". If true, this protection will be removed from the device, so that a user can successfully factory reset. If false, the setting is untouched on the device.", "type": "boolean" @@ -3825,7 +4608,12 @@ "WipeDeviceUserRequest": { "description": "Request message for starting an account wipe on device.", "id": "WipeDeviceUserRequest", - "properties": {}, + "properties": { + "customer": { + "description": "Optional. [Resource name](https://cloud.google.com/apis/design/resource_names) of the customer. If you're using this API for your own organization, use `customers/my_customer` If you're using this API to manage another organization, use `customers/{customer_id}`, where customer_id is the customer to whom the device belongs.", + "type": "string" + } + }, "type": "object" }, "WipeDeviceUserResponse": { diff --git a/etc/api/cloudiot/v1/cloudiot-api.json b/etc/api/cloudiot/v1/cloudiot-api.json index 0e199fe409..3cc573e9a4 100644 --- a/etc/api/cloudiot/v1/cloudiot-api.json +++ b/etc/api/cloudiot/v1/cloudiot-api.json @@ -234,7 +234,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+$", "required": true, @@ -335,7 +335,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+$", "required": true, @@ -364,7 +364,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+$", "required": true, @@ -765,7 +765,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+/groups/[^/]+$", "required": true, @@ -794,7 +794,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+/groups/[^/]+$", "required": true, @@ -823,7 +823,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registries/[^/]+/groups/[^/]+$", "required": true, @@ -938,7 +938,7 @@ } } }, - "revision": "20220131", + "revision": "20230102", "rootUrl": "https://cloudiot.googleapis.com/", "schemas": { "BindDeviceToGatewayRequest": { @@ -971,7 +971,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1206,7 +1206,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1560,7 +1560,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1608,7 +1608,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudkms/v1/cloudkms-api.json b/etc/api/cloudkms/v1/cloudkms-api.json index 4302117eec..b3bb018958 100644 --- a/etc/api/cloudkms/v1/cloudkms-api.json +++ b/etc/api/cloudkms/v1/cloudkms-api.json @@ -177,7 +177,7 @@ ], "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).", + "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" }, @@ -211,6 +211,100 @@ } }, "resources": { + "ekmConfig": { + "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}/ekmConfig:getIamPolicy", + "httpMethod": "GET", + "id": "cloudkms.projects.locations.ekmConfig.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/[^/]+/ekmConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + }, + "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}/ekmConfig:setIamPolicy", + "httpMethod": "POST", + "id": "cloudkms.projects.locations.ekmConfig.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/[^/]+/ekmConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + }, + "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}/ekmConfig:testIamPermissions", + "httpMethod": "POST", + "id": "cloudkms.projects.locations.ekmConfig.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/[^/]+/ekmConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudkms" + ] + } + } + }, "ekmConnections": { "methods": { "create": { @@ -289,7 +383,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/ekmConnections/[^/]+$", "required": true, @@ -397,7 +491,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/ekmConnections/[^/]+$", "required": true, @@ -426,7 +520,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/ekmConnections/[^/]+$", "required": true, @@ -525,7 +619,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+$", "required": true, @@ -598,7 +692,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+$", "required": true, @@ -627,7 +721,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+$", "required": true, @@ -789,7 +883,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "required": true, @@ -910,7 +1004,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "required": true, @@ -939,7 +1033,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/cryptoKeys/[^/]+$", "required": true, @@ -1452,7 +1546,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/importJobs/[^/]+$", "required": true, @@ -1525,7 +1619,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/importJobs/[^/]+$", "required": true, @@ -1554,7 +1648,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/keyRings/[^/]+/importJobs/[^/]+$", "required": true, @@ -1582,7 +1676,7 @@ } } }, - "revision": "20220225", + "revision": "20230106", "rootUrl": "https://cloudkms.googleapis.com/", "schemas": { "AsymmetricDecryptRequest": { @@ -1715,7 +1809,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1771,7 +1865,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1975,6 +2069,10 @@ "EC_SIGN_P384_SHA384", "EC_SIGN_SECP256K1_SHA256", "HMAC_SHA256", + "HMAC_SHA1", + "HMAC_SHA384", + "HMAC_SHA512", + "HMAC_SHA224", "EXTERNAL_SYMMETRIC_ENCRYPTION" ], "enumDescriptions": [ @@ -2002,6 +2100,10 @@ "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.", "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." ], "readOnly": true, @@ -2143,6 +2245,10 @@ "EC_SIGN_P384_SHA384", "EC_SIGN_SECP256K1_SHA256", "HMAC_SHA256", + "HMAC_SHA1", + "HMAC_SHA384", + "HMAC_SHA512", + "HMAC_SHA224", "EXTERNAL_SYMMETRIC_ENCRYPTION" ], "enumDescriptions": [ @@ -2170,6 +2276,10 @@ "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.", "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" @@ -2300,7 +2410,7 @@ "type": "string" }, "etag": { - "description": "This checksum is computed by the server based on the value of other fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", + "description": "Optional. Etag of the currently stored EkmConnection.", "type": "string" }, "name": { @@ -2323,7 +2433,7 @@ "id": "EncryptRequest", "properties": { "additionalAuthenticatedData": { - "description": "Optional. Optional data that, if specified, must also be provided during decryption through DecryptRequest.additional_authenticated_data. The maximum size depends on the key version's protection_level. For SOFTWARE keys, the AAD 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.", + "description": "Optional. Optional data that, if specified, must also be provided during decryption through DecryptRequest.additional_authenticated_data. The maximum size depends on the key version's protection_level. For SOFTWARE, EXTERNAL, and EXTERNAL_VPC keys the AAD 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" }, @@ -2333,7 +2443,7 @@ "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.", + "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, EXTERNAL, and EXTERNAL_VPC 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" }, @@ -2508,6 +2618,10 @@ "EC_SIGN_P384_SHA384", "EC_SIGN_SECP256K1_SHA256", "HMAC_SHA256", + "HMAC_SHA1", + "HMAC_SHA384", + "HMAC_SHA512", + "HMAC_SHA224", "EXTERNAL_SYMMETRIC_ENCRYPTION" ], "enumDescriptions": [ @@ -2535,6 +2649,10 @@ "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.", "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" @@ -2548,7 +2666,12 @@ "type": "string" }, "rsaAesWrappedKey": { - "description": "Wrapped key material produced with RSA_OAEP_3072_SHA1_AES_256 or RSA_OAEP_4096_SHA1_AES_256. This field contains the concatenation of two wrapped keys: 1. An ephemeral AES-256 wrapping key wrapped with the public_key using RSAES-OAEP with SHA-1/SHA-256, MGF1 with SHA-1/SHA-256, and an empty label. 2. The key to be imported, wrapped with the ephemeral AES-256 key using AES-KWP (RFC 5649). If importing symmetric key material, it is expected that the unwrapped key contains plain bytes. If importing asymmetric key material, it is expected that the unwrapped key is in PKCS#8-encoded DER format (the PrivateKeyInfo structure from RFC 5208). This format is the same as the format produced by PKCS#11 mechanism CKM_RSA_AES_KEY_WRAP.", + "description": "Optional. This field has the same meaning as wrapped_key. Prefer to use that field in new work. Either that field or this field (but not both) must be specified.", + "format": "byte", + "type": "string" + }, + "wrappedKey": { + "description": "Optional. The wrapped key material to import. Before wrapping, key material must be formatted. If importing symmetric key material, the expected key material format is plain bytes. If importing asymmetric key material, the expected key material format is PKCS#8-encoded DER (the PrivateKeyInfo structure from RFC 5208). When wrapping with import methods (RSA_OAEP_3072_SHA1_AES_256 or RSA_OAEP_4096_SHA1_AES_256 or RSA_OAEP_3072_SHA256_AES_256 or RSA_OAEP_4096_SHA256_AES_256), this field must contain the concatenation of: 1. An ephemeral AES-256 wrapping key wrapped with the public_key using RSAES-OAEP with SHA-1/SHA-256, MGF1 with SHA-1/SHA-256, and an empty label. 2. The formatted key to be imported, wrapped with the ephemeral AES-256 key using AES-KWP (RFC 5649). This format is the same as the format produced by PKCS#11 mechanism CKM_RSA_AES_KEY_WRAP. When wrapping with import methods (RSA_OAEP_3072_SHA256 or RSA_OAEP_4096_SHA256), this field must contain the formatted key to be imported, wrapped with the public_key using RSAES-OAEP with SHA-256, MGF1 with SHA-256, and an empty label.", "format": "byte", "type": "string" } @@ -2593,12 +2716,20 @@ "enum": [ "IMPORT_METHOD_UNSPECIFIED", "RSA_OAEP_3072_SHA1_AES_256", - "RSA_OAEP_4096_SHA1_AES_256" + "RSA_OAEP_4096_SHA1_AES_256", + "RSA_OAEP_3072_SHA256_AES_256", + "RSA_OAEP_4096_SHA256_AES_256", + "RSA_OAEP_3072_SHA256", + "RSA_OAEP_4096_SHA256" ], "enumDescriptions": [ "Not specified.", "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 3072 bit RSA key. For more details, see [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).", - "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 4096 bit RSA key. For more details, see [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908)." + "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 4096 bit RSA key. For more details, see [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).", + "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 3072 bit RSA key. For more details, see [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).", + "This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping scheme defined in the PKCS #11 standard. In summary, this involves wrapping the raw key with an ephemeral AES key, and wrapping the ephemeral AES key with a 4096 bit RSA key. For more details, see [RSA AES key wrap mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).", + "This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The key material to be imported is wrapped directly with the RSA key. Due to technical limitations of RSA wrapping, this method cannot be used to wrap RSA keys for import.", + "This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The key material to be imported is wrapped directly with the RSA key. Due to technical limitations of RSA wrapping, this method cannot be used to wrap RSA keys for import." ], "type": "string" }, @@ -2748,7 +2879,7 @@ "type": "object" }, "ListEkmConnectionsResponse": { - "description": "Response message for KeyManagementService.ListEkmConnections.", + "description": "Response message for EkmService.ListEkmConnections.", "id": "ListEkmConnectionsResponse", "properties": { "ekmConnections": { @@ -3077,6 +3208,10 @@ "EC_SIGN_P384_SHA384", "EC_SIGN_SECP256K1_SHA256", "HMAC_SHA256", + "HMAC_SHA1", + "HMAC_SHA384", + "HMAC_SHA512", + "HMAC_SHA224", "EXTERNAL_SYMMETRIC_ENCRYPTION" ], "enumDescriptions": [ @@ -3104,6 +3239,10 @@ "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.", "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" @@ -3180,7 +3319,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3195,7 +3334,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudprofiler/v2/cloudprofiler-api.json b/etc/api/cloudprofiler/v2/cloudprofiler-api.json index 50f5cc997c..1bf39b59d2 100644 --- a/etc/api/cloudprofiler/v2/cloudprofiler-api.json +++ b/etc/api/cloudprofiler/v2/cloudprofiler-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20220228", + "revision": "20230123", "rootUrl": "https://cloudprofiler.googleapis.com/", "schemas": { "CreateProfileRequest": { @@ -273,7 +273,7 @@ "type": "string" }, "target": { - "description": "Target is the service name used to group related deployments: * Service name for App Engine Flex / Standard. * Cluster and container name for GKE. * User-specified string for direct Compute Engine profiling (e.g. Java). * Job name for Dataflow. Validation regex: `^[a-z]([-a-z0-9_.]{0,253}[a-z0-9])?$`.", + "description": "Target is the service name used to group related deployments: * Service name for App Engine Flex / Standard. * Cluster and container name for GKE. * User-specified string for direct Compute Engine profiling (e.g. Java). * Job name for Dataflow. Validation regex: `^[a-z0-9]([-a-z0-9_.]{0,253}[a-z0-9])?$`.", "type": "string" } }, diff --git a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json index 31bc040563..fe4c2c2a4b 100644 --- a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json @@ -517,7 +517,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -652,7 +652,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -708,7 +708,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -893,7 +893,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -948,7 +948,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. If multiple fields are included in a filter query, the query will return results that match any of the fields. Some eligible fields for filtering are: + `name` + `id` + `labels.` (where *key* is the name of a label) + `parent.type` + `parent.id` + `lifecycleState` Some examples of filter queries: | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` and its label `size` has the value `big`.| | lifecycleState:DELETE_REQUESTED | Only show projects that are pending deletion.| If no filter is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission. NOTE: To perform a by-parent query (eg., what projects are directly in a Folder), the caller must have the `resourcemanager.projects.list` permission on the parent and the filter must contain both a `parent.type` and a `parent.id` restriction (example: \"parent.type:folder parent.id:123\"). In this case an alternate search index is used which provides more consistent results.", + "description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. If multiple fields are included in a filter query, the query will return results that match any of the fields. Some eligible fields for filtering are: + `name` + `id` + `labels.` (where *key* is the name of a label) + `parent.type` + `parent.id` + `lifecycleState` Some examples of filter queries: | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` or its label `size` has the value `big`. | | lifecycleState:DELETE_REQUESTED | Only show projects that are pending deletion.| If no filter is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission. NOTE: To perform a by-parent query (eg., what projects are directly in a Folder), the caller must have the `resourcemanager.projects.list` permission on the parent and the filter must contain both a `parent.type` and a `parent.id` restriction (example: \"parent.type:folder parent.id:123\"). In this case an alternate search index is used which provides more consistent results.", "location": "query", "type": "string" }, @@ -1041,7 +1041,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -1096,7 +1096,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -1171,7 +1171,7 @@ } } }, - "revision": "20220306", + "revision": "20230115", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { @@ -1186,7 +1186,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1242,7 +1242,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1490,7 +1490,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2163,7 +2163,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2216,7 +2216,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json index 3bd89b40ba..875023915c 100644 --- a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json @@ -151,7 +151,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -213,7 +213,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -241,7 +241,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -403,7 +403,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -429,7 +429,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "An expression for filtering the results of the request. Filter rules are case insensitive. If multiple fields are included in a filter query, the query will return results that match any of the fields. Some eligible fields for filtering are: + `name` + `id` + `labels.` (where *key* is the name of a label) + `parent.type` + `parent.id` Some examples of using labels as filters: | Filter | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big |The project's label `color` has the value `red` and its label `size` has the value `big`. | If no filter is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission. NOTE: To perform a by-parent query (eg., what projects are directly in a Folder), the caller must have the `resourcemanager.projects.list` permission on the parent and the filter must contain both a `parent.type` and a `parent.id` restriction (example: \"parent.type:folder parent.id:123\"). In this case an alternate search index is used which provides more consistent results. Optional.", + "description": "An expression for filtering the results of the request. Filter rules are case insensitive. If multiple fields are included in a filter query, the query will return results that match any of the fields. Some eligible fields for filtering are: + `name` + `id` + `labels.` (where *key* is the name of a label) + `parent.type` + `parent.id` Some examples of using labels as filters: | Filter | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` or its label `size` has the value `big`. | If no filter is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission. NOTE: To perform a by-parent query (eg., what projects are directly in a Folder), the caller must have the `resourcemanager.projects.list` permission on the parent and the filter must contain both a `parent.type` and a `parent.id` restriction (example: \"parent.type:folder parent.id:123\"). In this case an alternate search index is used which provides more consistent results. Optional.", "location": "query", "type": "string" }, @@ -464,7 +464,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -491,7 +491,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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", "required": true, "type": "string" @@ -566,7 +566,7 @@ } } }, - "revision": "20220306", + "revision": "20230115", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { @@ -581,7 +581,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -637,7 +637,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -806,7 +806,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1183,7 +1183,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1198,7 +1198,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json index 2ae79c6d0f..bb303ca512 100644 --- a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json @@ -195,7 +195,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -343,7 +343,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -371,7 +371,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -450,11 +450,11 @@ } } }, - "revision": "20220306", + "revision": "20230115", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -510,7 +510,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1017,7 +1017,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1059,7 +1059,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json index 384289a124..0bfd1c67f5 100644 --- a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json @@ -195,7 +195,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -343,7 +343,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -371,7 +371,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -450,11 +450,11 @@ } } }, - "revision": "20220306", + "revision": "20230115", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -510,7 +510,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1017,7 +1017,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1059,7 +1059,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json index 47d6c7784f..b1ed54a3b4 100644 --- a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json @@ -108,6 +108,43 @@ }, "protocol": "rest", "resources": { + "effectiveTags": { + "methods": { + "list": { + "description": "Return a list of effective tags for the given Google Cloud resource, as specified in `parent`.", + "flatPath": "v3/effectiveTags", + "httpMethod": "GET", + "id": "cloudresourcemanager.effectiveTags.list", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of effective tags to return in the response. The server allows a maximum of 300 effective tags to return in a single page. If unspecified, the server will use 100 as the default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A pagination token returned from a previous call to `ListEffectiveTags` that indicates from where this listing should continue.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The full resource name of a resource for which you want to list the effective tags. E.g. \"//cloudresourcemanager.googleapis.com/projects/123\"", + "location": "query", + "type": "string" + } + }, + "path": "v3/effectiveTags", + "response": { + "$ref": "ListEffectiveTagsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + }, "folders": { "methods": { "create": { @@ -189,7 +226,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -227,7 +264,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the organization or folder whose folders are being listed. Must be of the form `folders/{folder_id}` or `organizations/{org_id}`. Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.", + "description": "Required. The name of the parent resource whose folders are being listed. Only children of this parent resource are listed; descendants are not listed. If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`. Access to this method is controlled by checking the `resourcemanager.folders.list` permission on the `parent`.", "location": "query", "type": "string" }, @@ -351,7 +388,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -379,7 +416,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^folders/[^/]+$", "required": true, @@ -603,7 +640,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -665,7 +702,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -693,7 +730,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+$", "required": true, @@ -795,7 +832,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -833,7 +870,7 @@ "type": "string" }, "parent": { - "description": "Required. The name of the parent resource to list projects under. For example, setting this field to 'folders/1234' would list all projects directly under that folder.", + "description": "Required. The name of the parent resource whose projects are being listed. Only children of this parent resource are listed; descendants are not listed. If the parent is a folder, use the value `folders/{folder_id}`. If the parent is an organization, use the value `organizations/{org_id}`.", "location": "query", "type": "string" }, @@ -933,7 +970,7 @@ "type": "string" }, "query": { - "description": "Optional. A query string for searching for projects that the caller has `resourcemanager.projects.get` permission to. If multiple fields are included in the query, then it will return results that match any of the fields. Some eligible fields are: ``` | Field | Description | |-------------------------|----------------------------------------------| | displayName, name | Filters by displayName. | | parent | Project's parent (for example: folders/123, organizations/*). Prefer parent field over parent.type and parent.id.| | parent.type | Parent's type: `folder` or `organization`. | | parent.id | Parent's id number (for example: 123) | | id, projectId | Filters by projectId. | | state, lifecycleState | Filters by state. | | labels | Filters by label name or value. | | labels.\\ (where *key* is the name of a label) | Filters by label name.| ``` Search expressions are case insensitive. Some examples queries: ``` | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` and its label `size` has the value `big`.| ``` If no query is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission.", + "description": "Optional. A query string for searching for projects that the caller has `resourcemanager.projects.get` permission to. If multiple fields are included in the query, then it will return results that match any of the fields. Some eligible fields are: ``` | Field | Description | |-------------------------|----------------------------------------------| | displayName, name | Filters by displayName. | | parent | Project's parent (for example: folders/123, organizations/*). Prefer parent field over parent.type and parent.id.| | parent.type | Parent's type: `folder` or `organization`. | | parent.id | Parent's id number (for example: 123) | | id, projectId | Filters by projectId. | | state, lifecycleState | Filters by state. | | labels | Filters by label name or value. | | labels.\\ (where *key* is the name of a label) | Filters by label name.| ``` Search expressions are case insensitive. Some examples queries: ``` | Query | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` or its label `size` has the value `big`. | ``` If no query is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission.", "location": "query", "type": "string" } @@ -943,11 +980,12 @@ "$ref": "SearchProjectsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, "setIamPolicy": { - "description": "Sets the IAM access control policy for the specified project, in the format `projects/{ProjectIdOrNumber}` e.g. projects/123. 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. 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 using the 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. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + 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. + Calling this method requires enabling the App Engine Admin API.", + "description": "Sets the IAM access control policy for the specified project, in the format `projects/{ProjectIdOrNumber}` e.g. projects/123. 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. 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 using the 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. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + 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.", "flatPath": "v3/projects/{projectsId}:setIamPolicy", "httpMethod": "POST", "id": "cloudresourcemanager.projects.setIamPolicy", @@ -956,7 +994,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -984,7 +1022,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -1036,7 +1074,7 @@ "tagBindings": { "methods": { "create": { - "description": "Creates a TagBinding between a TagValue and a cloud resource (currently project, folder, or organization).", + "description": "Creates a TagBinding between a TagValue and a Google Cloud resource.", "flatPath": "v3/tagBindings", "httpMethod": "POST", "id": "cloudresourcemanager.tagBindings.create", @@ -1085,20 +1123,20 @@ ] }, "list": { - "description": "Lists the TagBindings for the given cloud resource, as specified with `parent`. NOTE: The `parent` field is expected to be a full resource name: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "description": "Lists the TagBindings for the given Google Cloud resource, as specified with `parent`. NOTE: The `parent` field is expected to be a full resource name: https://cloud.google.com/apis/design/resource_names#full_resource_name", "flatPath": "v3/tagBindings", "httpMethod": "GET", "id": "cloudresourcemanager.tagBindings.list", "parameterOrder": [], "parameters": { "pageSize": { - "description": "Optional. The maximum number of TagBindings to return in the response. The server allows a maximum of 300 TagBindings to return. If unspecified, the server will use 100 as the default. Currently this api returns unpaginated response and `page_size` is ignored.", + "description": "Optional. The maximum number of TagBindings to return in the response. The server allows a maximum of 300 TagBindings to return. If unspecified, the server will use 100 as the default.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Optional. A pagination token returned from a previous call to `ListTagBindings` that indicates where this listing should continue from. Currently this api returns unpaginated response and `page_token` is ignored.", + "description": "Optional. A pagination token returned from a previous call to `ListTagBindings` that indicates where this listing should continue from.", "location": "query", "type": "string" }, @@ -1122,7 +1160,7 @@ "tagKeys": { "methods": { "create": { - "description": "Creates a new TagKey. If another request with the same parameters is sent while the original request is in process, the second request will receive an error. A maximum of 300 TagKeys can exist under a parent at any given time.", + "description": "Creates a new TagKey. If another request with the same parameters is sent while the original request is in process, the second request will receive an error. A maximum of 1000 TagKeys can exist under a parent at any given time.", "flatPath": "v3/tagKeys", "httpMethod": "POST", "id": "cloudresourcemanager.tagKeys.create", @@ -1216,7 +1254,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^tagKeys/[^/]+$", "required": true, @@ -1317,7 +1355,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^tagKeys/[^/]+$", "required": true, @@ -1345,7 +1383,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^tagKeys/[^/]+$", "required": true, @@ -1368,7 +1406,7 @@ "tagValues": { "methods": { "create": { - "description": "Creates a TagValue as a child of the specified TagKey. If a another request with the same parameters is sent while the original request is in process the second request will receive an error. A maximum of 300 TagValues can exist under a TagKey at any given time.", + "description": "Creates a TagValue as a child of the specified TagKey. If a another request with the same parameters is sent while the original request is in process the second request will receive an error. A maximum of 1000 TagValues can exist under a TagKey at any given time.", "flatPath": "v3/tagValues", "httpMethod": "POST", "id": "cloudresourcemanager.tagValues.create", @@ -1427,7 +1465,7 @@ ] }, "get": { - "description": "Retrieves TagValue. If the TagValue or namespaced name does not exist, or if the user does not have permission to view it, this method will return `PERMISSION_DENIED`.", + "description": "Retrieves a TagValue. 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/{tagValuesId}", "httpMethod": "GET", "id": "cloudresourcemanager.tagValues.get", @@ -1462,7 +1500,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^tagValues/[^/]+$", "required": true, @@ -1500,7 +1538,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name for TagKey, parent of the TagValues to be listed, in the format `tagKeys/123`.", + "description": "Required.", "location": "query", "type": "string" } @@ -1563,7 +1601,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^tagValues/[^/]+$", "required": true, @@ -1591,7 +1629,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^tagValues/[^/]+$", "required": true, @@ -1609,14 +1647,125 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "tagHolds": { + "methods": { + "create": { + "description": "Creates a TagHold. Returns ALREADY_EXISTS if a TagHold with the same resource and origin exists under the same TagValue.", + "flatPath": "v3/tagValues/{tagValuesId}/tagHolds", + "httpMethod": "POST", + "id": "cloudresourcemanager.tagValues.tagHolds.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the TagHold's parent TagValue. Must be of the form: `tagValues/{tag-value-id}`.", + "location": "path", + "pattern": "^tagValues/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. Set to true to perform the validations necessary for creating the resource, but not actually perform the action.", + "location": "query", + "type": "boolean" + } + }, + "path": "v3/{+parent}/tagHolds", + "request": { + "$ref": "TagHold" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a TagHold.", + "flatPath": "v3/tagValues/{tagValuesId}/tagHolds/{tagHoldsId}", + "httpMethod": "DELETE", + "id": "cloudresourcemanager.tagValues.tagHolds.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the TagHold to delete. Must be of the form: `tagValues/{tag-value-id}/tagHolds/{tag-hold-id}`.", + "location": "path", + "pattern": "^tagValues/[^/]+/tagHolds/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. Set to true to perform the validations necessary for deleting the resource, but not actually perform the action.", + "location": "query", + "type": "boolean" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TagHolds under a TagValue.", + "flatPath": "v3/tagValues/{tagValuesId}/tagHolds", + "httpMethod": "GET", + "id": "cloudresourcemanager.tagValues.tagHolds.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Criteria used to select a subset of TagHolds parented by the TagValue to return. This field follows the syntax defined by aip.dev/160; the `holder` and `origin` fields are supported for filtering. Currently only `AND` syntax is supported. Some example queries are: * `holder = //compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group` * `origin = 35678234` * `holder = //compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group AND origin = 35678234`", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of TagHolds to return in the response. The server allows a maximum of 300 TagHolds to return. If unspecified, the server will use 100 as the default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A pagination token returned from a previous call to `ListTagHolds` that indicates where this listing should continue from.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent TagValue. Must be of the form: `tagValues/{tag-value-id}`.", + "location": "path", + "pattern": "^tagValues/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/tagHolds", + "response": { + "$ref": "ListTagHoldsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + } + } + } } } }, - "revision": "20220306", + "revision": "20230115", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1672,7 +1821,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1840,8 +1989,35 @@ "properties": {}, "type": "object" }, + "EffectiveTag": { + "description": "An EffectiveTag represents a tag that applies to a resource during policy evaluation. Tags can be either directly bound to a resource or inherited from its ancestor. EffectiveTag contains the name and namespaced_name of the tag value and tag key, with additional fields of `inherited` to indicate the inheritance status of the effective tag.", + "id": "EffectiveTag", + "properties": { + "inherited": { + "description": "Indicates the inheritance status of a tag value attached to the given resource. If the tag value is inherited from one of the resource's ancestors, inherited will be true. If false, then the tag value is directly attached to the resource, inherited will be false.", + "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.", + "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.", + "type": "string" + }, + "tagKey": { + "description": "The name of the TagKey, in the format `tagKeys/{id}`, such as `tagKeys/123`.", + "type": "string" + }, + "tagValue": { + "description": "Resource name for TagValue in the format `tagValues/456`.", + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2053,6 +2229,24 @@ }, "type": "object" }, + "ListEffectiveTagsResponse": { + "description": "The response of ListEffectiveTags.", + "id": "ListEffectiveTagsResponse", + "properties": { + "effectiveTags": { + "description": "A possibly paginated list of effective tags for the specified resource.", + "items": { + "$ref": "EffectiveTag" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", + "type": "string" + } + }, + "type": "object" + }, "ListFoldersResponse": { "description": "The ListFolders response message.", "id": "ListFoldersResponse", @@ -2125,6 +2319,24 @@ }, "type": "object" }, + "ListTagHoldsResponse": { + "description": "The ListTagHolds response.", + "id": "ListTagHoldsResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", + "type": "string" + }, + "tagHolds": { + "description": "A possibly paginated list of TagHolds.", + "items": { + "$ref": "TagHold" + }, + "type": "array" + } + }, + "type": "object" + }, "ListTagKeysResponse": { "description": "The ListTagKeys response message.", "id": "ListTagKeysResponse", @@ -2362,7 +2574,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. The labels associated with this project. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: \\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?. Label values must be between 0 and 63 characters long and must conform to the regular expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?. No more than 256 labels can be associated with a given resource. Clients should store labels in a representation such as JSON that does not depend on specific characters being disallowed. Example: `\"myBusinessDimension\" : \"businessValue\"`", + "description": "Optional. The labels associated with this project. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: \\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?. Label values must be between 0 and 63 characters long and must conform to the regular expression (\\[a-z\\](\\[-a-z0-9\\]*\\[a-z0-9\\])?)?. No more than 64 labels can be associated with a given resource. Clients should store labels in a representation such as JSON that does not depend on specific characters being disallowed. Example: `\"myBusinessDimension\" : \"businessValue\"`", "type": "object" }, "name": { @@ -2482,7 +2694,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2520,7 +2732,7 @@ "type": "object" }, "TagBinding": { - "description": "A TagBinding represents a connection between a TagValue and a cloud resource (currently project, folder, or organization). Once a TagBinding is created, the TagValue is applied to all the descendants of the cloud resource.", + "description": "A TagBinding represents a connection between a TagValue and a cloud resource Once a TagBinding is created, the TagValue is applied to all the descendants of the Google Cloud resource.", "id": "TagBinding", "properties": { "name": { @@ -2539,6 +2751,36 @@ }, "type": "object" }, + "TagHold": { + "description": "A TagHold represents the use of a TagValue that is not captured by TagBindings. If a TagValue has any TagHolds, deletion will be blocked. This resource is intended to be created in the same cloud location as the `holder`.", + "id": "TagHold", + "properties": { + "createTime": { + "description": "Output only. The time this TagHold was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "helpLink": { + "description": "Optional. A URL where an end user can learn more about removing this hold. E.g. `https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing`", + "type": "string" + }, + "holder": { + "description": "Required. The name of the resource where the TagValue is being used. Must be less than 200 characters. E.g. `//compute.googleapis.com/compute/projects/myproject/regions/us-east-1/instanceGroupManagers/instance-group`", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of a TagHold. This is a String of the form: `tagValues/{tag-value-id}/tagHolds/{tag-hold-id}` (e.g. `tagValues/123/tagHolds/456`). This resource name is generated by the server.", + "readOnly": true, + "type": "string" + }, + "origin": { + "description": "Optional. An optional string representing the origin of this request. This field should include human-understandable information to distinguish origins from each other. Must be less than 200 characters. E.g. `migs-35678234`", + "type": "string" + } + }, + "type": "object" + }, "TagKey": { "description": "A TagKey, used to group a set of TagValues.", "id": "TagKey", @@ -2570,6 +2812,25 @@ "description": "Immutable. The resource name of the new TagKey's parent. Must be of the form `organizations/{org_id}`.", "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" + ], + "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" + ], + "type": "string" + }, + "purposeData": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Purpose data corresponds to the policy system that the tag is intended for. See documentation for `Purpose` for formatting of this field. Purpose data cannot be changed once set.", + "type": "object" + }, "shortName": { "description": "Required. Immutable. The user friendly name for a TagKey. The short name should be unique for TagKeys within the same tag namespace. The short name must be 1-63 characters, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between.", "type": "string" @@ -2606,7 +2867,7 @@ "type": "string" }, "namespacedName": { - "description": "Output only. Namespaced name of the TagValue. Must be in the format `{organization_id}/{tag_key_short_name}/{short_name}`.", + "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.", "readOnly": true, "type": "string" }, @@ -2632,7 +2893,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudscheduler/v1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1/cloudscheduler-api.json index 67c2afe530..13d32a8ad6 100644 --- a/etc/api/cloudscheduler/v1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1/cloudscheduler-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -418,7 +418,7 @@ } } }, - "revision": "20220212", + "revision": "20230106", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { @@ -496,7 +496,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -565,7 +565,7 @@ "description": "App Engine HTTP target." }, "attemptDeadline": { - "description": "The deadline for job attempts. If the request handler does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in execution logs. Cloud Scheduler will retry the job according to the RetryConfig. The allowed duration for this deadline is: * For HTTP targets, between 15 seconds and 30 minutes. * For App Engine HTTP targets, between 15 seconds and 24 hours 15 seconds.", + "description": "The deadline for job attempts. If the request handler does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in execution logs. Cloud Scheduler will retry the job according to the RetryConfig. The default and the allowed values depend on the type of target: * For HTTP targets, the default is 3 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine HTTP targets, 0 indicates that the request has the default deadline. The default deadline depends on the scaling type 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]. * For Pub/Sub targets, this field is ignored.", "format": "google-duration", "type": "string" }, @@ -764,7 +764,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.", + "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).", "type": "string" }, "publishTime": { diff --git a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json index a925e46aa2..4265652f4b 100644 --- a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -433,7 +433,7 @@ } } }, - "revision": "20220212", + "revision": "20230106", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { @@ -511,7 +511,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -580,7 +580,7 @@ "description": "App Engine HTTP target." }, "attemptDeadline": { - "description": "The deadline for job attempts. If the request handler does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in execution logs. Cloud Scheduler will retry the job according to the RetryConfig. The allowed duration for this deadline is: * For HTTP targets, between 15 seconds and 30 minutes. * For App Engine HTTP targets, between 15 seconds and 24 hours 15 seconds. * For Pub/Sub targets, this field is ignored.", + "description": "The deadline for job attempts. If the request handler does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in execution logs. Cloud Scheduler will retry the job according to the RetryConfig. The default and the allowed values depend on the type of target: * For HTTP targets, the default is 3 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine HTTP targets, 0 indicates that the request has the default deadline. The default deadline depends on the scaling type 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]. * For Pub/Sub targets, this field is ignored.", "format": "google-duration", "type": "string" }, @@ -783,7 +783,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.", + "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).", "type": "string" }, "publishTime": { diff --git a/etc/api/cloudsearch/v1/cloudsearch-api.json b/etc/api/cloudsearch/v1/cloudsearch-api.json index e4e2695cec..dee2222095 100644 --- a/etc/api/cloudsearch/v1/cloudsearch-api.json +++ b/etc/api/cloudsearch/v1/cloudsearch-api.json @@ -136,7 +136,7 @@ "items": { "methods": { "checkAccess": { - "description": "Checks whether an item is accessible by specified principal. **Note:** This API requires an admin account to execute.", + "description": "Checks whether an item is accessible by specified principal. Principal must be a user; groups and domain values aren't supported. **Note:** This API requires an admin account to execute.", "flatPath": "v1/debug/datasources/{datasourcesId}/items/{itemsId}:checkAccess", "httpMethod": "POST", "id": "cloudsearch.debug.datasources.items.checkAccess", @@ -396,7 +396,7 @@ "type": "boolean" }, "name": { - "description": "Name of the data source to delete Schema. Format: datasources/{source_id}", + "description": "The name of the data source to delete Schema. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -428,7 +428,7 @@ "type": "boolean" }, "name": { - "description": "Name of the data source to get Schema. Format: datasources/{source_id}", + "description": "The name of the data source to get Schema. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -455,7 +455,7 @@ ], "parameters": { "name": { - "description": "Name of the data source to update Schema. Format: datasources/{source_id}", + "description": "The name of the data source to update Schema. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -489,7 +489,7 @@ ], "parameters": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "location": "query", "type": "string" }, @@ -506,7 +506,7 @@ "ASYNCHRONOUS" ], "enumDescriptions": [ - "Priority is not specified in the update request. Leaving priority unspecified results in an update failure.", + "The priority is not specified in the update request. Leaving priority unspecified results in an update failure.", "For real-time updates.", "For changes that are executed after the response is sent back to the caller." ], @@ -514,7 +514,7 @@ "type": "string" }, "name": { - "description": "Required. Name of the item to delete. Format: datasources/{source_id}/items/{item_id}", + "description": "Required. The name of the item to delete. Format: datasources/{source_id}/items/{item_id}", "location": "path", "pattern": "^datasources/[^/]+/items/[^/]+$", "required": true, @@ -546,7 +546,7 @@ ], "parameters": { "name": { - "description": "Name of the Data Source to delete items in a queue. Format: datasources/{source_id}", + "description": "The name of the Data Source to delete items in a queue. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -575,7 +575,7 @@ ], "parameters": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "location": "query", "type": "string" }, @@ -585,7 +585,7 @@ "type": "boolean" }, "name": { - "description": "Name of the item to get info. Format: datasources/{source_id}/items/{item_id}", + "description": "The name of the item to get info. Format: datasources/{source_id}/items/{item_id}", "location": "path", "pattern": "^datasources/[^/]+/items/[^/]+$", "required": true, @@ -611,7 +611,7 @@ ], "parameters": { "name": { - "description": "Name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", + "description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", "location": "path", "pattern": "^datasources/[^/]+/items/[^/]+$", "required": true, @@ -645,7 +645,7 @@ "type": "boolean" }, "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "location": "query", "type": "string" }, @@ -655,7 +655,7 @@ "type": "boolean" }, "name": { - "description": "Name of the Data Source to list Items. Format: datasources/{source_id}", + "description": "The name of the Data Source to list Items. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -692,7 +692,7 @@ ], "parameters": { "name": { - "description": "Name of the Data Source to poll items. Format: datasources/{source_id}", + "description": "The name of the Data Source to poll items. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -721,7 +721,7 @@ ], "parameters": { "name": { - "description": "Name of the item to push into the indexing queue. Format: datasources/{source_id}/items/{ID} This is a required field. The maximum length is 1536 characters.", + "description": "The name of the item to push into the indexing queue. Format: datasources/{source_id}/items/{ID} This is a required field. The maximum length is 1536 characters.", "location": "path", "pattern": "^datasources/[^/]+/items/[^/]+$", "required": true, @@ -750,7 +750,7 @@ ], "parameters": { "name": { - "description": "Name of the Data Source to unreserve all items. Format: datasources/{source_id}", + "description": "The name of the Data Source to unreserve all items. Format: datasources/{source_id}", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -779,7 +779,7 @@ ], "parameters": { "name": { - "description": "Name of the Item to start a resumable upload. Format: datasources/{source_id}/items/{item_id}. The maximum length is 1536 bytes.", + "description": "The name of the Item to start a resumable upload. Format: datasources/{source_id}/items/{item_id}. The maximum length is 1536 bytes.", "location": "path", "pattern": "^datasources/[^/]+/items/[^/]+$", "required": true, @@ -997,7 +997,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. The suggest API does not use this parameter. Instead, suggest autocompletes only based on characters in the query.", + "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.", "location": "query", "type": "string" }, @@ -1110,7 +1110,7 @@ "type": "boolean" }, "name": { - "description": "Name of the datasource. Format: datasources/{source_id}.", + "description": "The name of the datasource. Format: datasources/{source_id}.", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -1142,7 +1142,7 @@ "type": "boolean" }, "name": { - "description": "Name of the datasource resource. Format: datasources/{source_id}.", + "description": "The name of the datasource resource. Format: datasources/{source_id}.", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -1193,6 +1193,47 @@ "https://www.googleapis.com/auth/cloud_search.settings.indexing" ] }, + "patch": { + "description": "Updates a datasource. **Note:** This API requires an admin account to execute.", + "flatPath": "v1/settings/datasources/{datasourcesId}", + "httpMethod": "PATCH", + "id": "cloudsearch.settings.datasources.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "debugOptions.enableDebugging": { + "description": "If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", + "location": "path", + "pattern": "^datasources/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/settings/{+name}", + "request": { + "$ref": "DataSource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud_search", + "https://www.googleapis.com/auth/cloud_search.settings", + "https://www.googleapis.com/auth/cloud_search.settings.indexing" + ] + }, "update": { "description": "Updates a datasource. **Note:** This API requires an admin account to execute.", "flatPath": "v1/settings/datasources/{datasourcesId}", @@ -1203,7 +1244,7 @@ ], "parameters": { "name": { - "description": "Name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", + "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", "location": "path", "pattern": "^datasources/[^/]+$", "required": true, @@ -1294,7 +1335,7 @@ "type": "boolean" }, "name": { - "description": "Name of the search application. Format: searchapplications/{application_id}.", + "description": "The name of the search application. Format: searchapplications/{application_id}.", "location": "path", "pattern": "^searchapplications/[^/]+$", "required": true, @@ -1345,6 +1386,42 @@ "https://www.googleapis.com/auth/cloud_search.settings.query" ] }, + "patch": { + "description": "Updates a search application. **Note:** This API requires an admin account to execute.", + "flatPath": "v1/settings/searchapplications/{searchapplicationsId}", + "httpMethod": "PATCH", + "id": "cloudsearch.settings.searchapplications.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the Search Application. Format: searchapplications/{application_id}.", + "location": "path", + "pattern": "^searchapplications/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/settings/{+name}", + "request": { + "$ref": "SearchApplication" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud_search", + "https://www.googleapis.com/auth/cloud_search.settings", + "https://www.googleapis.com/auth/cloud_search.settings.query" + ] + }, "reset": { "description": "Resets a search application to default settings. This will return an empty response. **Note:** This API requires an admin account to execute.", "flatPath": "v1/settings/searchapplications/{searchapplicationsId}:reset", @@ -1385,11 +1462,17 @@ ], "parameters": { "name": { - "description": "Name of the Search Application. Format: searchapplications/{application_id}.", + "description": "The name of the Search Application. Format: searchapplications/{application_id}.", "location": "path", "pattern": "^searchapplications/[^/]+$", "required": true, "type": "string" + }, + "updateMask": { + "description": "Only applies to [`settings.searchapplications.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.searchapplications/patch). Update mask to control which fields to update. Example field paths: `search_application.name`, `search_application.displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the `search_application`, then that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v1/settings/{+name}", @@ -1994,9 +2077,116 @@ } } }, - "revision": "20220221", + "revision": "20230117", "rootUrl": "https://cloudsearch.googleapis.com/", "schemas": { + "AbuseReportingConfig": { + "description": "Abuse reporting configuration outlining what is supported in this conference.", + "id": "AbuseReportingConfig", + "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", @@ -2034,6 +2224,284 @@ }, "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", @@ -2064,10 +2532,11 @@ "SHEETS_APP", "SLIDES_APP", "MEET_APP", - "FILE_SUGGESTION_APP", + "ASSISTIVE_SUGGESTION_APP", "CONTACTS_APP", "ACTIVITY_FEED_APP", - "DRIVE_APP" + "DRIVE_APP", + "CHAT_IN_MEET_APP" ], "enumDescriptions": [ "", @@ -2080,6 +2549,7 @@ "Powered by Bullseye", "", "", + "", "" ], "type": "string" @@ -2092,123 +2562,695 @@ }, "type": "object" }, - "AuditLoggingSettings": { - "description": "Represents the settings for Cloud audit logging", - "id": "AuditLoggingSettings", + "AppsDynamiteSharedActivityFeedAnnotationData": { + "description": "Next Id: 7", + "id": "AppsDynamiteSharedActivityFeedAnnotationData", "properties": { - "logAdminReadActions": { - "description": "Indicates whether audit logging is on/off for admin activity read APIs i.e. Get/List DataSources, Get/List SearchApplications etc.", - "type": "boolean" - }, - "logDataReadActions": { - "description": "Indicates whether audit logging is on/off for data access read APIs i.e. ListItems, GetItem etc.", - "type": "boolean" - }, - "logDataWriteActions": { - "description": "Indicates whether audit logging is on/off for data access write APIs i.e. IndexItem etc.", - "type": "boolean" - }, - "project": { - "description": "The resource name of the GCP Project to store audit logs. Cloud audit logging will be enabled after project_name has been updated through CustomerService. Format: projects/{project_id}", + "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" }, - "AvatarInfo": { - "id": "AvatarInfo", + "AppsDynamiteSharedActivityFeedAnnotationDataUserInfo": { + "description": "UserId of the AF item updater to show and the updater count to show.", + "id": "AppsDynamiteSharedActivityFeedAnnotationDataUserInfo", "properties": { - "emoji": { - "$ref": "Emoji" - } - }, - "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", - "properties": { - "operatorName": { - "description": "Indicates the operator name required in the query in order to isolate the boolean property. For example, if operatorName is *closed* and the property's name is *isClosed*, then queries like *closed:* show results only where the value of the property named *isClosed* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", - "type": "string" - } - }, - "type": "object" - }, - "BooleanPropertyOptions": { - "description": "Options for boolean properties.", - "id": "BooleanPropertyOptions", - "properties": { - "operatorOptions": { - "$ref": "BooleanOperatorOptions", - "description": "If set, describes how the boolean should be used as a search operator." - } - }, - "type": "object" - }, - "CheckAccessResponse": { - "id": "CheckAccessResponse", - "properties": { - "hasAccess": { - "description": "Returns true if principal has access. Returns false otherwise.", - "type": "boolean" - } - }, - "type": "object" - }, - "CompositeFilter": { - "id": "CompositeFilter", - "properties": { - "logicOperator": { - "description": "The logic operator of the sub filter.", + "updaterCountDisplayType": { + "description": "Describes how updater_count_to_show should be used.", "enum": [ - "AND", - "OR", - "NOT" + "UPDATER_COUNT_DISPLAY_TYPE_UNSPECIFIED", + "EXACT_COUNT", + "NONZERO_COUNT" ], "enumDescriptions": [ - "Logical operators, which can only be applied to sub filters.", "", - "NOT can only be applied on a single sub filter." + "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" }, - "subFilters": { - "description": "Sub filters.", - "items": { - "$ref": "Filter" - }, - "type": "array" + "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" }, - "ContextAttribute": { - "description": "A named attribute associated with an item which can be used for influencing the ranking of the item based on the context in the request.", - "id": "ContextAttribute", + "AppsDynamiteSharedAppProfile": { + "description": "Optional field for apps overriding display info", + "id": "AppsDynamiteSharedAppProfile", "properties": { - "name": { - "description": "The name of the attribute. It should not be empty. The maximum length is 32 characters. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The name will be normalized (lower-cased) before being matched.", + "avatarEmoji": { + "description": "Displayed user avatar emoji.", "type": "string" }, - "values": { - "description": "Text values of the attribute. The maximum number of elements is 10. The maximum length of an element in the array is 32 characters. The value will be normalized (lower-cased) before being matched.", - "items": { - "type": "string" - }, - "type": "array" + "avatarUrl": { + "description": "Displayed user avatar url.", + "type": "string" + }, + "name": { + "description": "Displayed user name.", + "type": "string" } }, "type": "object" }, - "CustomEmoji": { - "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: 11", - "id": "CustomEmoji", + "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", @@ -2218,6 +3260,16 @@ "$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." @@ -2259,6 +3311,3394 @@ }, "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.", + "type": "string" + }, + "url": { + "description": "URL of the document.", + "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", + "properties": { + "logAdminReadActions": { + "description": "Indicates whether audit logging is on/off for admin activity read APIs i.e. Get/List DataSources, Get/List SearchApplications etc.", + "type": "boolean" + }, + "logDataReadActions": { + "description": "Indicates whether audit logging is on/off for data access read APIs i.e. ListItems, GetItem etc.", + "type": "boolean" + }, + "logDataWriteActions": { + "description": "Indicates whether audit logging is on/off for data access write APIs i.e. IndexItem etc.", + "type": "boolean" + }, + "project": { + "description": "The resource name of the GCP Project to store audit logs. Cloud audit logging will be enabled after project_name has been updated through CustomerService. Format: projects/{project_id}", + "type": "string" + } + }, + "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", + "properties": { + "id": { + "description": "Serialized ID of the Drive resource", + "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": { + "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", + "properties": { + "operatorName": { + "description": "Indicates the operator name required in the query in order to isolate the boolean property. For example, if operatorName is *closed* and the property's name is *isClosed*, then queries like *closed:* show results only where the value of the property named *isClosed* matches **. By contrast, a search that uses the same ** without an operator returns all items where ** matches the value of any String properties or text within the content field for the item. The operator name can only contain lowercase letters (a-z). The maximum length is 32 characters.", + "type": "string" + } + }, + "type": "object" + }, + "BooleanPropertyOptions": { + "description": "The options for boolean properties.", + "id": "BooleanPropertyOptions", + "properties": { + "operatorOptions": { + "$ref": "BooleanOperatorOptions", + "description": "If set, describes how the boolean should be used as a search operator." + } + }, + "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": { + "hasAccess": { + "description": "Returns true if principal has access. Returns false otherwise.", + "type": "boolean" + } + }, + "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": { + "logicOperator": { + "description": "The logic operator of the sub filter.", + "enum": [ + "AND", + "OR", + "NOT" + ], + "enumDescriptions": [ + "Logical operators, which can only be applied to sub filters.", + "", + "NOT can only be applied on a single sub filter." + ], + "type": "string" + }, + "subFilters": { + "description": "Sub filters.", + "items": { + "$ref": "Filter" + }, + "type": "array" + } + }, + "type": "object" + }, + "ConsentedAppUnfurlMetadata": { + "description": "Annotation metadata app unfurl consent.", + "id": "ConsentedAppUnfurlMetadata", + "properties": { + "clientSpecifiedAppId": { + "$ref": "UserId", + "description": "Client specified AppId, which will not be sanitized and is untrusted." + } + }, + "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", + "properties": { + "groupId": { + "description": "Group ID is unique only relative to the owner's Gaia ID.", + "format": "int64", + "type": "string" + }, + "ownerGaiaId": { + "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.", + "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", + "type": "string" + }, + "reportJustification": { + "$ref": "ContentReportJustification", + "description": "Additional user-provided justification on the report. Optional." + }, + "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": "object" + }, + "ContextAttribute": { + "description": "A named attribute associated with an item which can be used for influencing the ranking of the item based on the context in the request.", + "id": "ContextAttribute", + "properties": { + "name": { + "description": "The name of the attribute. It should not be empty. The maximum length is 32 characters. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The name will be normalized (lower-cased) before being matched.", + "type": "string" + }, + "values": { + "description": "Text values of the attribute. The maximum number of elements is 10. The maximum length of an element in the array is 32 characters. The value will be normalized (lower-cased) before being matched.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", @@ -2275,7 +6715,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which statistics were calculated." + "description": "The date for which statistics were calculated." }, "itemCountByStatus": { "description": "Number of items aggregrated by status code.", @@ -2292,7 +6732,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." + "description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." }, "queryCountByStatus": { "items": { @@ -2314,7 +6754,7 @@ }, "date": { "$ref": "Date", - "description": "Date for which search application stats were calculated." + "description": "The date for which search application stats were calculated." } }, "type": "object" @@ -2324,7 +6764,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." + "description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." }, "searchSessionsCount": { "description": "The count of search sessions on the day", @@ -2354,7 +6794,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." + "description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." }, "oneDayActiveUsersCount": { "description": "The count of unique active users in the past one day", @@ -2374,6 +6814,21 @@ }, "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.", "id": "DataSource", @@ -2405,7 +6860,7 @@ "type": "array" }, "name": { - "description": "Name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", + "description": "The name of the datasource resource. Format: datasources/{source_id}. The name is ignored when creating a datasource.", "type": "string" }, "operationIds": { @@ -2432,7 +6887,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which index stats were calculated. If the date of request is not the current date then stats calculated on the next day are returned. Stats are calculated close to mid night in this case. If date of request is current date, then real time stats are returned." + "description": "The date for which index stats were calculated. If the date of request is not the current date then stats calculated on the next day are returned. Stats are calculated close to mid night in this case. If date of request is current date, then real time stats are returned." }, "itemCountByStatus": { "description": "Number of items aggregrated by status code.", @@ -2504,7 +6959,7 @@ "type": "object" }, "DatePropertyOptions": { - "description": "Options for date properties.", + "description": "The options for date properties.", "id": "DatePropertyOptions", "properties": { "operatorOptions": { @@ -2514,6 +6969,50 @@ }, "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", @@ -2538,11 +7037,44 @@ }, "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": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -2550,12 +7082,38 @@ "description": "Common debug options." }, "queue": { - "description": "Name of a queue to delete items from.", + "description": "The name of a queue to delete items from.", "type": "string" } }, "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", @@ -2567,6 +7125,86 @@ }, "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": { @@ -2577,6 +7215,17 @@ }, "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", @@ -2589,7 +7238,7 @@ "type": "object" }, "DoublePropertyOptions": { - "description": "Options for double properties.", + "description": "The options for double properties.", "id": "DoublePropertyOptions", "properties": { "operatorOptions": { @@ -2613,6 +7262,15 @@ }, "type": "object" }, + "DriveClientActionMarkup": { + "id": "DriveClientActionMarkup", + "properties": { + "requestFileScope": { + "$ref": "RequestFileScope" + } + }, + "type": "object" + }, "DriveFollowUpRestrict": { "description": "Drive follow-up search restricts (e.g. \"followup:suggestions\").", "id": "DriveFollowUpRestrict", @@ -2653,6 +7311,141 @@ }, "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", @@ -2723,31 +7516,1068 @@ }, "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", "properties": { + "customType": { + "description": "If the value of type is custom, this property contains the custom type string.", + "type": "string" + }, "emailAddress": { "description": "The email address.", "type": "string" + }, + "emailUrl": { + "description": "The URL to send email.", + "type": "string" + }, + "primary": { + "description": "Indicates if this is the user's primary email. Only one entry can be marked as primary.", + "type": "boolean" + }, + "type": { + "description": "The type of the email account. Acceptable values are: \"custom\", \"home\", \"other\", \"work\".", + "type": "string" } }, "type": "object" }, - "Emoji": { - "id": "Emoji", + "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", "properties": { - "customEmoji": { - "$ref": "CustomEmoji", - "description": "A custom emoji." - }, - "unicode": { - "description": "A basic emoji represented by a unicode string.", + "email": { "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", + "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.", + "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." + }, + "id": { + "description": "The ID of the embed. This corresponds to the schema.org ID, as represented in the ItemScope.id field.", + "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.", + "type": "string" + }, + "signature": { + "description": "Signature of the embed, used for verification.", + "type": "string" + }, + "transientData": { + "$ref": "TransientData", + "description": "Transient generic data that will not be saved on the server." + }, + "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.", + "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" + ], + "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" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "EnumOperatorOptions": { "description": "Used to provide a search operator for enum properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched. For example, if you provide no operator for a *priority* enum property with possible values *p0* and *p1*, a query that contains the term *p0* returns items that have *p0* as the value of the *priority* property, as well as any items that contain the string *p0* in other fields. If you provide an operator name for the enum, such as *priority*, then search users can use that operator to refine results to only items that have *p0* as this property's value, with the query *priority:p0*.", "id": "EnumOperatorOptions", @@ -2760,7 +8590,7 @@ "type": "object" }, "EnumPropertyOptions": { - "description": "Options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define *p0* as an allowable enum value and tie this enum to the operator name *priority* so that search users could add *priority:p0* to their query to restrict the set of results to only those items indexed with the value *p0*.", + "description": "The options for enum properties, which allow you to define a restricted set of strings to match user queries, set rankings for those string values, and define an operator name to be paired with those strings so that users can narrow results to only items with a specific value. For example, for items in a request tracking system with priority information, you could define *p0* as an allowable enum value and tie this enum to the operator name *priority* so that search users could add *priority:p0* to their query to restrict the set of results to only those items indexed with the value *p0*.", "id": "EnumPropertyOptions", "properties": { "operatorOptions": { @@ -2847,6 +8677,35 @@ }, "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", @@ -2856,6 +8715,10 @@ "format": "int32", "type": "integer" }, + "filter": { + "$ref": "Filter", + "description": "Filter to be passed in the search request if the corresponding bucket is selected." + }, "percentage": { "description": "Percent of results that match the bucket value. The returned value is between (0-100], and is rounded down to an integer if fractional. If the value is not explicitly returned, it represents a percentage value that rounds to 0. Percentages are returned for all searches, but are an estimate. Because percentages are always returned, you should render percentages instead of counts.", "format": "int32", @@ -2871,6 +8734,10 @@ "description": "Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination.", "id": "FacetOptions", "properties": { + "integerFacetingOptions": { + "$ref": "IntegerFacetingOptions", + "description": "If set, describes integer faceting options for the given integer property. The corresponding integer property in the schema should be marked isFacetable. The number of buckets returned would be minimum of this and num_facet_buckets." + }, "numFacetBuckets": { "description": "Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100.", "format": "int32", @@ -2881,7 +8748,7 @@ "type": "string" }, "operatorName": { - "description": "Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", + "description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", "type": "string" }, "sourceName": { @@ -2896,7 +8763,7 @@ "id": "FacetResult", "properties": { "buckets": { - "description": "FacetBuckets for values in response containing at least a single result.", + "description": "FacetBuckets for values in response containing at least a single result with the corresponding filter.", "items": { "$ref": "FacetBucket" }, @@ -2907,7 +8774,7 @@ "type": "string" }, "operatorName": { - "description": "Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", + "description": "The name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions", "type": "string" }, "sourceName": { @@ -2921,7 +8788,7 @@ "id": "FieldViolation", "properties": { "description": { - "description": "Description of the error.", + "description": "The description of the error.", "type": "string" }, "field": { @@ -2944,6 +8811,18 @@ }, "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", @@ -2959,6 +8838,191 @@ }, "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", @@ -2975,19 +9039,178 @@ }, "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": { "gsuiteDomain": { - "description": "This principal represents all users of the G Suite domain of the customer.", + "description": "This principal represents all users of the Google Workspace domain of the customer.", "type": "boolean" }, "gsuiteGroupEmail": { - "description": "This principal references a G Suite group account", + "description": "This principal references a Google Workspace group name.", "type": "string" }, "gsuiteUserEmail": { - "description": "This principal references a G Suite user account", + "description": "This principal references a Google Workspace user account.", + "type": "string" + } + }, + "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" } }, @@ -3132,8 +9355,473 @@ }, "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: 7", + "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": { @@ -3191,6 +9879,16 @@ "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." @@ -3234,6 +9932,96 @@ }, "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", @@ -3249,6 +10037,311 @@ }, "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", @@ -3261,7 +10354,7 @@ "type": "object" }, "HtmlPropertyOptions": { - "description": "Options for html properties.", + "description": "The options for html properties.", "id": "HtmlPropertyOptions", "properties": { "operatorOptions": { @@ -3289,6 +10382,112 @@ }, "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", @@ -3310,11 +10509,683 @@ }, "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": { "allowUnknownGsuitePrincipals": { - "description": "Specifies if the index request should allow gsuite principals that do not exist or are deleted in the index request.", + "description": "Specifies if the index request should allow Google Workspace principals that do not exist or are deleted.", "type": "boolean" } }, @@ -3324,7 +11195,7 @@ "id": "IndexItemRequest", "properties": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -3336,7 +11207,7 @@ }, "item": { "$ref": "Item", - "description": "Name of the item. Format: datasources/{source_id}/items/{item_id}" + "description": "The name of the item. Format: datasources/{source_id}/items/{item_id}" }, "mode": { "description": "Required. The RequestMode for this request.", @@ -3346,7 +11217,7 @@ "ASYNCHRONOUS" ], "enumDescriptions": [ - "Priority is not specified in the update request. Leaving priority unspecified results in an update failure.", + "The priority is not specified in the update request. Leaving priority unspecified results in an update failure.", "For real-time updates.", "For changes that are executed after the response is sent back to the caller." ], @@ -3361,6 +11232,60 @@ "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", + "properties": { + "integerBuckets": { + "description": "Buckets for given integer values should be in strictly ascending order. For example, if values supplied are (1,5,10,100), the following facet buckets will be formed {<1, [1,5), [5-10), [10-100), >=100}.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "IntegerOperatorOptions": { "description": "Used to provide a search operator for integer properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "IntegerOperatorOptions", @@ -3381,9 +11306,13 @@ "type": "object" }, "IntegerPropertyOptions": { - "description": "Options for integer properties.", + "description": "The options for integer properties.", "id": "IntegerPropertyOptions", "properties": { + "integerFacetingOptions": { + "$ref": "IntegerFacetingOptions", + "description": "If set, describes integer faceting options for the given integer property. The corresponding integer property should be marked isFacetable." + }, "maximumValue": { "description": "The maximum value of the property. The minimum and maximum values for the property are used to rank results according to the ordered ranking. Indexing requests with values greater than the maximum are accepted and ranked with the same weight as items indexed with the maximum value.", "format": "int64", @@ -3429,6 +11358,46 @@ }, "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", @@ -3458,6 +11427,33 @@ }, "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", @@ -3471,7 +11467,7 @@ "description": "Item content to be indexed and made text searchable." }, "itemType": { - "description": "Type for this item.", + "description": "The type for this item.", "enum": [ "UNSPECIFIED", "CONTENT_ITEM", @@ -3488,10 +11484,10 @@ }, "metadata": { "$ref": "ItemMetadata", - "description": "Metadata information." + "description": "The metadata information." }, "name": { - "description": "Name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", + "description": "The name of the Item. Format: datasources/{source_id}/items/{item_id} This is a required field. The maximum length is 1536 characters.", "type": "string" }, "payload": { @@ -3520,7 +11516,7 @@ "type": "object" }, "ItemAcl": { - "description": "Access control list information for the item. For more information see [Map ACLs](/cloud-search/docs/guides/acls).", + "description": "Access control list information for the item. For more information see [Map ACLs](https://developers.google.com/cloud-search/docs/guides/acls).", "id": "ItemAcl", "properties": { "aclInheritanceType": { @@ -3547,7 +11543,7 @@ "type": "array" }, "inheritAclFrom": { - "description": "Name of the item to inherit the Access Permission List (ACL) from. Note: ACL inheritance *only* provides access permissions to child items and does not define structural relationships, nor does it provide convenient ways to delete large groups of items. Deleting an ACL parent from the index only alters the access permissions of child items that reference the parent in the inheritAclFrom field. The item is still in the index, but may not visible in search results. By contrast, deletion of a container item also deletes all items that reference the container via the containerName field. The maximum length for this field is 1536 characters.", + "description": "The name of the item to inherit the Access Permission List (ACL) from. Note: ACL inheritance *only* provides access permissions to child items and does not define structural relationships, nor does it provide convenient ways to delete large groups of items. Deleting an ACL parent from the index only alters the access permissions of child items that reference the parent in the inheritAclFrom field. The item is still in the index, but may not visible in search results. By contrast, deletion of a container item also deletes all items that reference the container via the containerName field. The maximum length for this field is 1536 characters.", "type": "string" }, "owners": { @@ -3706,6 +11702,12 @@ }, "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", @@ -3760,6 +11762,423 @@ }, "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": { @@ -3874,6 +12293,19 @@ }, "type": "object" }, + "MatchInfo": { + "id": "MatchInfo", + "properties": { + "matchingImageReferenceKey": { + "description": "Reference keys for image attachments that matches search query.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "MatchRange": { "description": "Matched range of a snippet [start, end).", "id": "MatchRange", @@ -3891,6 +12323,31 @@ }, "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", @@ -3902,6 +12359,749 @@ }, "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", @@ -3964,12 +13164,28 @@ }, "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", "properties": { "displayName": { - "description": "The read-only display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.", + "description": "The read-only display name formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header.", "type": "string" } }, @@ -4013,12 +13229,22 @@ }, "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", "properties": { "name": { - "description": "Name for the object, which then defines its type. Item indexing requests should set the objectType field equal to this value. For example, if *name* is *Document*, then indexing requests for items of type Document should set objectType equal to *Document*. Each object definition must be uniquely named within a schema. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.", + "description": "The name for the object, which then defines its type. Item indexing requests should set the objectType field equal to this value. For example, if *name* is *Document*, then indexing requests for items of type Document should set objectType equal to *Document*. Each object definition must be uniquely named within a schema. The name must start with a letter and can only contain letters (A-Z, a-z) or numbers (0-9). The maximum length is 256 characters.", "type": "string" }, "options": { @@ -4059,17 +13285,24 @@ "properties": { "displayOptions": { "$ref": "ObjectDisplayOptions", - "description": "Options that determine how the object is displayed in the Cloud Search results page." + "description": "The options that determine how the object is displayed in the Cloud Search results page." }, "freshnessOptions": { "$ref": "FreshnessOptions", "description": "The freshness options for an object." + }, + "suggestionFilteringOperators": { + "description": "Operators that can be used to filter suggestions. For Suggest API, only operators mentioned here will be honored in the FilterOptions. Only TEXT and ENUM operators are supported. NOTE: \"objecttype\", \"type\" and \"mimetype\" are already supported. This property is to configure schema specific operators. Even though this is an array, only one operator can be specified. This is an array for future extensibility. Operators mapping to multiple properties within the same object are not supported. If the operator spans across different object types, this option has to be set once for each object definition.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "ObjectPropertyOptions": { - "description": "Options for object properties.", + "description": "The options for object properties.", "id": "ObjectPropertyOptions", "properties": { "subobjectProperties": { @@ -4095,6 +13328,91 @@ }, "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", @@ -4130,6 +13448,153 @@ }, "type": "object" }, + "OsVersion": { + "id": "OsVersion", + "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" + } + }, + "type": "object" + }, "PeopleSuggestion": { "description": "This field contains information about the person being suggested.", "id": "PeopleSuggestion", @@ -4153,7 +13618,7 @@ "type": "array" }, "name": { - "description": "The resource name of the person to provide information about. See People.get from Google People API.", + "description": "The resource name of the person to provide information about. See [`People.get`](https://developers.google.com/people/api/rest/v1/people/get) from the Google People API.", "type": "string" }, "obfuscatedId": { @@ -4167,6 +13632,13 @@ }, "type": "array" }, + "phoneNumbers": { + "description": "The person's phone numbers", + "items": { + "$ref": "PhoneNumber" + }, + "type": "array" + }, "photos": { "description": "A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.", "items": { @@ -4177,6 +13649,68 @@ }, "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", + "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.", + "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.", + "type": "string" + }, + "phoneNumber": { + "description": "The phone number to dial for this meeting space in E.164 format. Full phone number with a leading '+' character.", + "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.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "PhoneNumber": { + "description": "A person's Phone Number", + "id": "PhoneNumber", + "properties": { + "phoneNumber": { + "description": "The phone number of the person.", + "type": "string" + }, + "type": { + "enum": [ + "OTHER", + "MOBILE", + "OFFICE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "Photo": { "description": "A person's photo.", "id": "Photo", @@ -4188,11 +13722,21 @@ }, "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": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -4245,6 +13789,116 @@ }, "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", @@ -4255,7 +13909,7 @@ }, "gsuitePrincipal": { "$ref": "GSuitePrincipal", - "description": "This principal is a GSuite user, group or domain." + "description": "This principal is a Google Workspace user, group or domain." }, "userResourceName": { "description": "This principal is a user identified using an external identity. The name field must specify the user resource name with this format: identitysources/{source_id}/users/{ID}", @@ -4264,6 +13918,222 @@ }, "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": { @@ -4286,7 +14156,7 @@ "type": "string" }, "errorMessage": { - "description": "Description of the error.", + "description": "The description of the error.", "type": "string" }, "fieldViolations": { @@ -4311,7 +14181,7 @@ }, "displayOptions": { "$ref": "PropertyDisplayOptions", - "description": "Options that determine how the property is displayed in the Cloud Search results page if it is specified to be displayed in the object's display options ." + "description": "The options that determine how the property is displayed in the Cloud Search results page if it's specified to be displayed in the object's display options." }, "doublePropertyOptions": { "$ref": "DoublePropertyOptions" @@ -4326,7 +14196,7 @@ "$ref": "IntegerPropertyOptions" }, "isFacetable": { - "description": "Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for Boolean, Enum, and Text properties.", + "description": "Indicates that the property can be used for generating facets. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, enum, integer, and text properties.", "type": "boolean" }, "isRepeatable": { @@ -4338,7 +14208,7 @@ "type": "boolean" }, "isSortable": { - "description": "Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for Boolean, Date, Double, Integer, and Timestamp properties.", + "description": "Indicates that the property can be used for sorting. Cannot be true for properties that are repeatable. Cannot be true for properties whose type is object. IsReturnable must be true to set this option. Only supported for boolean, date, double, integer, and timestamp properties.", "type": "boolean" }, "isSuggestable": { @@ -4346,7 +14216,7 @@ "type": "boolean" }, "isWildcardSearchable": { - "description": "Indicates that users can perform wildcard search for this property. Only supported for Text properties. IsReturnable must be true to set this option. In a given datasource maximum of 5 properties can be marked as is_wildcard_searchable.", + "description": "Indicates that users can perform wildcard search for this property. Only supported for Text properties. IsReturnable must be true to set this option. In a given datasource maximum of 5 properties can be marked as is_wildcard_searchable. For more details, see [Define object properties](https://developers.google.com/cloud-search/docs/guides/schema-guide#properties)", "type": "boolean" }, "name": { @@ -4376,6 +14246,42 @@ }, "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", @@ -4385,7 +14291,7 @@ "type": "string" }, "metadataHash": { - "description": "Metadata hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.", + "description": "The metadata hash of the item according to the repository. If specified, this is used to determine how to modify this item's status. Setting this field and the type field results in argument error. The maximum length is 2048 characters.", "type": "string" }, "payload": { @@ -4394,7 +14300,7 @@ "type": "string" }, "queue": { - "description": "Queue to which this item belongs to. The default queue is chosen if this field is not specified. The maximum length is 512 characters.", + "description": "Queue to which this item belongs. The `default` queue is chosen if this field is not specified. The maximum length is 512 characters.", "type": "string" }, "repositoryError": { @@ -4430,7 +14336,7 @@ "id": "PushItemRequest", "properties": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -4585,7 +14491,7 @@ "type": "string" }, "objectType": { - "description": "Name of the object corresponding to the operator. This field is only filled for schema-specific operators, and is unset for common operators.", + "description": "The name of the object corresponding to the operator. This field is only filled for schema-specific operators, and is unset for common operators.", "type": "string" }, "operatorName": { @@ -4593,7 +14499,7 @@ "type": "string" }, "type": { - "description": "Type of the operator.", + "description": "The type of the operator.", "enum": [ "UNKNOWN", "INTEGER", @@ -4642,7 +14548,7 @@ }, "source": { "$ref": "Source", - "description": "Name of the source" + "description": "The name of the source" } }, "type": "object" @@ -4653,6 +14559,353 @@ "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", + "properties": { + "annotations": { + "description": "Output only. Snapshot of the annotations of the quoted message.", + "items": { + "$ref": "Annotation" + }, + "readOnly": true, + "type": "array" + }, + "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" + } + }, + "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" + } + }, + "type": "object" + }, "RepositoryError": { "description": "Errors when the connector is communicating to the source repository.", "id": "RepositoryError", @@ -4667,7 +14920,7 @@ "type": "integer" }, "type": { - "description": "Type of error.", + "description": "The type of error.", "enum": [ "UNKNOWN", "NETWORK_ERROR", @@ -4697,6 +14950,20 @@ }, "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", @@ -4706,7 +14973,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. The suggest API does not use this parameter. Instead, suggest autocompletes only based on characters in the query.", + "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.", "type": "string" }, "searchApplicationId": { @@ -4720,6 +14987,31 @@ }, "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": { @@ -4730,6 +15022,26 @@ }, "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", @@ -4746,15 +15058,14 @@ "id": "RestrictItem", "properties": { "driveFollowUpRestrict": { - "$ref": "DriveFollowUpRestrict", - "description": "LINT.ThenChange(//depot/google3/java/com/google/apps/search/quality/itemsuggest/utils/SubtypeRerankingUtils.java)" + "$ref": "DriveFollowUpRestrict" }, "driveLocationRestrict": { "$ref": "DriveLocationRestrict" }, "driveMimeTypeRestrict": { "$ref": "DriveMimeTypeRestrict", - "description": "LINT.IfChange Drive Types." + "description": "Drive Types." }, "driveTimeSpanRestrict": { "$ref": "DriveTimeSpanRestrict" @@ -4864,6 +15175,139 @@ }, "type": "object" }, + "RoomRenameMetadata": { + "id": "RoomRenameMetadata", + "properties": { + "newName": { + "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" + }, + "SafeUrlProto": { + "description": "Message containing a string that is safe to use in URL contexts in DOM APIs and HTML documents, where the URL context does not refer to a resource that loads code.", + "id": "SafeUrlProto", + "properties": { + "privateDoNotAccessOrElseSafeUrlWrappedValue": { + "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" + }, "Schema": { "description": "The schema definition for a data source.", "id": "Schema", @@ -4931,7 +15375,7 @@ "type": "boolean" }, "name": { - "description": "Name of the Search Application. Format: searchapplications/{application_id}.", + "description": "The name of the Search Application. Format: searchapplications/{application_id}.", "type": "string" }, "operationIds": { @@ -4970,7 +15414,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." + "description": "The date for which query stats were calculated. Stats calculated on the next day close to midnight are returned." }, "queryCountByStatus": { "items": { @@ -4986,7 +15430,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." + "description": "The date for which session stats were calculated. Stats are calculated on the following day, close to midnight PST, and then returned." }, "searchSessionsCount": { "description": "The count of search sessions on the day", @@ -5001,7 +15445,7 @@ "properties": { "date": { "$ref": "Date", - "description": "Date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." + "description": "The date for which session stats were calculated. Stats calculated on the next day close to midnight are returned." }, "oneDayActiveUsersCount": { "description": "The count of unique active users in the past one day", @@ -5219,6 +15663,339 @@ }, "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": { @@ -5249,6 +16026,133 @@ }, "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", @@ -5267,11 +16171,40 @@ }, "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": { + "type": "string" + } + }, + "type": "object" + }, "SortOptions": { "id": "SortOptions", "properties": { "operatorName": { - "description": "Name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.", + "description": "The name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.", "type": "string" }, "sortOrder": { @@ -5419,50 +16352,6 @@ }, "type": "object" }, - "SpaceInfo": { - "description": "Defines the representation of a single matching space.", - "id": "SpaceInfo", - "properties": { - "avatarInfo": { - "$ref": "AvatarInfo" - }, - "avatarUrl": { - "type": "string" - }, - "description": { - "type": "string" - }, - "groupId": { - "$ref": "GroupId" - }, - "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" - }, "SpellResult": { "id": "SpellResult", "properties": { @@ -5473,12 +16362,29 @@ }, "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", + "type": "string" + } + }, + "type": "object" + }, "StartUploadItemRequest": { "description": "Start upload file request.", "id": "StartUploadItemRequest", "properties": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -5515,6 +16421,101 @@ }, "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", @@ -5599,12 +16600,193 @@ }, "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", "properties": { "exactMatchWithOperator": { - "description": "If true, the text value is tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is \"genre\" and the value is \"science-fiction\" the query restrictions \"genre:science\" and \"genre:fiction\" doesn't match the item; \"genre:science-fiction\" does. Value matching is case-sensitive and does not remove special characters. If false, the text is tokenized. For example, if the value is \"science-fiction\" the queries \"genre:science\" and \"genre:fiction\" matches the item.", + "description": "If true, the text value is tokenized as one atomic value in operator searches and facet matches. For example, if the operator name is \"genre\" and the value is \"science-fiction\" the query restrictions \"genre:science\" and \"genre:fiction\" doesn't match the item; \"genre:science-fiction\" does. Text value matching is case-sensitive and does not remove special characters. If false, the text is tokenized. For example, if the value is \"science-fiction\" the queries \"genre:science\" and \"genre:fiction\" matches the item.", "type": "boolean" }, "operatorName": { @@ -5614,8 +16796,17 @@ }, "type": "object" }, + "TextParagraph": { + "id": "TextParagraph", + "properties": { + "text": { + "type": "string" + } + }, + "type": "object" + }, "TextPropertyOptions": { - "description": "Options for text properties.", + "description": "The options for text properties.", "id": "TextPropertyOptions", "properties": { "operatorOptions": { @@ -5643,6 +16834,79 @@ }, "type": "object" }, + "ThreadKeySet": { + "description": "The ThreadKey was set on some (subset of the) messages in this thread.", + "id": "ThreadKeySet", + "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", + "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", + "type": "string" + }, + "topicStateUpdate": { + "$ref": "TopicStateUpdate" + } + }, + "type": "object" + }, "TimestampOperatorOptions": { "description": "Used to provide a search operator for timestamp properties. This is optional. Search operators let users restrict the query to specific fields relevant to the type of item being searched.", "id": "TimestampOperatorOptions", @@ -5663,7 +16927,7 @@ "type": "object" }, "TimestampPropertyOptions": { - "description": "Options for timestamp properties.", + "description": "The options for timestamp properties.", "id": "TimestampPropertyOptions", "properties": { "operatorOptions": { @@ -5687,6 +16951,349 @@ }, "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", @@ -5698,6 +17305,21 @@ }, "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": { @@ -5732,7 +17354,7 @@ "id": "UnreserveItemsRequest", "properties": { "connectorName": { - "description": "Name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", + "description": "The name of connector making this call. Format: datasources/{source_id}/connectors/{ID}", "type": "string" }, "debugOptions": { @@ -5740,12 +17362,66 @@ "description": "Common debug options." }, "queue": { - "description": "Name of a queue to unreserve items from.", + "description": "The name of a queue to unreserve items from.", "type": "string" } }, "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": { @@ -5755,6 +17431,37 @@ }, "source": { "$ref": "DataSource" + }, + "updateMask": { + "description": "Only applies to [`settings.datasources.patch`](https://developers.google.com/cloud-search/docs/reference/rest/v1/settings.datasources/patch). Update mask to control which fields to update. Example field paths: `name`, `displayName`. * If `update_mask` is non-empty, then only the fields specified in the `update_mask` are updated. * If you specify a field in the `update_mask`, but don't specify its value in the source, that field is cleared. * If the `update_mask` is not present or empty or has the value `*`, then all fields are updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "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" @@ -5777,12 +17484,319 @@ }, "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", "properties": { "name": { - "description": "Name of the content reference. The maximum length is 2048 characters.", + "description": "The name of the content reference. The maximum length is 2048 characters.", + "type": "string" + } + }, + "type": "object" + }, + "UploadMetadata": { + "description": "Annotation metadata for user Upload artifacts.", + "id": "UploadMetadata", + "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" } }, @@ -5792,6 +17806,10 @@ "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" @@ -5815,6 +17833,120 @@ }, "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" + } + }, + "type": "object" + }, "VPCSettings": { "id": "VPCSettings", "properties": { @@ -5867,6 +17999,24 @@ }, "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", @@ -5878,6 +18028,264 @@ } }, "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 83d59bf513..e1a0dde804 100644 --- a/etc/api/cloudshell/v1/cloudshell-api.json +++ b/etc/api/cloudshell/v1/cloudshell-api.json @@ -374,7 +374,7 @@ } } }, - "revision": "20220301", + "revision": "20230109", "rootUrl": "https://cloudshell.googleapis.com/", "schemas": { "AddPublicKeyMetadata": { @@ -456,7 +456,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/cloudsupport/v2beta/cloudsupport-api.json b/etc/api/cloudsupport/v2beta/cloudsupport-api.json index 90020b9d37..7a72cc2e88 100644 --- a/etc/api/cloudsupport/v2beta/cloudsupport-api.json +++ b/etc/api/cloudsupport/v2beta/cloudsupport-api.json @@ -108,7 +108,7 @@ "attachments": { "methods": { "create": { - "description": "Create a file attachment on a case or Cloud resource.", + "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", @@ -117,7 +117,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the case to which attachment should be attached.", + "description": "Required. The resource name of the case (or case parent) to which the attachment should be attached.", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -204,7 +204,7 @@ ] }, "create": { - "description": "Create a new case and associate it with the given Cloud resource.", + "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.", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", "httpMethod": "POST", "id": "cloudsupport.cases.create", @@ -285,7 +285,7 @@ ] }, "list": { - "description": "Retrieve all cases under the specified parent.", + "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`.", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases", "httpMethod": "GET", "id": "cloudsupport.cases.list", @@ -294,7 +294,7 @@ ], "parameters": { "filter": { - "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. Filter strings can use the following fields: - state (Accepted values: OPEN or CLOSED) - severity (Accepted values: S0, S1, S2, S3, or S4) - creator.email with the operators equals (=) and AND. Additionally, a global restriction (with no operator) can be used to search across displayName, description, and comments (e.g. \"my search\").", + "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)`", "location": "query", "type": "string" }, @@ -326,7 +326,7 @@ ] }, "patch": { - "description": "Update the specified case. Only a subset of fields (display_name, description, time_zone, subscriber_email_addresses, related_resources, severity, priority, primary_contact, and labels) can be updated.", + "description": "Update the specified case. Only a subset of fields can be updated.", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}", "httpMethod": "PATCH", "id": "cloudsupport.cases.patch", @@ -342,7 +342,7 @@ "type": "string" }, "updateMask": { - "description": "A field that represents attributes of a 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 will be 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 will be updated to empty.", + "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.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -378,7 +378,7 @@ "type": "string" }, "query": { - "description": "An expression written in the Cloud filter language. Filter strings can use the following fields: - organization (A name of the form organizations/) - project (A name of the form projects/) - customer (A name of the form customers/) - state (Accepted values: OPEN or CLOSED) - severity (Accepted values: S0, S1, S2, S3, or S4) - creator.email with the operators equals (=) and AND. Additionally, a global restriction (with no key/operator) can be used to search across display_name, description, and comments (e.g. \"my search\"). One of organization, project, or customer field must be specified.", + "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)`", "location": "query", "type": "string" } @@ -436,7 +436,7 @@ "comments": { "methods": { "create": { - "description": "Add a new comment to the specified Case.", + "description": "Add a new comment to the specified Case. The comment object must have the following fields set: body.", "flatPath": "v2beta/{v2betaId}/{v2betaId1}/cases/{casesId}/comments", "httpMethod": "POST", "id": "cloudsupport.cases.comments.create", @@ -533,7 +533,7 @@ "useMediaDownloadService": true }, "upload": { - "description": "Create a file attachment on a case or Cloud resource.", + "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}/cases/{casesId}/attachments", "httpMethod": "POST", "id": "cloudsupport.media.upload", @@ -553,7 +553,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the case to which attachment should be attached.", + "description": "Required. The resource name of the case (or case parent) to which the attachment should be attached.", "location": "path", "pattern": "^[^/]+/[^/]+/cases/[^/]+$", "required": true, @@ -575,7 +575,7 @@ } } }, - "revision": "20220305", + "revision": "20230121", "rootUrl": "https://cloudsupport.googleapis.com/", "schemas": { "Actor": { @@ -696,6 +696,10 @@ "description": "Whether the case is currently escalated.", "type": "boolean" }, + "languageCode": { + "description": "The language the user has requested to receive support in. This should be a BCP 47 language code (e.g., `\"en\"`, `\"zh-CN\"`, `\"zh-TW\"`, `\"ja\"`, `\"ko\"`). If no language or an unsupported language is specified, this field defaults to English (en). Language selection during case creation may affect your available support options. For a list of supported languages and their support working hours, see: https://cloud.google.com/support/docs/language-working-hours", + "type": "string" + }, "name": { "description": "The resource name for the case.", "type": "string" @@ -711,7 +715,7 @@ "P4" ], "enumDescriptions": [ - "Severity is undefined or has not been set yet.", + "Priority is undefined or has not been set yet.", "Extreme impact on a production service. Service is hard down.", "Critical impact on a production service. Service is currently unusable.", "Severe impact on a production service. Service is usable but greatly impaired.", @@ -794,7 +798,7 @@ "type": "string" }, "id": { - "description": "The unique ID for a classification. Must be specified for case creation.", + "description": "The unique ID for a classification. Must be specified for case creation. To retrieve valid classification IDs for case creation, use `caseClassifications.search`.", "type": "string" } }, diff --git a/etc/api/cloudtasks/v2/cloudtasks-api.json b/etc/api/cloudtasks/v2/cloudtasks-api.json index 6cb596cc8d..b9116d1003 100644 --- a/etc/api/cloudtasks/v2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2/cloudtasks-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -267,7 +267,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -454,7 +454,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -482,7 +482,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -685,7 +685,7 @@ } } }, - "revision": "20220212", + "revision": "20230105", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpRequest": { @@ -797,7 +797,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -836,7 +836,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1231,7 +1231,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1346,7 +1346,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json index 2d4f2ba172..0fa878f0cd 100644 --- a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json @@ -105,6 +105,38 @@ }, "protocol": "rest", "resources": { + "api": { + "resources": { + "queue": { + "methods": { + "update": { + "description": "Update queue list by uploading a queue.yaml file. The queue.yaml file is supplied in the request body as a YAML encoded string. This method was added to support gcloud clients versions before 322.0.0. New clients should use CreateQueue instead of this method.", + "flatPath": "api/queue/update", + "httpMethod": "POST", + "id": "cloudtasks.api.queue.update", + "parameterOrder": [], + "parameters": { + "appId": { + "description": "Required. The App ID is supplied as an HTTP parameter. Unlike internal usage of App ID, it does not include a region prefix. Rather, the App ID represents the Project ID against which to make the request.", + "location": "query", + "type": "string" + } + }, + "path": "api/queue/update", + "request": { + "$ref": "HttpBody" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -144,7 +176,7 @@ ], "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).", + "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" }, @@ -273,7 +305,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -466,7 +498,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -494,7 +526,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -544,6 +576,41 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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).", + "flatPath": "v2beta2/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, a random task ID is assigned to the task.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2beta2/{+queue}/tasks/{taskId}:buffer", + "request": { + "$ref": "BufferTaskRequest" + }, + "response": { + "$ref": "BufferTaskResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "cancelLease": { "description": "Cancel a pull task's lease. The worker can use this method to cancel a task's lease by setting its schedule_time to now. This will make the task available to be leased to the next caller of LeaseTasks.", "flatPath": "v2beta2/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks/{tasksId}:cancelLease", @@ -809,7 +876,7 @@ } } }, - "revision": "20220212", + "revision": "20230105", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AcknowledgeTaskRequest": { @@ -847,7 +914,9 @@ "GET", "HEAD", "PUT", - "DELETE" + "DELETE", + "PATCH", + "OPTIONS" ], "enumDescriptions": [ "HTTP method unspecified", @@ -855,7 +924,9 @@ "HTTP GET", "HTTP HEAD", "HTTP PUT", - "HTTP DELETE" + "HTTP DELETE", + "HTTP PATCH", + "HTTP OPTIONS" ], "type": "string" }, @@ -940,7 +1011,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -953,6 +1024,28 @@ }, "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" + }, "CancelLeaseRequest": { "description": "Request message for canceling a lease using CancelLease.", "id": "CancelLeaseRequest", @@ -1005,7 +1098,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1056,6 +1149,164 @@ }, "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." + } + }, + "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. An HTTP request embodies a url, an http method, headers, body and authorization for the http task.", + "id": "HttpRequest", + "properties": { + "body": { + "description": "HTTP request body. A request body is allowed only if the HTTP method is POST, PUT, or PATCH. It is an error to set body on a task with an incompatible HttpMethod.", + "format": "byte", + "type": "string" + }, + "headers": { + "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.", + "type": "object" + }, + "httpMethod": { + "description": "The HTTP method to use for the request. The default is POST.", + "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 an `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." + }, + "url": { + "description": "Required. The full url path that the request will be sent to. This string must begin with either \"http://\" or \"https://\". Some examples are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Tasks will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding. The `Location` header response from a redirect response [`300` - `399`] may be followed. The redirect is not counted as a separate attempt.", + "type": "string" + } + }, + "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 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.", + "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.", + "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 an `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." + } + }, + "type": "object" + }, "LeaseTasksRequest": { "description": "Request message for leasing tasks using LeaseTasks.", "id": "LeaseTasksRequest", @@ -1193,6 +1444,47 @@ }, "type": "object" }, + "OAuthToken": { + "description": "Contains information needed for generating an [OAuth token](https://developers.google.com/identity/protocols/OAuth2). This type of authorization should generally only be used when calling Google APIs hosted on *.googleapis.com.", + "id": "OAuthToken", + "properties": { + "scope": { + "description": "OAuth scope to be used for generating OAuth access token. If not specified, \"https://www.googleapis.com/auth/cloud-platform\" will be used.", + "type": "string" + }, + "serviceAccountEmail": { + "description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OAuth token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account.", + "type": "string" + } + }, + "type": "object" + }, + "OidcToken": { + "description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect). This type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself.", + "id": "OidcToken", + "properties": { + "audience": { + "description": "Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used.", + "type": "string" + }, + "serviceAccountEmail": { + "description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating OIDC token. The service account must be within the same project as the queue. The caller must have iam.serviceAccounts.actAs permission for the service account.", + "type": "string" + } + }, + "type": "object" + }, + "PathOverride": { + "description": "PathOverride. Path message defines path override for HTTP targets.", + "id": "PathOverride", + "properties": { + "path": { + "description": "The URI path (e.g., a/b/c). Default is Empty string.", + "type": "string" + } + }, + "type": "object" + }, "PauseQueueRequest": { "description": "Request message for PauseQueue.", "id": "PauseQueueRequest", @@ -1251,6 +1543,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 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, target types, and others.", "id": "Queue", @@ -1259,6 +1562,10 @@ "$ref": "AppEngineHttpTarget", "description": "App Engine HTTP target. An App Engine queue is a queue that has an AppEngineHttpTarget." }, + "httpTarget": { + "$ref": "HttpTarget", + "description": "An http_target is used to override the target values 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" @@ -1473,7 +1780,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1518,6 +1825,10 @@ "format": "google-datetime", "type": "string" }, + "httpRequest": { + "$ref": "HttpRequest", + "description": "HTTP request that is sent to the task's target. An HTTP task is a task that has HttpRequest set." + }, "name": { "description": "Optionally caller-specified in CreateTask. The task name. The task name must have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_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 task'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. * `TASK_ID` can contain only letters ([A-Za-z]), numbers ([0-9]), hyphens (-), or underscores (_). The maximum length is 500 characters.", "type": "string" @@ -1582,7 +1893,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1604,6 +1915,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, 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.", + "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." + }, + "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.", + "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." + }, + "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": [ + "OverrideMode 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/v2beta3/cloudtasks-api.json b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json index 88792249a8..32b3dfec52 100644 --- a/etc/api/cloudtasks/v2beta3/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -273,7 +273,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -466,7 +466,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -494,7 +494,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/queues/[^/]+$", "required": true, @@ -516,6 +516,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. 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).", + "flatPath": "v2beta3/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, a random task ID is assigned to the task.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v2beta3/{+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": "v2beta3/projects/{projectsId}/locations/{locationsId}/queues/{queuesId}/tasks", @@ -697,7 +732,7 @@ } } }, - "revision": "20220212", + "revision": "20230105", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpQueue": { @@ -820,7 +855,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -833,6 +868,28 @@ }, "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" + }, "CreateTaskRequest": { "description": "Request message for CreateTask.", "id": "CreateTaskRequest", @@ -859,7 +916,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -910,6 +967,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." + } + }, + "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", @@ -965,6 +1075,48 @@ }, "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-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.", + "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.", + "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" + }, + "uriOverride": { + "$ref": "UriOverride", + "description": "URI override. When specified, modifies the execution URI for all the tasks in the queue." + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1083,6 +1235,17 @@ }, "type": "object" }, + "PathOverride": { + "description": "PathOverride. Path message defines path override for HTTP targets.", + "id": "PathOverride", + "properties": { + "path": { + "description": "The URI path (e.g., a/b/c). Default is Empty string.", + "type": "string" + } + }, + "type": "object" + }, "PauseQueueRequest": { "description": "Request message for PauseQueue.", "id": "PauseQueueRequest", @@ -1135,6 +1298,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 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", @@ -1143,6 +1317,10 @@ "$ref": "AppEngineHttpQueue", "description": "AppEngineHttpQueue settings apply only to App Engine tasks in this queue. Http tasks are not affected by this proto." }, + "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" @@ -1336,7 +1514,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1455,7 +1633,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1477,6 +1655,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, 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.", + "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." + }, + "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.", + "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." + }, + "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": [ + "OverrideMode 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/cloudtrace/v1/cloudtrace-api.json b/etc/api/cloudtrace/v1/cloudtrace-api.json index da3090c72f..1a15068cd8 100644 --- a/etc/api/cloudtrace/v1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v1/cloudtrace-api.json @@ -257,11 +257,11 @@ } } }, - "revision": "20220224", + "revision": "20230112", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/cloudtrace/v2/cloudtrace-api.json b/etc/api/cloudtrace/v2/cloudtrace-api.json index 4c5e315655..f949c55855 100644 --- a/etc/api/cloudtrace/v2/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2/cloudtrace-api.json @@ -181,7 +181,7 @@ } } }, - "revision": "20220224", + "revision": "20230112", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Annotation": { @@ -253,7 +253,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -376,7 +376,7 @@ }, "displayName": { "$ref": "TruncatableString", - "description": "Required. A description of the span's operation (up to 128 bytes). Cloud Trace displays the description in the Cloud Console. For example, the display name can be a qualified method name or a file name and a line number where the operation is called. A best practice is to use the same display name within an application and at the same call point. This makes it easier to correlate spans in different traces." + "description": "Required. A description of the span's operation (up to 128 bytes). Cloud Trace displays the description in the Cloud console. For example, the display name can be a qualified method name or a file name and a line number where the operation is called. A best practice is to use the same display name within an application and at the same call point. This makes it easier to correlate spans in different traces." }, "endTime": { "description": "Required. The end time of the span. On the client side, this is the time kept by the local machine where the span execution ends. On the server side, this is the time when the server application handler stops running.", diff --git a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json index 2ec9481f5f..74c237924a 100644 --- a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json @@ -273,11 +273,11 @@ } } }, - "revision": "20220224", + "revision": "20230112", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -305,7 +305,7 @@ "id": "OutputConfig", "properties": { "destination": { - "description": "The destination for writing trace data. Currently only BigQuery is supported. E.g.: \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"", + "description": "The destination for writing trace data. Supported formats include: \"bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]\"", "type": "string" } }, diff --git a/etc/api/composer/v1/composer-api.json b/etc/api/composer/v1/composer-api.json index 57ef1b3eae..fbe161f816 100644 --- a/etc/api/composer/v1/composer-api.json +++ b/etc/api/composer/v1/composer-api.json @@ -225,6 +225,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "loadSnapshot": { + "description": "Loads a snapshot of a Cloud Composer environment. As a result of this operation, a snapshot of environment's specified in LoadSnapshotRequest is loaded into the environment.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:loadSnapshot", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.loadSnapshot", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the target environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:loadSnapshot", + "request": { + "$ref": "LoadSnapshotRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Update an environment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -242,7 +270,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of numpy, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.numpy\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and numpy will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current `WebServerNetworkAccessControl`. * `config.databaseConfig.machineType` * 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. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.databaseConfig.machineType` * 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. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of numpy, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.numpy\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and numpy will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current `WebServerNetworkAccessControl`. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.databaseConfig.machineType` * 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. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -258,6 +286,34 @@ "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", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.saveSnapshot", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the source environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+environment}:saveSnapshot", + "request": { + "$ref": "SaveSnapshotRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -406,7 +462,7 @@ } } }, - "revision": "20220224", + "revision": "20230107", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AllowedIpRange": { @@ -467,19 +523,34 @@ }, "type": "object" }, + "CidrBlock": { + "description": "CIDR block with an optional name.", + "id": "CidrBlock", + "properties": { + "cidrBlock": { + "description": "CIDR block that must be specified in CIDR notation.", + "type": "string" + }, + "displayName": { + "description": "User-defined name that identifies the CIDR block.", + "type": "string" + } + }, + "type": "object" + }, "DatabaseConfig": { - "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.", "id": "DatabaseConfig", "properties": { "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.", + "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" } }, "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -501,7 +572,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -587,7 +658,7 @@ }, "databaseConfig": { "$ref": "DatabaseConfig", - "description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*." + "description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software." }, "encryptionConfig": { "$ref": "EncryptionConfig", @@ -617,6 +688,10 @@ "$ref": "MaintenanceWindow", "description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window will be applied. The default value is Saturday and Sunday 00-06 GMT." }, + "masterAuthorizedNetworksConfig": { + "$ref": "MasterAuthorizedNetworksConfig", + "description": "Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled." + }, "nodeConfig": { "$ref": "NodeConfig", "description": "The configuration used for the Kubernetes Engine cluster." @@ -630,6 +705,10 @@ "$ref": "PrivateEnvironmentConfig", "description": "The configuration used for the Private IP Cloud Composer environment." }, + "recoveryConfig": { + "$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." + }, "softwareConfig": { "$ref": "SoftwareConfig", "description": "The configuration settings for software inside the environment." @@ -685,7 +764,7 @@ "type": "boolean" }, "imageVersionId": { - "description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b(.c)\"", + "description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b.c\"", "type": "string" }, "isDefault": { @@ -764,6 +843,39 @@ }, "type": "object" }, + "LoadSnapshotRequest": { + "description": "Request to load a snapshot into a Cloud Composer environment.", + "id": "LoadSnapshotRequest", + "properties": { + "skipAirflowOverridesSetting": { + "description": "Whether or not to skip setting Airflow overrides when loading the environment's state.", + "type": "boolean" + }, + "skipEnvironmentVariablesSetting": { + "description": "Whether or not to skip setting environment variables when loading the environment's state.", + "type": "boolean" + }, + "skipGcsDataCopying": { + "description": "Whether or not to skip copying Cloud Storage data when loading the environment's state.", + "type": "boolean" + }, + "skipPypiPackagesInstallation": { + "description": "Whether or not to skip installing Pypi packages when loading the environment's state.", + "type": "boolean" + }, + "snapshotPath": { + "description": "A Cloud Storage path to a snapshot to load, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\".", + "type": "string" + } + }, + "type": "object" + }, + "LoadSnapshotResponse": { + "description": "Response to LoadSnapshotRequest.", + "id": "LoadSnapshotResponse", + "properties": {}, + "type": "object" + }, "MaintenanceWindow": { "description": "The configuration settings for Cloud Composer maintenance window. The following example: ``` { \"startTime\":\"2019-08-01T01:00:00Z\" \"endTime\":\"2019-08-01T07:00:00Z\" \"recurrence\":\"FREQ=WEEKLY;BYDAY=TU,WE\" } ``` would define a maintenance window between 01 and 07 hours UTC during each Tuesday and Wednesday.", "id": "MaintenanceWindow", @@ -785,15 +897,58 @@ }, "type": "object" }, + "MasterAuthorizedNetworksConfig": { + "description": "Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.", + "id": "MasterAuthorizedNetworksConfig", + "properties": { + "cidrBlocks": { + "description": "Up to 50 external networks that could access Kubernetes master through HTTPS.", + "items": { + "$ref": "CidrBlock" + }, + "type": "array" + }, + "enabled": { + "description": "Whether or not master authorized networks feature is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "NetworkingConfig": { + "description": "Configuration options for networking connections in the Composer 2 environment.", + "id": "NetworkingConfig", + "properties": { + "connectionType": { + "description": "Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment.", + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "VPC_PEERING", + "PRIVATE_SERVICE_CONNECT" + ], + "enumDescriptions": [ + "No specific connection type was requested, so the environment uses the default value corresponding to the rest of its configuration.", + "Requests the use of VPC peerings for connecting the Customer and Tenant projects.", + "Requests the use of Private Service Connect for connecting the Customer and Tenant projects." + ], + "type": "string" + } + }, + "type": "object" + }, "NodeConfig": { "description": "The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.", "id": "NodeConfig", "properties": { "diskSizeGb": { - "description": "Optional. The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "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", "type": "integer" }, + "enableIpMasqAgent": { + "description": "Optional. Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent", + "type": "boolean" + }, "ipAllocationPolicy": { "$ref": "IPAllocationPolicy", "description": "Optional. The configuration for controlling how IPs are allocated in the GKE cluster." @@ -982,6 +1137,14 @@ "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" }, + "enablePrivatelyUsedPublicIps": { + "description": "Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`.", + "type": "boolean" + }, + "networkingConfig": { + "$ref": "NetworkingConfig", + "description": "Optional. Configuration for the network connections configuration in the environment." + }, "privateClusterConfig": { "$ref": "PrivateClusterConfig", "description": "Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment." @@ -998,6 +1161,62 @@ }, "type": "object" }, + "RecoveryConfig": { + "description": "The Recovery settings of an environment.", + "id": "RecoveryConfig", + "properties": { + "scheduledSnapshotsConfig": { + "$ref": "ScheduledSnapshotsConfig", + "description": "Optional. The configuration for scheduled snapshot creation mechanism." + } + }, + "type": "object" + }, + "SaveSnapshotRequest": { + "description": "Request to create a snapshot of a Cloud Composer environment.", + "id": "SaveSnapshotRequest", + "properties": { + "snapshotLocation": { + "description": "Location in a Cloud Storage where the snapshot is going to be stored, e.g.: \"gs://my-bucket/snapshots\".", + "type": "string" + } + }, + "type": "object" + }, + "SaveSnapshotResponse": { + "description": "Response to SaveSnapshotRequest.", + "id": "SaveSnapshotResponse", + "properties": { + "snapshotPath": { + "description": "The fully-resolved Cloud Storage path of the created snapshot, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\". This field is populated only if the snapshot creation was successful.", + "type": "string" + } + }, + "type": "object" + }, + "ScheduledSnapshotsConfig": { + "description": "The configuration for scheduled snapshot creation mechanism.", + "id": "ScheduledSnapshotsConfig", + "properties": { + "enabled": { + "description": "Optional. Whether scheduled snapshots creation is enabled.", + "type": "boolean" + }, + "snapshotCreationSchedule": { + "description": "Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution.", + "type": "string" + }, + "snapshotLocation": { + "description": "Optional. The Cloud Storage location for storing automatically created snapshots.", + "type": "string" + }, + "timeZone": { + "description": "Optional. Time zone that sets the context to interpret snapshot_creation_schedule.", + "type": "string" + } + }, + "type": "object" + }, "SchedulerResource": { "description": "Configuration for resources used by Airflow schedulers.", "id": "SchedulerResource", @@ -1044,7 +1263,7 @@ "type": "object" }, "imageVersion": { - "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+\\.[0-9]+\\.[0-9]+|latest)-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the version is a [semantic version](https://semver.org) or `latest`. When the patch version is omitted, the current Cloud Composer patch version is selected. When `latest` is provided instead of an explicit version number, the server replaces `latest` with the current Cloud Composer version and stores that version number in the same field. The portion of the image version that follows *airflow-* is an official Apache Airflow repository [release name](https://github.com/apache/incubator-airflow/releases). See also [Version List](/composer/docs/concepts/versioning/composer-versions).", + "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", "type": "string" }, "pypiPackages": { diff --git a/etc/api/composer/v1beta1/composer-api.json b/etc/api/composer/v1beta1/composer-api.json index b8c35b1748..0847330f0f 100644 --- a/etc/api/composer/v1beta1/composer-api.json +++ b/etc/api/composer/v1beta1/composer-api.json @@ -253,6 +253,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "loadSnapshot": { + "description": "Loads a snapshot of a Cloud Composer environment. As a result of this operation, a snapshot of environment's specified in LoadSnapshotRequest is loaded into the environment.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:loadSnapshot", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.loadSnapshot", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the target environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:loadSnapshot", + "request": { + "$ref": "LoadSnapshotRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Update an environment.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}", @@ -270,7 +298,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of argparse, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.argparse\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and argparse will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current WebServerNetworkAccessControl. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables. * `config.softwareConfig.imageVersion` * Upgrade the version of the environment in-place. Refer to `SoftwareConfig.image_version` for information on how to format the new image version. Additionally, the new image version cannot effect a version downgrade and must match the current image version's Composer major version and Airflow major and minor versions. Consult the [Cloud Composer Version List](https://cloud.google.com/composer/docs/concepts/versioning/composer-versions) for valid values. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.databaseConfig.machineType` * 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. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.maintenanceWindow` * Maintenance window during which Cloud Composer components may be under maintenance. * `config.workloadsConfig` * The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. * `config.environmentSize` * The size of the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", + "description": "Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of argparse, the `updateMask` parameter would include the following two `paths` values: \"config.softwareConfig.pypiPackages.scikit-learn\" and \"config.softwareConfig.pypiPackages.argparse\". The included patch environment would specify the scikit-learn version as follows: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"scikit-learn\":\"==0.19.0\" } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and argparse will be unaffected. Only one update type may be included in a single request's `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels \"label1\" and \"label2\" while clearing \"label3\" (assuming it already exists), one can provide the paths \"labels.label1\", \"labels.label2\", and \"labels.label3\" and populate the patch environment as follows: { \"labels\":{ \"label1\":\"new-label1-value\" \"label2\":\"new-label2-value\" } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field's path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path \"config.softwareConfig.pypiPackages\", and the patch environment would be the following: { \"config\":{ \"softwareConfig\":{ \"pypiPackages\":{ \"botocore\":\"==1.7.14\" } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerNetworkAccessControl` * Replace the environment's current WebServerNetworkAccessControl. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. * `config.softwareConfig.imageVersion` * Upgrade the version of the environment in-place. Refer to `SoftwareConfig.image_version` for information on how to format the new image version. Additionally, the new image version cannot effect a version downgrade, and must match the current image version's Composer and Airflow major versions. Consult the [Cloud Composer version list](/composer/docs/concepts/versioning/composer-versions) for valid values. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*. * `config.softwareConfig.cloudDataLineageIntegration` * Configuration for Cloud Data Lineage integration. * `config.databaseConfig.machineType` * 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. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. * `config.maintenanceWindow` * Maintenance window during which Cloud Composer components may be under maintenance. * `config.workloadsConfig` * The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer. * `config.environmentSize` * The size of the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -314,6 +342,34 @@ "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}:saveSnapshot", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.saveSnapshot", + "parameterOrder": [ + "environment" + ], + "parameters": { + "environment": { + "description": "The resource name of the source environment in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+environment}:saveSnapshot", + "request": { + "$ref": "SaveSnapshotRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -462,7 +518,7 @@ } } }, - "revision": "20220224", + "revision": "20230107", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AllowedIpRange": { @@ -485,7 +541,7 @@ "id": "CheckUpgradeRequest", "properties": { "imageVersion": { - "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+\\.[0-9]+\\.[0-9]+|latest)-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the version is a [semantic version](https://semver.org) or `latest`. When the patch version is omitted, the current Cloud Composer patch version is selected. When `latest` is provided instead of an explicit version number, the server replaces `latest` with the current Cloud Composer version and stores that version number in the same field. The portion of the image version that follows `airflow-` is an official Apache Airflow repository [release name](https://github.com/apache/incubator-airflow/releases). See also [Version List] (/composer/docs/concepts/versioning/composer-versions).", + "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", "type": "string" } }, @@ -535,33 +591,44 @@ "type": "object" }, "CidrBlock": { - "description": "CidrBlock contains an optional name and one CIDR block.", + "description": "CIDR block with an optional name.", "id": "CidrBlock", "properties": { "cidrBlock": { - "description": "cidr_block must be specified in CIDR notation.", + "description": "CIDR block that must be specified in CIDR notation.", "type": "string" }, "displayName": { - "description": "display_name is a field for users to identify CIDR blocks.", + "description": "User-defined name that identifies the CIDR block.", "type": "string" } }, "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" + }, "DatabaseConfig": { - "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.", "id": "DatabaseConfig", "properties": { "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.", + "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" } }, "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -583,7 +650,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -674,7 +741,7 @@ }, "databaseConfig": { "$ref": "DatabaseConfig", - "description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*." + "description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software." }, "encryptionConfig": { "$ref": "EncryptionConfig", @@ -707,7 +774,7 @@ }, "masterAuthorizedNetworksConfig": { "$ref": "MasterAuthorizedNetworksConfig", - "description": "Optional. The configuration options for GKE clusters master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled." + "description": "Optional. The configuration options for GKE cluster master authorized networks. By default master authorized networks feature is: - in case of private environment: enabled with no external networks allowlisted. - in case of public environment: disabled." }, "nodeConfig": { "$ref": "NodeConfig", @@ -722,6 +789,10 @@ "$ref": "PrivateEnvironmentConfig", "description": "The configuration used for the Private IP Cloud Composer environment." }, + "recoveryConfig": { + "$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." + }, "softwareConfig": { "$ref": "SoftwareConfig", "description": "The configuration settings for software inside the environment." @@ -741,6 +812,45 @@ }, "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" + }, "IPAllocationPolicy": { "description": "Configuration for controlling how IPs are allocated in the GKE cluster.", "id": "IPAllocationPolicy", @@ -777,7 +887,7 @@ "type": "boolean" }, "imageVersionId": { - "description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b(.c)\"", + "description": "The string identifier of the ImageVersion, in the form: \"composer-x.y.z-airflow-a.b.c\"", "type": "string" }, "isDefault": { @@ -802,6 +912,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", @@ -856,6 +982,33 @@ }, "type": "object" }, + "LoadSnapshotRequest": { + "description": "Request to load a snapshot into a Cloud Composer environment.", + "id": "LoadSnapshotRequest", + "properties": { + "skipAirflowOverridesSetting": { + "description": "Whether or not to skip setting Airflow overrides when loading the environment's state.", + "type": "boolean" + }, + "skipEnvironmentVariablesSetting": { + "description": "Whether or not to skip setting environment variables when loading the environment's state.", + "type": "boolean" + }, + "skipGcsDataCopying": { + "description": "Whether or not to skip copying Cloud Storage data when loading the environment's state.", + "type": "boolean" + }, + "skipPypiPackagesInstallation": { + "description": "Whether or not to skip installing Pypi packages when loading the environment's state.", + "type": "boolean" + }, + "snapshotPath": { + "description": "A Cloud Storage path to a snapshot to load, e.g.: \"gs://my-bucket/snapshots/project_location_environment_timestamp\".", + "type": "string" + } + }, + "type": "object" + }, "LoadSnapshotResponse": { "description": "Response to LoadSnapshotRequest.", "id": "LoadSnapshotResponse", @@ -888,25 +1041,46 @@ "id": "MasterAuthorizedNetworksConfig", "properties": { "cidrBlocks": { - "description": "cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.", + "description": "Up to 50 external networks that could access Kubernetes master through HTTPS.", "items": { "$ref": "CidrBlock" }, "type": "array" }, "enabled": { - "description": "Whether or not master authorized networks is enabled.", + "description": "Whether or not master authorized networks feature is enabled.", "type": "boolean" } }, "type": "object" }, + "NetworkingConfig": { + "description": "Configuration options for networking connections in the Composer 2 environment.", + "id": "NetworkingConfig", + "properties": { + "connectionType": { + "description": "Optional. Indicates the user requested specifc connection type between Tenant and Customer projects. You cannot set networking connection type in public IP environment.", + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "VPC_PEERING", + "PRIVATE_SERVICE_CONNECT" + ], + "enumDescriptions": [ + "No specific connection type was requested, so the environment uses the default value corresponding to the rest of its configuration.", + "Requests the use of VPC peerings for connecting the Customer and Tenant projects.", + "Requests the use of Private Service Connect for connecting the Customer and Tenant projects." + ], + "type": "string" + } + }, + "type": "object" + }, "NodeConfig": { "description": "The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.", "id": "NodeConfig", "properties": { "diskSizeGb": { - "description": "Optional. The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", + "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", "type": "integer" }, @@ -1060,6 +1234,28 @@ }, "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", @@ -1109,6 +1305,10 @@ "description": "Optional. When enabled, IPs from public (non-RFC1918) ranges can be used for `IPAllocationPolicy.cluster_ipv4_cidr_block` and `IPAllocationPolicy.service_ipv4_cidr_block`.", "type": "boolean" }, + "networkingConfig": { + "$ref": "NetworkingConfig", + "description": "Optional. Configuration for the network connections configuration in the environment." + }, "privateClusterConfig": { "$ref": "PrivateClusterConfig", "description": "Optional. Configuration for the private GKE cluster for a Private IP Cloud Composer environment." @@ -1125,12 +1325,34 @@ }, "type": "object" }, + "RecoveryConfig": { + "description": "The Recovery settings of an environment.", + "id": "RecoveryConfig", + "properties": { + "scheduledSnapshotsConfig": { + "$ref": "ScheduledSnapshotsConfig", + "description": "Optional. The configuration for scheduled snapshot creation mechanism." + } + }, + "type": "object" + }, "RestartWebServerRequest": { "description": "Restart Airflow web server.", "id": "RestartWebServerRequest", "properties": {}, "type": "object" }, + "SaveSnapshotRequest": { + "description": "Request to create a snapshot of a Cloud Composer environment.", + "id": "SaveSnapshotRequest", + "properties": { + "snapshotLocation": { + "description": "Location in a Cloud Storage where the snapshot is going to be stored, e.g.: \"gs://my-bucket/snapshots\".", + "type": "string" + } + }, + "type": "object" + }, "SaveSnapshotResponse": { "description": "Response to SaveSnapshotRequest.", "id": "SaveSnapshotResponse", @@ -1142,6 +1364,29 @@ }, "type": "object" }, + "ScheduledSnapshotsConfig": { + "description": "The configuration for scheduled snapshot creation mechanism.", + "id": "ScheduledSnapshotsConfig", + "properties": { + "enabled": { + "description": "Optional. Whether scheduled snapshots creation is enabled.", + "type": "boolean" + }, + "snapshotCreationSchedule": { + "description": "Optional. The cron expression representing the time when snapshots creation mechanism runs. This field is subject to additional validation around frequency of execution.", + "type": "string" + }, + "snapshotLocation": { + "description": "Optional. The Cloud Storage location for storing automatically created snapshots.", + "type": "string" + }, + "timeZone": { + "description": "Optional. Time zone that sets the context to interpret snapshot_creation_schedule.", + "type": "string" + } + }, + "type": "object" + }, "SchedulerResource": { "description": "Configuration for resources used by Airflow schedulers.", "id": "SchedulerResource", @@ -1180,6 +1425,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" @@ -1188,7 +1437,7 @@ "type": "object" }, "imageVersion": { - "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+\\.[0-9]+\\.[0-9]+|latest)-airflow-[0-9]+\\.[0-9]+(\\.[0-9]+.*)?`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the version is a [semantic version](https://semver.org) or `latest`. When the patch version is omitted, the current Cloud Composer patch version is selected. When `latest` is provided instead of an explicit version number, the server replaces `latest` with the current Cloud Composer version and stores that version number in the same field. The portion of the image version that follows *airflow-* is an official Apache Airflow repository [release name](https://github.com/apache/incubator-airflow/releases). See also [Version List](/composer/docs/concepts/versioning/composer-versions).", + "description": "The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression `composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?)`. When used as input, the server also checks if the provided version is supported and denies the request for an unsupported version. The Cloud Composer portion of the image version is a full [semantic version](https://semver.org), or an alias in the form of major version number or `latest`. When an alias is provided, the server replaces it with the current Cloud Composer version that satisfies the alias. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. When an alias is provided, the server replaces it with the latest Apache Airflow version that satisfies the alias and is supported in the given Cloud Composer version. In all cases, the resolved image version is stored in the same field. See also [version list](/composer/docs/concepts/versioning/composer-versions) and [versioning overview](/composer/docs/concepts/versioning/composer-versioning-overview).", "type": "string" }, "pypiPackages": { @@ -1237,6 +1486,28 @@ }, "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" + }, "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", @@ -1324,6 +1595,10 @@ "$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/compute/alpha/compute-api.json b/etc/api/compute/alpha/compute-api.json index 72ad35bd92..7a96cd7099 100644 --- a/etc/api/compute/alpha/compute-api.json +++ b/etc/api/compute/alpha/compute-api.json @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -239,7 +239,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -305,7 +305,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -498,7 +498,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -550,6 +550,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", @@ -660,7 +710,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -853,7 +903,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1296,7 +1346,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1596,7 +1646,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1887,7 +1937,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2187,7 +2237,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2291,7 +2341,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2407,7 +2457,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2457,6 +2507,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", @@ -2708,7 +2800,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3087,7 +3179,7 @@ }, "path": "projects/{project}/zones/{zone}/disks/stopGroupAsyncReplication", "request": { - "$ref": "DisksStopGroupAsyncReplicationRequest" + "$ref": "DisksStopGroupAsyncReplicationResource" }, "response": { "$ref": "Operation" @@ -3326,7 +3418,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3751,7 +3843,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4180,7 +4272,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4361,7 +4453,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4554,7 +4646,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4816,7 +4908,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5049,7 +5141,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5313,7 +5405,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5358,6 +5450,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", @@ -5555,7 +5689,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5961,7 +6095,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6017,7 +6151,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6082,7 +6216,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6208,7 +6342,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6359,7 +6493,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6524,7 +6658,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6625,7 +6759,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6793,7 +6927,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7082,7 +7216,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7371,7 +7505,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7833,7 +7967,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8040,6 +8174,227 @@ } } }, + "instanceGroupManagerResizeRequests": { + "methods": { + "delete": { + "description": "Deletes the specified resize request.", + "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": "The name of the zone where the managed instance group and the resize request are located. 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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "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.", + "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": { @@ -8100,7 +8455,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8194,7 +8549,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.createInstances", @@ -8335,7 +8690,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", @@ -8470,7 +8825,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8533,7 +8888,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8591,7 +8946,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.", + "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`.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listManagedInstances", @@ -8602,7 +8957,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8660,7 +9015,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listPerInstanceConfigs", @@ -8671,7 +9026,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8777,7 +9132,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", @@ -9404,7 +9759,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", @@ -9513,7 +9868,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9701,7 +10056,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9753,7 +10108,7 @@ ] }, "listInstances": { - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.", + "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators.", "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", "httpMethod": "POST", "id": "compute.instanceGroups.listInstances", @@ -9764,7 +10119,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9970,6 +10325,66 @@ }, "instanceTemplates": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project.", + "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "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.", + "location": "query", + "type": "boolean" + } + }, + "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}", @@ -10129,7 +10544,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -10370,7 +10785,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -10476,7 +10891,7 @@ ] }, "bulkInsert": { - "description": "Creates multiple instances. Count specifies the number of instances to create.", + "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.", "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", "httpMethod": "POST", "id": "compute.instances.bulkInsert", @@ -11124,7 +11539,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11188,7 +11603,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11345,7 +11760,7 @@ ] }, "reset": { - "description": "Performs a reset on the instance. This is a hard reset the VM does not do a graceful shutdown. For more information, see Resetting an instance.", + "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", "id": "compute.instances.reset", @@ -11941,7 +12356,7 @@ ] }, "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 availability policies.", + "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", "httpMethod": "POST", "id": "compute.instances.setScheduling", @@ -12220,6 +12635,11 @@ "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", @@ -12346,7 +12766,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).", + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", "location": "query", "type": "boolean" }, @@ -12398,7 +12818,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).", + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", "location": "query", "type": "boolean" }, @@ -12851,7 +13271,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13143,7 +13563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13350,7 +13770,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13597,7 +14017,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13889,7 +14309,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13974,10 +14394,142 @@ } } }, + "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "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" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/global/interconnectRemoteLocations/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.interconnectRemoteLocations.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/interconnectRemoteLocations/{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" + ] + } + } + }, "interconnects": { "methods": { "delete": { - "description": "Deletes the specified interconnect.", + "description": "Deletes the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "DELETE", "id": "compute.interconnects.delete", @@ -14016,7 +14568,7 @@ ] }, "get": { - "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.", + "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "GET", "id": "compute.interconnects.get", @@ -14051,7 +14603,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -14127,7 +14679,7 @@ ] }, "getMacsecConfig": { - "description": "Returns the interconnectMacsecConfig for the specified interconnect.", + "description": "Returns the interconnectMacsecConfig for the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getMacsecConfig", "httpMethod": "GET", "id": "compute.interconnects.getMacsecConfig", @@ -14162,7 +14714,7 @@ ] }, "insert": { - "description": "Creates a Interconnect in the specified project using the data included in the request.", + "description": "Creates an Interconnect in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "POST", "id": "compute.interconnects.insert", @@ -14196,7 +14748,7 @@ ] }, "list": { - "description": "Retrieves the list of interconnect available to the specified project.", + "description": "Retrieves the list of Interconnects available to the specified project.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "GET", "id": "compute.interconnects.list", @@ -14205,7 +14757,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14251,7 +14803,7 @@ ] }, "patch": { - "description": "Updates the specified interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "PATCH", "id": "compute.interconnects.patch", @@ -14725,7 +15277,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15013,7 +15565,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15147,7 +15699,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15251,7 +15803,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15305,6 +15857,405 @@ } } }, + "networkAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/networkAttachments", + "response": { + "$ref": "NetworkAttachmentAggregatedList" + }, + "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 NetworkAttachment in the given scope", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "DELETE", + "id": "compute.networkAttachments.delete", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of 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}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified NetworkAttachment resource in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "GET", + "id": "compute.networkAttachments.get", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "response": { + "$ref": "NetworkAttachment" + }, + "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}/networkAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.networkAttachments.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}/networkAttachments/{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 NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "POST", + "id": "compute.networkAttachments.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 of 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", + "request": { + "$ref": "NetworkAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the NetworkAttachments for a project in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments", + "response": { + "$ref": "NetworkAttachmentList" + }, + "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}/networkAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "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}/regions/{region}/networkAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{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" + ] + } + } + }, "networkEdgeSecurityServices": { "methods": { "aggregatedList": { @@ -15317,7 +16268,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15579,7 +16530,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15863,7 +16814,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15926,7 +16877,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16421,7 +17372,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16919,7 +17870,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16975,7 +17926,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17043,7 +17994,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17146,7 +18097,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17475,7 +18426,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17775,7 +18726,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17839,7 +18790,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18043,6 +18994,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", @@ -18103,7 +19104,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18345,7 +19346,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18502,7 +19503,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18606,7 +19607,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18930,7 +19931,7 @@ "id": "compute.organizationSecurityPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19192,7 +20193,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19385,7 +20386,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19730,7 +20731,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19784,7 +20785,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20042,6 +21043,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}", @@ -20160,7 +21199,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20246,6 +21285,44 @@ "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" + ] } } }, @@ -20261,7 +21338,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20311,6 +21388,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}", @@ -20454,7 +21576,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20555,6 +21677,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" + ] } } }, @@ -20703,7 +21870,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21138,7 +22305,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21285,6 +22452,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", @@ -21395,7 +22611,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21541,7 +22757,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21808,7 +23024,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21914,6 +23130,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", @@ -21933,7 +23191,7 @@ "type": "string" }, "guestFlush": { - "description": "[Input Only] Specifies to create an application consistent snapshot by informing the OS to prepare for the snapshot process. Currently only supported on Windows instances using the Volume Shadow Copy Service (VSS).", + "description": "[Input Only] Specifies to create an application consistent snapshot by informing the OS to prepare for the snapshot process.", "location": "query", "type": "boolean" }, @@ -22165,7 +23423,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22544,7 +23802,7 @@ }, "path": "projects/{project}/regions/{region}/disks/stopGroupAsyncReplication", "request": { - "$ref": "RegionDisksStopGroupAsyncReplicationRequest" + "$ref": "DisksStopGroupAsyncReplicationResource" }, "response": { "$ref": "Operation" @@ -22675,7 +23933,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22866,7 +24124,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23160,7 +24418,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23454,7 +24712,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.createInstances", @@ -23595,7 +24853,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", @@ -23730,7 +24988,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23793,7 +25051,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23851,7 +25109,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.", + "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`.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listManagedInstances", @@ -23862,7 +25120,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23920,7 +25178,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", @@ -23931,7 +25189,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24037,7 +25295,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", @@ -24665,7 +25923,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", @@ -24768,7 +26026,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24831,7 +26089,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24987,6 +26245,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. Gets a list of available instance templates by making a list() request.", + "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "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": { @@ -25277,7 +26734,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25612,7 +27069,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26167,7 +27624,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26523,345 +27980,6 @@ } } }, - "regionNetworks": { - "methods": { - "delete": { - "description": "Deletes the specified network.", - "flatPath": "projects/{project}/regions/{region}/networks/{network}", - "httpMethod": "DELETE", - "id": "compute.regionNetworks.delete", - "parameterOrder": [ - "project", - "region", - "network" - ], - "parameters": { - "network": { - "description": "Name of the network to delete.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "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}/networks/{network}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "get": { - "description": "Returns the specified network.", - "flatPath": "projects/{project}/regions/{region}/networks/{network}", - "httpMethod": "GET", - "id": "compute.regionNetworks.get", - "parameterOrder": [ - "project", - "region", - "network" - ], - "parameters": { - "network": { - "description": "Name of the network to return.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "region": { - "description": "Name of the region scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/regions/{region}/networks/{network}", - "response": { - "$ref": "Network" - }, - "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}/networks/{resource}/getIamPolicy", - "httpMethod": "GET", - "id": "compute.regionNetworks.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}/networks/{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 network in the specified project and region using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/networks", - "httpMethod": "POST", - "id": "compute.regionNetworks.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 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}/networks", - "request": { - "$ref": "Network" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "list": { - "description": "Retrieves the list of networks available to the specified project in the given region.", - "flatPath": "projects/{project}/regions/{region}/networks", - "httpMethod": "GET", - "id": "compute.regionNetworks.list", - "parameterOrder": [ - "project", - "region" - ], - "parameters": { - "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", - "location": "query", - "type": "string" - }, - "maxResults": { - "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.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" - } - }, - "path": "projects/{project}/regions/{region}/networks", - "response": { - "$ref": "NetworkList" - }, - "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}/networks/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.regionNetworks.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}/networks/{resource}/setIamPolicy", - "request": { - "$ref": "RegionSetPolicyRequest" - }, - "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}/regions/{region}/networks/{resource}/testIamPermissions", - "httpMethod": "POST", - "id": "compute.regionNetworks.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}/networks/{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" - ] - } - } - }, "regionNotificationEndpoints": { "methods": { "aggregatedList": { @@ -26874,7 +27992,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27067,7 +28185,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27262,7 +28380,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27361,6 +28479,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}", @@ -27451,6 +28619,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", @@ -27509,7 +28726,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27562,7 +28779,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request.", + "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.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.regionSecurityPolicies.patch", @@ -27572,6 +28789,11 @@ "securityPolicy" ], "parameters": { + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -27597,6 +28819,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}", @@ -27610,6 +28838,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" + ] } } }, @@ -27758,7 +29096,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28001,7 +29339,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28064,7 +29402,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28358,7 +29696,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28653,7 +29991,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29048,7 +30386,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29343,7 +30681,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29635,7 +30973,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29694,7 +31032,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29936,7 +31274,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30204,7 +31542,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30446,7 +31784,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30498,6 +31836,67 @@ "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": { + "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": "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", @@ -30603,7 +32002,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30755,7 +32154,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30915,7 +32314,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31281,7 +32680,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31420,7 +32819,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31634,7 +33033,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31689,7 +33088,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31735,7 +33134,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", + "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.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -31744,6 +33143,11 @@ "securityPolicy" ], "parameters": { + "paths": { + "location": "query", + "repeated": true, + "type": "string" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -31762,6 +33166,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}", @@ -31953,7 +33363,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32195,7 +33605,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32549,7 +33959,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32720,7 +34130,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32888,7 +34298,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32985,7 +34395,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33151,7 +34561,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33206,7 +34616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33344,7 +34754,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33636,7 +35046,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33698,7 +35108,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34067,7 +35477,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34206,7 +35616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34374,7 +35784,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34555,7 +35965,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34723,7 +36133,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -35069,7 +36479,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -35262,7 +36672,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -35474,7 +36884,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -35713,7 +37123,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -36089,7 +37499,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -36384,6 +37794,66 @@ }, "targetTcpProxies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyAggregatedList" + }, + "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 TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", @@ -36502,7 +37972,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -36683,7 +38153,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -36876,7 +38346,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -37038,7 +38508,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -37248,7 +38718,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -37466,7 +38936,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -37702,7 +39172,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -37864,7 +39334,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -38057,7 +39527,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -38302,7 +39772,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -38399,6 +39869,310 @@ } } }, + "zoneQueuedResources": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of all of the queued resources in a project across all zones.", + "flatPath": "projects/{project}/aggregated/queuedResources", + "httpMethod": "GET", + "id": "compute.zoneQueuedResources.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/queuedResources", + "response": { + "$ref": "QueuedResourcesAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "cancel": { + "description": "Cancels a QueuedResource. Only a resource in ACCEPTED state may be cancelled.", + "flatPath": "projects/{project}/zones/{zone}/queuedResources/{queuedResource}/cancel", + "httpMethod": "POST", + "id": "compute.zoneQueuedResources.cancel", + "parameterOrder": [ + "project", + "zone", + "queuedResource" + ], + "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" + }, + "queuedResource": { + "description": "Name of the QueuedResource to cancel.", + "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" + }, + "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}/queuedResources/{queuedResource}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes a QueuedResource. For a QueuedResource in ACCEPTED state, call cancel on the resource before deleting, to make sure no VMs have been provisioned and may require cleaning up. For a QueuedResource in PROVISIONING state the request to delete is registered for execution following the provisioning.", + "flatPath": "projects/{project}/zones/{zone}/queuedResources/{queuedResource}", + "httpMethod": "DELETE", + "id": "compute.zoneQueuedResources.delete", + "parameterOrder": [ + "project", + "zone", + "queuedResource" + ], + "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" + }, + "queuedResource": { + "description": "Name of the QueuedResource to delete.", + "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" + }, + "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}/queuedResources/{queuedResource}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified QueuedResource resource.", + "flatPath": "projects/{project}/zones/{zone}/queuedResources/{queuedResource}", + "httpMethod": "GET", + "id": "compute.zoneQueuedResources.get", + "parameterOrder": [ + "project", + "zone", + "queuedResource" + ], + "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" + }, + "queuedResource": { + "description": "Name of the QueuedResource 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" + }, + "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}/queuedResources/{queuedResource}", + "response": { + "$ref": "QueuedResource" + }, + "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 QueuedResource.", + "flatPath": "projects/{project}/zones/{zone}/queuedResources", + "httpMethod": "POST", + "id": "compute.zoneQueuedResources.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}/queuedResources", + "request": { + "$ref": "QueuedResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of QueuedResource resources.", + "flatPath": "projects/{project}/zones/{zone}/queuedResources", + "httpMethod": "GET", + "id": "compute.zoneQueuedResources.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/queuedResources", + "response": { + "$ref": "QueuedResourceList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "zones": { "methods": { "get": { @@ -38446,7 +40220,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -38494,9 +40268,32 @@ } } }, - "revision": "20220224", + "revision": "20230103", "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", @@ -38613,10 +40410,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38640,10 +40439,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38729,10 +40530,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38756,10 +40559,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38827,10 +40632,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38854,10 +40661,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38953,6 +40762,10 @@ "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" + }, "setPublicDns": { "description": "Specifies whether a public DNS 'A' record should be created for the external IP address of this access configuration.", "type": "boolean" @@ -39029,12 +40842,14 @@ "type": "string" }, "ipv6EndpointType": { - "description": "The endpoint type of this address, which should be VM. This is used for deciding which endpoint this address will be assigned to during the IPv6 external IP address reservation.", + "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", "enum": [ + "NETLB", "VM" ], "enumDescriptions": [ - "Reserved IPv6 address will be assigned to VM." + "Reserved IPv6 address can be used on network load balancer.", + "Reserved IPv6 address can be used on VM." ], "type": "string" }, @@ -39093,22 +40908,24 @@ "type": "integer" }, "purpose": { - "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", + "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", "enum": [ "DNS_RESOLVER", "GCE_ENDPOINT", "IPSEC_INTERCONNECT", "NAT_AUTO", "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", "SHARED_LOADBALANCER_VIP", "VPC_PEERING" ], "enumDescriptions": [ "DNS resolver address in the subnetwork.", "VM internal/alias IP, Internal LB service IP, etc.", - "A regional internal IP address range reserved for the VLAN attachment that is used in IPsec-encrypted Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", + "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", "External IP automatically reserved for Cloud NAT.", "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", "IP range for peer networks." ], @@ -39203,10 +41020,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39230,10 +41049,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39319,10 +41140,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39346,10 +41169,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39417,10 +41242,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39444,10 +41271,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39508,6 +41337,22 @@ "format": "int32", "type": "integer" }, + "performanceMonitoringUnit": { + "description": "Type of Performance Monitoring Unit requested on instance.", + "enum": [ + "ARCHITECTURAL", + "ENHANCED", + "PERFORMANCE_MONITORING_UNIT_UNSPECIFIED", + "STANDARD" + ], + "enumDescriptions": [ + "Architecturally defined non-LLC events.", + "Most documented core/L2 and LLC events.", + "", + "Most documented core/L2 events." + ], + "type": "string" + }, "threadsPerCore": { "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", "format": "int32", @@ -39536,6 +41381,88 @@ }, "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_POD_SLICE_CT4P", + "VM_FAMILY_GENERAL_PURPOSE_T2D", + "VM_FAMILY_MEMORY_OPTIMIZED_M3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "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", + "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" + } + }, + "type": "object" + }, "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", "properties": { @@ -39593,7 +41520,7 @@ "type": "integer" }, "maintenanceInterval": { - "description": "For more information about maintenance intervals, see Setting maintenance intervals.", + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ "PERIODIC" ], @@ -39610,7 +41537,7 @@ "type": "object" }, "AllocationSpecificSKUReservation": { - "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 5", + "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 6", "id": "AllocationSpecificSKUReservation", "properties": { "assuredCount": { @@ -39631,6 +41558,10 @@ "instanceProperties": { "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", "description": "The instance properties for the reservation." + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "type": "string" } }, "type": "object" @@ -39639,6 +41570,20 @@ "description": "An instance-attached disk resource.", "id": "AttachedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk. 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" + }, "autoDelete": { "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", "type": "boolean" @@ -39681,7 +41626,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.", + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", "enum": [ "NVDIMM", "NVME", @@ -39765,7 +41710,7 @@ "type": "object" }, "AttachedDiskInitializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", "id": "AttachedDiskInitializeParams", "properties": { "architecture": { @@ -39796,7 +41741,7 @@ "type": "string" }, "diskType": { - "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL.", + "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" }, "guestOsFeatures": { @@ -39865,13 +41810,25 @@ "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 between 1 and 7,124.", + "format": "int64", + "type": "string" + }, "replicaZones": { - "description": "URLs of the zones where the disk should be replicated to. Only applicable for regional resources.", + "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.", "items": { "type": "string" }, "type": "array" }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + }, "resourcePolicies": { "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", "items": { @@ -39885,7 +41842,7 @@ }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys." + "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.", @@ -40182,10 +42139,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40209,10 +42168,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40298,10 +42259,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40325,10 +42288,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40454,10 +42419,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40481,10 +42448,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40757,7 +42726,7 @@ "type": "string" }, "capacityScaler": { - "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.", + "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", "format": "float", "type": "number" }, @@ -40804,7 +42773,7 @@ "type": "number" }, "maxUtilization": { - "description": "Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", + "description": "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" } @@ -40988,7 +42957,7 @@ "type": "array" }, "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters.", + "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters.", "items": { "type": "string" }, @@ -41056,10 +43025,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41083,10 +43054,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41135,7 +43108,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 one day (86,400). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "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.", "format": "int32", "type": "integer" }, @@ -41256,6 +43229,13 @@ ], "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.", + "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.", "enum": [ @@ -41299,7 +43279,7 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." + "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. " }, "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.", @@ -41395,9 +43375,21 @@ "$ref": "Subsetting" }, "timeoutSec": { - "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 is 1 - 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.", + "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" + }, + "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": [ + "GLOBAL_VPC_NETWORK", + "REGIONAL_VPC_NETWORK" + ], + "enumDescriptions": [ + "The backend service can only have backends in global VPCs", + "The backend service can only have backends in regional VPCs" + ], + "type": "string" } }, "type": "object" @@ -41452,10 +43444,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41479,10 +43473,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41811,10 +43807,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41838,10 +43836,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41885,14 +43885,112 @@ }, "type": "object" }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "properties": { + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + }, + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "description": "The configuration for a custom policy implemented by the user and deployed with the client.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "properties": { + "data": { + "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "description": "The configuration for a built-in load balancing policy.", + "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.", + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" + ], + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", + "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "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" + } + }, + "type": "object" + }, "BackendServiceLogConfig": { "description": "The available logging options for the load balancer traffic served by this backend service.", "id": "BackendServiceLogConfig", "properties": { "enable": { - "description": "This field denotes whether to enable logging for the load balancer traffic served by this backend service.", + "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", "type": "boolean" }, + "optional": { + "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", + "EXCLUDE_ALL_OPTIONAL", + "INCLUDE_ALL_OPTIONAL", + "UNSPECIFIED_OPTIONAL_MODE" + ], + "enumDescriptions": [ + "A subset of optional fields.", + "None optional fields.", + "All optional fields.", + "" + ], + "type": "string" + }, + "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", + "UNSPECIFIED_OPTIONAL_MODE" + ], + "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", @@ -41934,10 +44032,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41961,10 +44061,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42284,7 +44386,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -42297,6 +44399,17 @@ }, "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" + } + }, + "type": "object" + }, "BulkInsertInstanceResource": { "description": "A transient resource used in compute.instances.bulkInsert and compute.regionInstances.bulkInsert . This resource is not persisted anywhere, it is used only for processing the requests.", "id": "BulkInsertInstanceResource", @@ -42316,7 +44429,7 @@ }, "locationPolicy": { "$ref": "LocationPolicy", - "description": "Policy for chosing target zone." + "description": "Policy for chosing target zone. For more information, see Create VMs in bulk ." }, "minCount": { "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", @@ -42352,6 +44465,21 @@ }, "type": "object" }, + "BundledLocalSsds": { + "id": "BundledLocalSsds", + "properties": { + "defaultInterface": { + "description": "The default disk interface if the interface is not specified.", + "type": "string" + }, + "partitionCount": { + "description": "The number of partitions.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CacheInvalidationRule": { "id": "CacheInvalidationRule", "properties": { @@ -42648,6 +44776,7 @@ "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", + "CANCELLED", "CREATING", "EXPIRED", "NOT_YET_ACTIVE" @@ -42656,6 +44785,7 @@ "", "", "", + "", "" ], "type": "string" @@ -42676,6 +44806,7 @@ "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -42688,6 +44819,7 @@ "", "", "", + "", "" ], "type": "string" @@ -42744,10 +44876,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42771,10 +44905,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42860,10 +44996,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42887,10 +45025,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42958,10 +45098,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42985,10 +45127,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43116,6 +45260,20 @@ "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" + ], + "enumDescriptions": [ + "No type specified. Do not use this value.", + "AMD Secure Encrypted Virtualization.", + "AMD Secure Encrypted Virtualization - Secure Nested Paging." + ], + "type": "string" + }, "enableConfidentialCompute": { "description": "Defines whether the instance should have confidential compute enabled.", "type": "boolean" @@ -43197,7 +45355,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", + "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -43229,6 +45387,47 @@ }, "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": { @@ -43449,6 +45648,10 @@ "description": "Internal use only.", "type": "string" }, + "params": { + "$ref": "DiskParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + }, "physicalBlockSizeBytes": { "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", "format": "int64", @@ -43459,6 +45662,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 between 1 and 7,124.", + "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" @@ -43654,10 +45862,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43681,10 +45891,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43834,10 +46046,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43861,10 +46075,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43922,6 +46138,20 @@ }, "type": "object" }, + "DiskParams": { + "description": "Additional disk params.", + "id": "DiskParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + } + }, + "type": "object" + }, "DiskResourceStatus": { "id": "DiskResourceStatus", "properties": { @@ -43944,6 +46174,7 @@ "state": { "enum": [ "ACTIVE", + "CREATED", "STARTING", "STATE_UNSPECIFIED", "STOPPED", @@ -43951,6 +46182,7 @@ ], "enumDescriptions": [ "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", "Replication is starting.", "", "Replication is stopped.", @@ -44069,10 +46301,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44096,10 +46330,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44185,10 +46421,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44212,10 +46450,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44283,10 +46523,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44310,10 +46552,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44418,10 +46662,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44445,10 +46691,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44506,14 +46754,15 @@ "id": "DisksStopAsyncReplicationRequest", "properties": { "asyncSecondaryDisk": { - "description": "The secondary disk to stop asynchronous replication to. Supplied if and only if the target disk is a primary disk in an asynchronously replicated pair. 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 ", + "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" }, - "DisksStopGroupAsyncReplicationRequest": { - "id": "DisksStopGroupAsyncReplicationRequest", + "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 ", @@ -44540,11 +46789,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." ], @@ -44593,6 +46844,28 @@ }, "type": "object" }, + "ErrorInfo": { + "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": "ErrorInfo", + "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" + }, + "metadatas": { + "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" + }, "ExchangedPeeringRoute": { "id": "ExchangedPeeringRoute", "properties": { @@ -44671,10 +46944,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44698,10 +46973,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44901,10 +47178,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44928,10 +47207,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45060,7 +47341,7 @@ "type": "array" }, "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields.", + "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", "enum": [ "EGRESS", "INGRESS" @@ -45201,10 +47482,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45228,10 +47511,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45336,7 +47621,7 @@ "type": "string" }, "displayName": { - "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This 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.", + "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" }, @@ -45356,11 +47641,11 @@ "type": "string" }, "name": { - "description": "[Output Only] Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy.", + "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", "type": "string" }, "parent": { - "description": "[Output Only] The parent of the firewall policy.", + "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", "type": "string" }, "region": { @@ -45388,7 +47673,7 @@ "type": "string" }, "shortName": { - "description": "User-provided name of the Organization firewall plicy. The name should be unique in the organization in which the firewall policy is created. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, @@ -45470,10 +47755,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45497,10 +47784,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45549,7 +47838,7 @@ "id": "FirewallPolicyRule", "properties": { "action": { - "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.", + "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", "type": "string" }, "description": { @@ -45599,6 +47888,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": { @@ -45635,7 +47928,7 @@ "type": "array" }, "destFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 1000.", + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.", "items": { "type": "string" }, @@ -45677,7 +47970,7 @@ "type": "array" }, "srcFqdns": { - "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 1000.", + "description": "Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.", "items": { "type": "string" }, @@ -45781,7 +48074,7 @@ "id": "ForwardingRule", "properties": { "IPAddress": { - "description": "IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). Must be set to `0.0.0.0` when the target is targetGrpcProxy that has validateForProxyless field set to true. For Private Service Connect forwarding rules that forward traffic to Google APIs, IP address must be provided.", + "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", "type": "string" }, "IPProtocol": { @@ -45809,7 +48102,7 @@ "type": "string" }, "allPorts": { - "description": "This field is used along with the backend_service field for Internal TCP/UDP Load Balancing or Network Load Balancing, or with the target field for internal and external TargetInstance. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed to any ports will be forwarded to the target or backendService.", + "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.", "type": "boolean" }, "allowGlobalAccess": { @@ -45824,6 +48117,10 @@ "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must be omitted for all other load balancer types.", "type": "string" }, + "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": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -45843,7 +48140,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule.", + "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -45931,12 +48228,16 @@ ], "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.", + "type": "boolean" + }, "portRange": { - "description": "This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "type": "string" }, "ports": { - "description": "The ports field is only supported when the forwarding rule references a backend_service directly. Only packets addressed to the [specified list of ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)) are forwarded to backends. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. You can specify a list of up to five ports, which can be non-contiguous. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "items": { "type": "string" }, @@ -45951,6 +48252,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -45958,6 +48260,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The connection has been rejected by the producer.", "" @@ -46004,6 +48307,7 @@ "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. ", "type": "string" } }, @@ -46058,10 +48362,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46085,10 +48391,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46174,10 +48482,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46201,10 +48511,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46300,10 +48612,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46327,10 +48641,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46392,6 +48708,7 @@ }, "kind": { "default": "compute#futureReservation", + "description": "[Output Only] Type of the resource. Always compute#futureReservation for future reservations.", "type": "string" }, "name": { @@ -46408,6 +48725,20 @@ "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" @@ -46446,6 +48777,10 @@ "$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", @@ -46481,6 +48816,7 @@ "CANCELLED", "COMMITTED", "DECLINED", + "DRAFTING", "FAILED", "FAILED_PARTIALLY_FULFILLED", "FULFILLED", @@ -46494,6 +48830,7 @@ "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.", @@ -46503,6 +48840,20 @@ "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" + }, + "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" @@ -46544,6 +48895,7 @@ }, "kind": { "default": "compute#futureReservationsAggregatedListResponse", + "description": "[Output Only] Type of resource. Always compute#futureReservationsAggregatedListResponse for future resevation aggregated list response.", "type": "string" }, "nextPageToken": { @@ -46575,10 +48927,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46602,10 +48956,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46668,6 +49024,7 @@ }, "kind": { "default": "compute#futureReservationsListResponse", + "description": "[Output Only] Type of resource.Always compute#FutureReservationsListResponse for lists of reservations", "type": "string" }, "nextPageToken": { @@ -46699,10 +49056,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46726,10 +49085,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46797,10 +49158,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46824,10 +49187,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46879,25 +49244,25 @@ "type": "string" }, "port": { - "description": "The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" } @@ -46914,6 +49279,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": { @@ -46974,7 +49353,7 @@ "additionalProperties": { "type": "string" }, - "description": "A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", + "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", "type": "object" } }, @@ -47090,7 +49469,7 @@ "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 - SECURE_BOOT - 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_SNP_CAPABLE For more information, see Enabling guest operating system features.", "enum": [ "BARE_METAL_LINUX_COMPATIBLE", "FEATURE_TYPE_UNSPECIFIED", @@ -47098,6 +49477,8 @@ "MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", + "SEV_LIVE_MIGRATABLE", + "SEV_SNP_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" @@ -47111,6 +49492,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -47122,29 +49505,29 @@ "id": "HTTP2HealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -47165,7 +49548,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" }, "weightReportMode": { @@ -47189,29 +49572,29 @@ "id": "HTTPHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -47232,7 +49615,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" }, "weightReportMode": { @@ -47256,29 +49639,29 @@ "id": "HTTPSHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -47299,7 +49682,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" }, "weightReportMode": { @@ -47384,6 +49767,13 @@ "description": "[Output Only] Server-defined URL for this resource with the resource id.", "type": "string" }, + "sourceRegions": { + "description": "The list of cloud regions from which health checks are performed. If any regions are specified, then exactly 3 regions should be specified. The region names must be valid names of GCP regions. This can only be set for global health check. If this list is non-empty, then there are restrictions on what other health check fields are supported and what other resources can use this health check: - SSL, HTTP2, and GRPC protocols are not supported. - The TCP request field is not supported. - The proxyHeader field for HTTP, HTTPS, and TCP is not supported. - The checkIntervalSec field must be at least 30. - The health check cannot be used with BackendService nor with managed instance group auto-healing. ", + "items": { + "type": "string" + }, + "type": "array" + }, "sslHealthCheck": { "$ref": "SSLHealthCheck" }, @@ -47396,7 +49786,7 @@ "type": "integer" }, "type": { - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. Exactly one of the protocol-specific health check field must be specified, which must match type field.", + "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", "enum": [ "GRPC", "HTTP", @@ -47472,10 +49862,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47499,10 +49891,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47585,14 +49979,14 @@ "type": "string" }, "healthChecks": { - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NEGs.", + "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", "items": { "type": "string" }, "type": "array" }, "healthStatusAggregationPolicy": { - "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .", + "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", "enum": [ "AND", "NO_AGGREGATION" @@ -47631,7 +50025,7 @@ "type": "string" }, "networkEndpointGroups": { - "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService.", + "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", "items": { "type": "string" }, @@ -47709,10 +50103,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47736,10 +50132,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47834,10 +50232,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47861,10 +50261,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47932,10 +50334,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47959,10 +50363,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48055,10 +50461,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48082,10 +50490,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48153,10 +50563,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48180,10 +50592,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48329,6 +50743,35 @@ }, "type": "object" }, + "Help": { + "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", + "id": "Help", + "properties": { + "links": { + "description": "URL(s) pointing to additional information on handling the current error.", + "items": { + "$ref": "HelpLink" + }, + "type": "array" + } + }, + "type": "object" + }, + "HelpLink": { + "description": "Describes a URL link.", + "id": "HelpLink", + "properties": { + "description": { + "description": "Describes what the link offers.", + "type": "string" + }, + "url": { + "description": "The URL of the link.", + "type": "string" + } + }, + "type": "object" + }, "HostRule": { "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", "id": "HostRule", @@ -48338,7 +50781,7 @@ "type": "string" }, "hosts": { - "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "items": { "type": "string" }, @@ -48482,7 +50925,7 @@ "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL." }, "regexMatch": { - "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" }, "suffixMatch": { @@ -48624,10 +51067,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48651,10 +51096,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48715,7 +51162,7 @@ "type": "boolean" }, "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", "type": "string" } }, @@ -48798,7 +51245,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." + "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." }, "maxStreamDuration": { "$ref": "Duration", @@ -48834,6 +51281,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 HTTP(S) load balancing." + }, "description": { "description": "The short description conveying the intent of this routeRule. The description can have a maximum length of 1024 characters.", "type": "string" @@ -48870,7 +51321,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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -48909,6 +51360,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" @@ -48921,7 +51376,7 @@ "type": "array" }, "regexMatch": { - "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" } }, @@ -49040,10 +51495,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49067,10 +51524,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49303,7 +51762,7 @@ }, "sourceType": { "default": "RAW", - "description": "The type of the image used to create this disk. The default and only value is RAW", + "description": "The type of the image used to create this disk. The default and only valid value is RAW.", "enum": [ "RAW" ], @@ -49397,10 +51856,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49424,10 +51885,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49572,10 +52035,10 @@ }, "instanceEncryptionKey": { "$ref": "CustomerEncryptionKey", - "description": "Encrypts or decrypts data for an instance with a customer-supplied encryption key. If you are creating a new instance, this field encrypts the local SSD and in-memory contents of the instance using a key that you provide. If you are restarting an instance protected with a customer-supplied encryption key, you must provide the correct key in order to successfully restart the instance. 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 and you do not need to provide a key to start the instance later. Instance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt local SSDs and in-memory content in a managed instance group." + "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.", + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", "NONE", @@ -49736,6 +52199,13 @@ }, "type": "array" }, + "serviceIntegrationSpecs": { + "additionalProperties": { + "$ref": "ServiceIntegrationSpec" + }, + "description": "Mapping of user-defined keys to specifications for service integrations. Currently only a single key-value pair is supported.", + "type": "object" + }, "shieldedInstanceConfig": { "$ref": "ShieldedInstanceConfig" }, @@ -49858,10 +52328,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49885,10 +52357,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50097,10 +52571,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50124,10 +52600,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50213,10 +52691,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50240,10 +52720,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50293,7 +52775,7 @@ "properties": { "allInstancesConfig": { "$ref": "InstanceGroupManagerAllInstancesConfig", - "description": "Specifies the instances configs overrides that should be applied for all instances in the MIG." + "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.", @@ -50356,7 +52838,7 @@ }, "instanceLifecyclePolicy": { "$ref": "InstanceGroupManagerInstanceLifecyclePolicy", - "description": "Instance lifecycle policy for this Instance Group Manager." + "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.", @@ -50368,14 +52850,14 @@ "type": "string" }, "listManagedInstancesResults": { - "description": "Pagination behavior of listManagedInstances API method for this Managed Instance Group.", + "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", "enum": [ "PAGELESS", "PAGINATED" ], "enumDescriptions": [ - "(Default) Pagination is disabled for listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", - "Pagination is enabled for listManagedInstances API method. maxResults and pageToken query parameters are respected." + "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", + "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." ], "type": "string" }, @@ -50484,6 +52966,11 @@ "format": "int32", "type": "integer" }, + "creatingAtomically": { + "description": "[Output Only] The number of instances that the managed instance group will attempt to create atomically, in a batch mode. If the desired count of instances can not be created, entire batch will be deleted and the group will decrease its targetSize value accordingly.", + "format": "int32", + "type": "integer" + }, "creatingWithoutRetries": { "description": "[Output Only] The number of instances that the managed instance group will attempt to create. The group attempts to create each instance only once. If the group fails to create any of these instances, it decreases the group's targetSize value accordingly.", "format": "int32", @@ -50499,6 +52986,11 @@ "format": "int32", "type": "integer" }, + "queuing": { + "description": "[Output Only] The number of instances that the managed instance group is currently queuing.", + "format": "int32", + "type": "integer" + }, "recreating": { "description": "[Output Only] The number of instances in the managed instance group that are scheduled to be recreated or are currently being being recreated. Recreating an instance deletes the existing root persistent disk and creates a new disk from the image that is defined in the instance template.", "format": "int32", @@ -50591,10 +53083,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50618,10 +53112,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50670,7 +53166,7 @@ "properties": { "properties": { "$ref": "InstancePropertiesPatch", - "description": "Properties for instances that are created using this instances config. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting instances_config, you must update your instances to use it; for example, you can use the applyUpdatesToInstances method." + "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" @@ -50694,17 +53190,6 @@ "maxUnavailable": { "$ref": "FixedOrPercent", "description": "Maximum number of instances that can be unavailable when autohealing. When 'percent' is used, the value is rounded if necessary. The instance is considered available if all of the following conditions are satisfied: 1. Instance's status is RUNNING. 2. Instance's currentAction is NONE (in particular its liveness health check result was observed to be HEALTHY at least once as it passed VERIFYING). 3. There is no outgoing action on an instance triggered by IGM. By default, number of concurrently autohealed instances is smaller than the managed instance group target size. However, if a zonal managed instance group has only one instance, or a regional managed instance group has only one instance per zone, autohealing will recreate these instances when they become unhealthy." - }, - "updateInstances": { - "enum": [ - "ALWAYS", - "FOLLOW_UPDATE_POLICY" - ], - "enumDescriptions": [ - "Autohealer always updates instances with a new version for both PROACTIVE and OPPORTUNISTIC updates.", - "(Default) Autohealer updates instance with new version according to update policy constraints: - OPPORTUNISTIC: autohealing does not perform updates. - PROACTIVE: autohealing performs updates according to maxSurge and maxUnavailable constraints. " - ], - "type": "string" } }, "type": "object" @@ -50730,6 +53215,30 @@ "InstanceGroupManagerInstanceLifecyclePolicy": { "id": "InstanceGroupManagerInstanceLifecyclePolicy", "properties": { + "defaultActionOnFailure": { + "description": "Defines behaviour for all instance or failures", + "enum": [ + "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.\"" + ], + "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" + }, "metadataBasedReadinessSignal": { "$ref": "InstanceGroupManagerInstanceLifecyclePolicyMetadataBasedReadinessSignal", "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." @@ -50790,10 +53299,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50817,10 +53328,270 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "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" + }, + "queuingPolicy": { + "$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." + }, + "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", + "CREATING", + "DELETING", + "FAILED", + "PROVISIONING", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "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.", + "The target resource(s) are being provisioned.", + "The request succeeded." + ], + "type": "string" + }, + "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." + }, + "zone": { + "description": "[Output Only] The URL of a zone where the resize request is located.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatus": { + "id": "InstanceGroupManagerResizeRequestStatus", + "properties": { + "error": { + "description": "Errors encountered during the queueing or provisioning phases of the ResizeRequest.", + "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" + }, + "queuingPolicy": { + "$ref": "QueuingPolicy", + "description": "Constraints for the time when the instances start provisioning. Always exposed as absolute time." + } + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50879,7 +53650,7 @@ "properties": { "allInstancesConfig": { "$ref": "InstanceGroupManagerStatusAllInstancesConfig", - "description": "[Output Only] A status of consistency of Instances' config applied to instances with Instances' config defined in managed instance group." + "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.", @@ -50904,11 +53675,11 @@ "id": "InstanceGroupManagerStatusAllInstancesConfig", "properties": { "currentRevision": { - "description": "[Output Only] Current instances' config revision. This value is in RFC3339 text format.", + "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 instances' config has been applied to all managed instances in managed instance group.", + "description": "[Output Only] A bit indicating whether this configuration has been applied to all managed instances in the group.", "type": "boolean" } }, @@ -50918,16 +53689,16 @@ "id": "InstanceGroupManagerStatusStateful", "properties": { "hasStatefulConfig": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", + "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.", "type": "boolean" }, "isStateful": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config.", + "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" }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configs on the instance." + "description": "[Output Only] Status of per-instance configurations on the instance." } }, "type": "object" @@ -50936,7 +53707,7 @@ "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", "properties": { "allEffective": { - "description": "A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", + "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", "type": "boolean" } }, @@ -50981,7 +53752,7 @@ "type": "integer" }, "minimalAction": { - "description": "Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.", + "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", "enum": [ "NONE", "REFRESH", @@ -51247,10 +54018,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51274,10 +54047,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51326,7 +54101,7 @@ "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -51400,10 +54175,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51427,10 +54204,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51566,7 +54345,7 @@ "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -51629,10 +54408,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51656,10 +54437,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51758,10 +54541,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51785,10 +54570,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51892,10 +54679,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51919,10 +54708,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52008,10 +54799,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52035,10 +54828,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52108,9 +54903,11 @@ "enum": [ "ABANDONING", "CREATING", + "CREATING_ATOMICALLY", "CREATING_WITHOUT_RETRIES", "DELETING", "NONE", + "QUEUING", "RECREATING", "REFRESHING", "RESTARTING", @@ -52123,9 +54920,11 @@ "enumDescriptions": [ "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", + "The managed instance group is creating this instance atomically.", "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", "The managed instance group is permanently deleting this instance.", "The managed instance group has not scheduled any actions for this instance.", + "The managed instance group is queuing this instance.", "The managed instance group is recreating this instance.", "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", "The managed instance group is restarting this instance.", @@ -52228,7 +55027,7 @@ "type": "array" }, "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance.", + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", "NONE", @@ -52340,6 +55139,13 @@ }, "type": "array" }, + "serviceIntegrationSpecs": { + "additionalProperties": { + "$ref": "ServiceIntegrationSpec" + }, + "description": "Mapping of user defined keys to ServiceIntegrationSpec.", + "type": "object" + }, "shieldedInstanceConfig": { "$ref": "ShieldedInstanceConfig", "description": "Note that for MachineImage, this is not supported yet." @@ -52422,6 +55228,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" @@ -52441,6 +55251,127 @@ }, "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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", @@ -52483,10 +55414,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52510,10 +55443,114 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52756,10 +55793,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52783,10 +55822,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53090,10 +56131,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53117,10 +56160,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53242,10 +56287,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53269,10 +56316,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53361,10 +56410,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53388,10 +56439,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53572,7 +56625,7 @@ "type": "string" }, "nocContactEmail": { - "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.", + "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", "type": "string" }, "operationalStatus": { @@ -53596,6 +56649,10 @@ "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" + }, "requestedLinkCount": { "description": "Target number of physical links in the link bundle, as requested by the customer.", "format": "int32", @@ -53694,6 +56751,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" @@ -53734,13 +56795,13 @@ "type": "string" }, "encryption": { - "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. ", + "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", "enum": [ "IPSEC", "NONE" ], "enumDescriptions": [ - "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use IPsec-encrypted Cloud Interconnect, the interconnect attachment must be created with this option.", + "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." ], "type": "string" @@ -53825,6 +56886,10 @@ "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" @@ -53875,6 +56940,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": [ @@ -53946,10 +57016,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53973,10 +57045,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54020,6 +57094,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", @@ -54062,10 +57177,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54089,10 +57206,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54191,10 +57310,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54218,10 +57339,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54295,6 +57418,30 @@ }, "type": "array" }, + "bundleAggregationType": { + "description": "The aggregation type of the bundle interface.", + "enum": [ + "BUNDLE_AGGREGATION_TYPE_LACP", + "BUNDLE_AGGREGATION_TYPE_STATIC" + ], + "enumDescriptions": [ + "LACP is enabled.", + "LACP is disabled." + ], + "type": "string" + }, + "bundleOperationalStatus": { + "description": "The operational status of the bundle interface.", + "enum": [ + "BUNDLE_OPERATIONAL_STATUS_DOWN", + "BUNDLE_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", + "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." + ], + "type": "string" + }, "links": { "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", "items": { @@ -54404,6 +57551,18 @@ "$ref": "InterconnectDiagnosticsMacsecStatus", "description": "Describes the status of MACsec encryption on this link." }, + "operationalStatus": { + "description": "The operational status of the link.", + "enum": [ + "LINK_OPERATIONAL_STATUS_DOWN", + "LINK_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "The interface is unable to communicate with the remote end.", + "The interface has low level communication with the remote end." + ], + "type": "string" + }, "receivingOpticalPower": { "$ref": "InterconnectDiagnosticsLinkOpticalPower", "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level." @@ -54472,10 +57631,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54499,10 +57660,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54700,10 +57863,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54727,10 +57892,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54954,6 +58121,307 @@ }, "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).", + "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 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." + ], + "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" + }, + "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" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "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 will require 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 allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value 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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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", @@ -55084,10 +58552,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55111,10 +58581,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55200,10 +58672,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55227,10 +58701,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55538,10 +59014,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55565,10 +59043,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55632,6 +59112,21 @@ }, "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", + "properties": { + "locale": { + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "type": "string" + }, + "message": { + "description": "The localized error message in the above locale.", + "type": "string" + } + }, + "type": "object" + }, "LocationPolicy": { "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", "id": "LocationPolicy", @@ -55667,8 +59162,15 @@ "$ref": "LocationPolicyLocationConstraints", "description": "Constraints that the caller requires on the result distribution in this zone." }, + "names": { + "description": "Names of resources to be put in the location. Must contain unique, correct resource names. If used, targetShape must be left unset.", + "items": { + "type": "string" + }, + "type": "array" + }, "preference": { - "description": "Preference for a given location.", + "description": "Preference for a given location. Set to either ALLOW or DENY.", "enum": [ "ALLOW", "DENY", @@ -55949,10 +59451,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55976,10 +59480,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56045,6 +59551,24 @@ }, "type": "array" }, + "architecture": { + "description": "[Output Only] The architecture of the machine type.", + "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" + }, + "bundledLocalSsds": { + "$ref": "BundledLocalSsds", + "description": "[Output Only] The configuration of bundled local SSD for the machine type." + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -56160,10 +59684,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56187,10 +59713,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56276,10 +59804,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56303,10 +59833,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56374,10 +59906,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56401,10 +59935,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56454,16 +59990,18 @@ "properties": { "allInstancesConfig": { "$ref": "ManagedInstanceAllInstancesConfig", - "description": "[Output Only] Instances config revision applied to this instance." + "description": "[Output Only] Current all-instances configuration revision applied to this instance." }, "currentAction": { "description": "[Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", "enum": [ "ABANDONING", "CREATING", + "CREATING_ATOMICALLY", "CREATING_WITHOUT_RETRIES", "DELETING", "NONE", + "QUEUING", "RECREATING", "REFRESHING", "RESTARTING", @@ -56476,9 +60014,11 @@ "enumDescriptions": [ "The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group.", "The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful.", + "The managed instance group is creating this instance atomically.", "The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased.", "The managed instance group is permanently deleting this instance.", "The managed instance group has not scheduled any actions for this instance.", + "The managed instance group is queuing this instance.", "The managed instance group is recreating this instance.", "The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance.", "The managed instance group is restarting this instance.", @@ -56542,6 +60082,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 will always exist 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." @@ -56583,7 +60127,7 @@ "id": "ManagedInstanceAllInstancesConfig", "properties": { "revision": { - "description": "[Output Only] Instances config revision. This value is in RFC3339 text format.", + "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", "type": "string" } }, @@ -56643,6 +60187,27 @@ "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" @@ -56868,7 +60433,7 @@ "type": "string" }, "mtu": { - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460 and the maximum value is 1500 bytes. If unspecified, defaults to 1460.", + "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", "format": "int32", "type": "integer" }, @@ -56927,6 +60492,489 @@ }, "type": "object" }, + "NetworkAttachment": { + "description": "NetworkAttachments A network attachment resource ...", + "id": "NetworkAttachment", + "properties": { + "connectionEndpoints": { + "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", + "items": { + "$ref": "NetworkAttachmentConnectedEndpoint" + }, + "type": "array" + }, + "connectionPreference": { + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "INVALID" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "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" + }, + "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.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#networkAttachment", + "description": "[Output Only] Type of the resource.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.networkAttachments.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" + }, + "network": { + "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "type": "string" + }, + "producerAcceptLists": { + "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "producerRejectLists": { + "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "[Output Only] URL of the region where the network 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" + }, + "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" + }, + "subnetworks": { + "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkAttachmentAggregatedList": { + "description": "Contains a list of NetworkAttachmentsScopedList.", + "id": "NetworkAttachmentAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkAttachmentsScopedList", + "description": "Name of the scope containing this set of NetworkAttachments." + }, + "description": "A list of NetworkAttachmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkAttachmentAggregatedList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentConnectedEndpoint": { + "description": "[Output Only] A connection connected to this network attachment.", + "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.", + "type": "string" + }, + "projectIdOrNum": { + "description": "The project id or number of the interface to which the IP was assigned.", + "type": "string" + }, + "secondaryIpCidrRanges": { + "description": "Alias IP ranges from the same subnetwork", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "The status of a connected endpoint to this network attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The consumer allows traffic from the producer to reach its VPC.", + "The consumer network attachment no longer exists.", + "The consumer needs to take further action before traffic can be served.", + "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", + "The consumer prohibits traffic from the producer to reach its VPC.", + "" + ], + "type": "string" + }, + "subnetwork": { + "description": "The subnetwork used to assign the IP to the producer instance network interface.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkAttachmentList": { + "id": "NetworkAttachmentList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkAttachment resources.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "kind": { + "default": "compute#networkAttachmentList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentsScopedList": { + "id": "NetworkAttachmentsScopedList", + "properties": { + "networkAttachments": { + "description": "A list of NetworkAttachments contained in this scope.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of network attachments when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "NetworkEdgeSecurityService": { "description": "Represents a Google Cloud Armor network edge security service resource.", "id": "NetworkEdgeSecurityService", @@ -56951,6 +60999,7 @@ }, "kind": { "default": "compute#networkEdgeSecurityService", + "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", "type": "string" }, "name": { @@ -56997,6 +61046,7 @@ }, "kind": { "default": "compute#networkEdgeSecurityServiceAggregatedList", + "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security Services.", "type": "string" }, "nextPageToken": { @@ -57028,10 +61078,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57055,10 +61107,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57126,10 +61180,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57153,10 +61209,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57313,8 +61371,11 @@ ], "type": "string" }, + "pscData": { + "$ref": "NetworkEndpointGroupPscData" + }, "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API. 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": { @@ -57408,10 +61469,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57435,10 +61498,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57491,7 +61556,7 @@ "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": "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": { @@ -57510,7 +61575,7 @@ "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": "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" } }, @@ -57600,10 +61665,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57627,10 +61694,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57674,12 +61743,48 @@ }, "type": "object" }, + "NetworkEndpointGroupPscData": { + "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", + "id": "NetworkEndpointGroupPscData", + "properties": { + "consumerPscAddress": { + "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", + "type": "string" + }, + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", + "format": "uint64", + "type": "string" + }, + "pscConnectionStatus": { + "description": "[Output Only] The connection status of the PSC Forwarding Rule.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "NetworkEndpointGroupServerlessDeployment": { "description": "Configuration for a serverless network endpoint group (NEG). The platform must be provided. Note: The target backend service must be in the same project and located in the same region as the Serverless NEG.", "id": "NetworkEndpointGroupServerlessDeployment", "properties": { "platform": { - "description": "The platform of the backend target(s) of this NEG. Possible values include: 1. API Gateway: apigateway.googleapis.com 2. App Engine: appengine.googleapis.com 3. Cloud Functions: cloudfunctions.googleapis.com 4. Cloud Run: run.googleapis.com ", + "description": "The platform of the backend target(s) of this NEG. The only supported value is API Gateway: apigateway.googleapis.com.", "type": "string" }, "resource": { @@ -57794,10 +61899,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57821,10 +61928,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57892,10 +62001,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57919,10 +62030,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58040,13 +62153,17 @@ "type": "string" }, "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc.", + "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", "type": "string" }, "network": { "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", "type": "string" }, + "networkAttachment": { + "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "type": "string" + }, "networkIP": { "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", "type": "string" @@ -58065,6 +62182,10 @@ ], "type": "string" }, + "parentNicName": { + "description": "Name of the parent network interface of a VLAN based nic. If this field is specified, vlan must be set.", + "type": "string" + }, "queueCount": { "description": "The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It'll be empty if not specified by the users.", "format": "int32", @@ -58092,6 +62213,11 @@ "subnetwork": { "description": "The URL of the Subnetwork resource for this instance. If the network resource is in legacy mode, do not specify this field. If the network is in auto subnet mode, specifying the subnetwork is optional. If the network is in custom subnet mode, specifying the subnetwork is required. If you specify this field, you can specify the subnetwork as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/subnetwork ", "type": "string" + }, + "vlan": { + "description": "VLAN tag of a VLAN based network interface, must be in range from 2 to 4094 inclusively. This field is mandatory if the parent network interface name is set.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -58170,10 +62296,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58197,10 +62325,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58289,6 +62419,18 @@ "format": "int32", "type": "integer" }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", + "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." + ], + "type": "string" + }, "state": { "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", "enum": [ @@ -58643,10 +62785,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58670,10 +62814,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58791,10 +62937,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58818,10 +62966,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59042,10 +63192,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59069,10 +63221,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59140,10 +63294,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59167,10 +63323,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59224,6 +63382,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", @@ -59379,10 +63550,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59406,10 +63579,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59495,10 +63670,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59522,10 +63699,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59608,10 +63787,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59635,10 +63816,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59796,10 +63979,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59823,10 +64008,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59912,10 +64099,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59939,10 +64128,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60010,10 +64201,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60037,10 +64230,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60176,10 +64371,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60203,10 +64400,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60268,7 +64467,7 @@ }, "resendInterval": { "$ref": "Duration", - "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed." + "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints." }, "retryDurationSec": { "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", @@ -60319,10 +64518,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60346,10 +64547,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60417,10 +64620,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60444,10 +64649,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60522,6 +64729,27 @@ "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" @@ -60561,14 +64789,6 @@ "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", "type": "string" }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "[Output Only] Service-specific metadata attached to this operation.", - "type": "object" - }, "name": { "description": "[Output Only] Name of the operation.", "type": "string" @@ -60648,10 +64868,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60675,10 +64897,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60777,10 +65001,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60804,10 +65030,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60893,10 +65121,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60920,10 +65150,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60991,10 +65223,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61018,10 +65252,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61102,22 +65338,22 @@ "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." }, "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.", + "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.", "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.", + "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.", "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.", + "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.", "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.", + "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.", "format": "int32", "type": "integer" }, @@ -61347,10 +65583,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61374,10 +65612,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61511,10 +65751,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61538,10 +65780,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61678,10 +65922,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61705,10 +65951,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61756,9 +66004,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 HTTP(S) load balancing." + }, "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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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 ", @@ -61801,6 +66053,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 HTTP(S) load balancing." + }, "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": { @@ -61810,7 +66066,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 external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -61838,12 +66094,12 @@ "id": "PerInstanceConfig", "properties": { "fingerprint": { - "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance config or the field needs to be unset.", + "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", "format": "byte", "type": "string" }, "name": { - "description": "The name of a per-instance config and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance config with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance config for a VM instance that either doesn't exist or is not part of the group will result in an error.", + "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", "type": "string" }, "preservedState": { @@ -61851,7 +66107,7 @@ "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy." }, "status": { - "description": "The status of applying this per-instance config on the corresponding managed instance.", + "description": "The status of applying this per-instance configuration on the corresponding managed instance.", "enum": [ "APPLYING", "DELETING", @@ -61861,12 +66117,12 @@ "UNAPPLIED_DELETION" ], "enumDescriptions": [ - "The per-instance config is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config is effective on the instance, meaning that all disks, ips and metadata specified in this config are attached or set on the instance.", - "*[Default]* The default status, when no per-instance config exists.", - "The per-instance config is set on an instance but not been applied yet.", - "The per-instance config has been deleted, but the deletion is not yet applied." + "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", + "*[Default]* The default status, when no per-instance configuration exists.", + "The per-instance configuration is set on an instance but not been applied yet.", + "The per-instance configuration has been deleted, but the deletion is not yet applied." ], "type": "string" } @@ -62265,6 +66521,22 @@ "$ref": "UsageExportLocation", "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored." }, + "vmDnsSetting": { + "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", + "enum": [ + "GLOBAL_DEFAULT", + "UNSPECIFIED_VM_DNS_SETTING", + "ZONAL_DEFAULT", + "ZONAL_ONLY" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, "xpnProjectStatus": { "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", "enum": [ @@ -62518,10 +66790,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62545,10 +66819,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62759,10 +67035,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62786,10 +67064,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62874,10 +67154,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62901,10 +67183,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63015,10 +67299,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63042,10 +67328,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63089,6 +67377,531 @@ }, "type": "object" }, + "QueuedResource": { + "description": "QueuedResource represents a request for future capacity. The capacity is delivered in the form of other GCE resources, either Instances or Reservations.", + "id": "QueuedResource", + "properties": { + "bulkInsertInstanceResource": { + "$ref": "BulkInsertInstanceResource", + "description": "Specification of VM instances to create." + }, + "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#queuedResource", + "description": "[Output Only] Type of the resource. Always compute#queuedResource for QueuedResources.", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "queuingPolicy": { + "$ref": "QueuingPolicy", + "description": "Queuing parameters for the requested capacity." + }, + "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" + }, + "state": { + "description": "[Output only] High-level status of the request.", + "enum": [ + "ACCEPTED", + "CANCELLED", + "CREATING", + "DELETING", + "FAILED", + "PROVISIONING", + "STATE_UNSPECIFIED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "The request was canceled by the user.", + "QueuedResource is being created and may still fail creation.", + "The request is being deleted.", + "The request failed before or during provisioning.", + "The target resource(s) are being provisioned.", + "", + "The request succeeded." + ], + "type": "string" + }, + "status": { + "$ref": "QueuedResourceStatus", + "description": "[Output only] Result of queuing and provisioning based on deferred capacity." + }, + "zone": { + "description": "[Output Only] URL of the zone where the resource resides. Only applicable for zonal 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" + } + }, + "type": "object" + }, + "QueuedResourceList": { + "id": "QueuedResourceList", + "properties": { + "id": { + "description": "Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of QueuedResource resources.", + "items": { + "$ref": "QueuedResource" + }, + "type": "array" + }, + "kind": { + "default": "compute#queuedResourceList", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "This token allows you to get the next page of results for maxResults, use the nextPageToken as a value 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": "Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "QueuedResourceStatus": { + "description": "[Output only] Result of queuing and provisioning based on deferred capacity.", + "id": "QueuedResourceStatus", + "properties": { + "failedData": { + "$ref": "QueuedResourceStatusFailedData", + "description": "Additional status detail for the FAILED state." + }, + "provisioningOperations": { + "description": "[Output only] Fully qualified URL of the provisioning GCE operation to track the provisioning along with provisioning errors. The referenced operation may not exist after having been deleted or expired.", + "items": { + "type": "string" + }, + "type": "array" + }, + "queuingPolicy": { + "$ref": "QueuingPolicy", + "description": "Constraints for the time when the resource(s) start provisioning. Always exposed as absolute times." + } + }, + "type": "object" + }, + "QueuedResourceStatusFailedData": { + "description": "Additional status detail for the FAILED state.", + "id": "QueuedResourceStatusFailedData", + "properties": { + "error": { + "description": "The error(s) that caused the QueuedResource to enter the FAILED state.", + "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" + }, + "QueuedResourcesAggregatedList": { + "id": "QueuedResourcesAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "QueuedResourcesScopedList", + "description": "Name of the scope containing this set of queued resources." + }, + "description": "A list of QueuedResourcesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#queuedResources", + "description": "[Output Only] Type of resource. Always compute#queuedResourcesAggregatedList for lists of QueuedResource.", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "QueuedResourcesScopedList": { + "id": "QueuedResourcesScopedList", + "properties": { + "queuedResources": { + "description": "List of QueuedResources contained in this scope.", + "items": { + "$ref": "QueuedResource" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "QueuingPolicy": { + "description": "Queuing parameters for the requested deferred capacity.", + "id": "QueuingPolicy", + "properties": { + "validUntilDuration": { + "$ref": "Duration", + "description": "Relative deadline for waiting for capacity." + }, + "validUntilTime": { + "description": "Absolute deadline for waiting for capacity in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "Quota": { "description": "A quotas entry.", "id": "Quota", @@ -63103,7 +67916,6 @@ "enum": [ "A2_CPUS", "AFFINITY_GROUPS", - "ALIASES_PER_NETWORK_GLOBAL", "AMD_S9300_GPUS", "AUTOSCALERS", "BACKEND_BUCKETS", @@ -63125,6 +67937,7 @@ "COMMITTED_N2A_CPUS", "COMMITTED_N2D_CPUS", "COMMITTED_N2_CPUS", + "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", "COMMITTED_NVIDIA_P100_GPUS", @@ -63143,13 +67956,16 @@ "EXTERNAL_VPN_GATEWAYS", "FIREWALLS", "FORWARDING_RULES", + "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", + "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", "GLOBAL_INTERNAL_ADDRESSES", + "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", "HEALTH_CHECKS", "IMAGES", "INSTANCES", - "INSTANCES_PER_NETWORK_GLOBAL", "INSTANCE_GROUPS", "INSTANCE_GROUP_MANAGERS", "INSTANCE_TEMPLATES", @@ -63158,8 +67974,6 @@ "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS", "INTERCONNECT_TOTAL_GBPS", "INTERNAL_ADDRESSES", - "INTERNAL_FORWARDING_RULES_PER_NETWORK", - "INTERNAL_FORWARDING_RULES_WITH_TARGET_INSTANCE_PER_NETWORK", "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES", "IN_PLACE_SNAPSHOTS", "IN_USE_ADDRESSES", @@ -63179,6 +67993,7 @@ "NETWORK_FIREWALL_POLICIES", "NODE_GROUPS", "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", "NVIDIA_P100_GPUS", @@ -63192,6 +68007,7 @@ "PD_EXTREME_TOTAL_PROVISIONED_IOPS", "PREEMPTIBLE_CPUS", "PREEMPTIBLE_LOCAL_SSD_GB", + "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", @@ -63202,13 +68018,17 @@ "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", "PREEMPTIBLE_NVIDIA_V100_GPUS", "PRIVATE_V6_ACCESS_SUBNETWORKS", - "PSC_GOOGLE_APIS_FORWARDING_RULES_PER_NETWORK", "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", "PSC_INTERNAL_LB_FORWARDING_RULES", "PUBLIC_ADVERTISED_PREFIXES", "PUBLIC_DELEGATED_PREFIXES", + "QUEUED_RESOURCES", "REGIONAL_AUTOSCALERS", + "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", "REGIONAL_INSTANCE_GROUP_MANAGERS", + "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", + "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -63224,8 +68044,8 @@ "SSL_CERTIFICATES", "STATIC_ADDRESSES", "STATIC_BYOIP_ADDRESSES", + "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", "SUBNETWORKS", - "SUBNET_RANGES_PER_NETWORK", "T2A_CPUS", "T2D_CPUS", "TARGET_HTTPS_PROXIES", @@ -63359,6 +68179,13 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -63394,6 +68221,33 @@ }, "type": "object" }, + "QuotaExceededInfo": { + "description": "Additional details for quota exceeded error for resource quota.", + "id": "QuotaExceededInfo", + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": "The map holding related quota dimensions.", + "type": "object" + }, + "limit": { + "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, + "limitName": { + "description": "The name of the quota limit.", + "type": "string" + }, + "metricName": { + "description": "The Compute Engine quota metric name.", + "type": "string" + } + }, + "type": "object" + }, "RbacPolicy": { "id": "RbacPolicy", "properties": { @@ -63513,6 +68367,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", @@ -63555,10 +68423,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63582,10 +68452,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63683,10 +68555,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63710,10 +68584,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63808,17 +68684,7 @@ "id": "RegionDisksStopAsyncReplicationRequest", "properties": { "asyncSecondaryDisk": { - "description": "The secondary disk to stop asynchronous replication to. Supplied if and only if the target disk is a primary disk in an asynchronously replicated pair. 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" - }, - "RegionDisksStopGroupAsyncReplicationRequest": { - "id": "RegionDisksStopGroupAsyncReplicationRequest", - "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 ", + "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" } }, @@ -63866,10 +68732,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63893,10 +68761,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63996,10 +68866,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64023,10 +68895,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64075,7 +68949,7 @@ "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -64089,7 +68963,7 @@ "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -64257,10 +69131,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64284,10 +69160,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64517,10 +69395,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64544,10 +69424,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64684,10 +69566,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64711,10 +69595,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64859,7 +69745,7 @@ "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", "properties": { "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. Currently exactly one SslCertificate resource must be specified.", + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", "items": { "type": "string" }, @@ -64883,7 +69769,7 @@ "id": "RequestMirrorPolicy", "properties": { "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to.", + "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", "type": "string" } }, @@ -64893,6 +69779,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" @@ -64925,6 +69815,17 @@ "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." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -64939,7 +69840,7 @@ }, "shareSettings": { "$ref": "ShareSettings", - "description": "Share-settings for shared-reservation" + "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation." }, "specificReservation": { "$ref": "AllocationSpecificSKUReservation", @@ -65060,10 +69961,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65087,10 +69990,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65175,10 +70080,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65202,10 +70109,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65284,10 +70193,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65311,10 +70222,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65372,7 +70285,7 @@ "type": "string" }, "type": { - "description": "Type of resource for which this commitment applies. Possible values are VCPU and MEMORY", + "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", "enum": [ "ACCELERATOR", "LOCAL_SSD", @@ -65426,10 +70339,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65453,10 +70368,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65511,6 +70428,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." @@ -65636,10 +70557,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65663,10 +70586,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65730,12 +70655,18 @@ }, "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", "properties": { "availabilityDomainCount": { - "description": "The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network", + "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", "format": "int32", "type": "integer" }, @@ -65767,6 +70698,11 @@ ], "type": "string" }, + "maxDistance": { + "description": "Specifies the number of max logical switches.", + "format": "int32", + "type": "integer" + }, "scope": { "description": "Scope specifies the availability domain to which the VMs should be spread.", "enum": [ @@ -65793,8 +70729,12 @@ ], "type": "string" }, + "tpuTopology": { + "description": "Specifies the shape of the TPU slice", + "type": "string" + }, "vmCount": { - "description": "Number of vms in this placement group", + "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", "format": "int32", "type": "integer" } @@ -65903,10 +70843,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65930,10 +70872,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66195,9 +71139,20 @@ "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": { + "physicalHost": { + "description": "[Output Only] An opaque ID of the host on which the VM is running.", + "type": "string" + }, "scheduling": { "$ref": "ResourceStatusScheduling" }, + "serviceIntegrationStatuses": { + "additionalProperties": { + "$ref": "ResourceStatusServiceIntegrationStatus" + }, + "description": "[Output Only] Represents the status of the service integration specs defined by the user in instance.serviceIntegrationSpecs.", + "type": "object" + }, "upcomingMaintenance": { "$ref": "ResourceStatusUpcomingMaintenance" } @@ -66211,6 +71166,49 @@ "description": "Specifies the availability domain (AD), which this instance should be scheduled on. The AD belongs to the spread GroupPlacementPolicy resource policy that has been assigned to the instance. Specify a value between 1-max count of availability domains in your GroupPlacementPolicy. See go/placement-policy-extension for more details.", "format": "int32", "type": "integer" + }, + "terminationTimestamp": { + "description": "Time in future when the instance will be terminated in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, + "ResourceStatusServiceIntegrationStatus": { + "description": "Represents the status of integration between instance and another service. See go/gce-backupdr-design for more details.", + "id": "ResourceStatusServiceIntegrationStatus", + "properties": { + "backupDr": { + "$ref": "ResourceStatusServiceIntegrationStatusBackupDRStatus" + } + }, + "type": "object" + }, + "ResourceStatusServiceIntegrationStatusBackupDRStatus": { + "description": "Message defining compute perspective of the result of integration with Backup and DR. FAILED status indicates that the operation specified did not complete correctly and should be retried with the same value.", + "id": "ResourceStatusServiceIntegrationStatusBackupDRStatus", + "properties": { + "integrationDetails": { + "description": "The PlanReference object created by Backup and DR to maintain the actual status of backups. May still be present if removing the backup plan fails.", + "type": "string" + }, + "state": { + "description": "Enum representing the registration state of a Backup and DR backup plan for the instance.", + "enum": [ + "ACTIVE", + "CREATING", + "DELETING", + "FAILED", + "STATE_UNSPECIFIED" + ], + "enumDescriptions": [ + "The operation was successful and Backup and DR is trying to protect the instance with the specified backup plan. Check resource pointed to in integration_details for more information.", + "GCE is trying to attach the backup plan to the instance.", + "GCE is trying to remove the backup plan from the instance.", + "The operation failed, specifying the same value in BackupDrSpec.plan again (including null for delete) will attempt to repair the integration", + "Default value, should not be found on instances." + ], + "type": "string" } }, "type": "object" @@ -66364,15 +71362,13 @@ "ACTIVE", "DROPPED", "INACTIVE", - "PENDING", - "UNKNOWN_ROUTE_STATUS" + "PENDING" ], "enumDescriptions": [ "This route is processed and active.", "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", - "This route is being processed internally. The status will change once processed.", - "" + "This route is being processed internally. The status will change once processed." ], "type": "string" }, @@ -66427,10 +71423,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66454,10 +71452,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66575,10 +71575,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66602,10 +71604,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66673,7 +71677,7 @@ "type": "string" }, "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). Not currently available publicly. ", + "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", "type": "boolean" }, "id": { @@ -66807,10 +71811,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66834,10 +71840,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67221,10 +72229,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67248,10 +72258,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67324,6 +72336,24 @@ "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 IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, PREMIUM tier will be used.", + "enum": [ + "FIXED_STANDARD", + "PREMIUM", + "SELECT", + "STANDARD", + "STANDARD_OVERRIDES_FIXED_STANDARD" + ], + "enumDescriptions": [ + "Public internet quality with fixed bandwidth.", + "High quality, Google-grade network tier, support for all networking products.", + "Price competitive 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": { @@ -67339,14 +72369,16 @@ "type": "boolean" }, "endpointTypes": { - "description": "List of Natted endpoint types supported by the Nat Gateway. If the list is empty, then it will be equivalent to include ENDPOINT_TYPE_VM", + "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 Secure Web Gateway (go/securewebgateway) endpoints.", + "This is used for Regional Internal/External HTTP(S) and TCP Proxy load balancer endpoints.", + "This is used for Secure Web Gateway endpoints.", "This is the default." ], "type": "string" @@ -67854,10 +72886,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67881,10 +72915,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67998,25 +73034,25 @@ "id": "SSLHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -68033,11 +73069,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -68162,6 +73198,20 @@ "description": "An instance-attached disk resource.", "id": "SavedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk.", + "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" + }, "kind": { "default": "compute#savedDisk", "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", @@ -68222,7 +73272,7 @@ "type": "object" }, "Scheduling": { - "description": "Sets the scheduling options for an Instance. NextID: 21", + "description": "Sets the scheduling options for an Instance.", "id": "Scheduling", "properties": { "automaticRestart": { @@ -68277,7 +73327,7 @@ "type": "integer" }, "maintenanceInterval": { - "description": "For more information about maintenance intervals, see Setting maintenance intervals.", + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ "PERIODIC" ], @@ -68303,7 +73353,7 @@ "type": "array" }, "onHostMaintenance": { - "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies.", + "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", "enum": [ "MIGRATE", "TERMINATE" @@ -68448,10 +73498,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68475,10 +73527,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -68555,10 +73609,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68582,10 +73638,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -68723,7 +73781,7 @@ "type": "integer" }, "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", + "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", "items": { "$ref": "SecurityPolicyRule" }, @@ -68742,6 +73800,7 @@ "enum": [ "CLOUD_ARMOR", "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_INTERNAL_SERVICE", "CLOUD_ARMOR_NETWORK", "FIREWALL" ], @@ -68749,9 +73808,17 @@ "", "", "", + "", "" ], "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" @@ -68760,6 +73827,9 @@ "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", "id": "SecurityPolicyAdaptiveProtectionConfig", "properties": { + "autoDeployConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig" + }, "layer7DdosDefenseConfig": { "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", "description": "If set to true, enables Cloud Armor Machine Learning." @@ -68767,6 +73837,29 @@ }, "type": "object" }, + "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig": { + "description": "Configuration options for Adaptive Protection auto-deploy feature.", + "id": "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig", + "properties": { + "confidenceThreshold": { + "format": "float", + "type": "number" + }, + "expirationSec": { + "format": "int32", + "type": "integer" + }, + "impactedBaselineThreshold": { + "format": "float", + "type": "number" + }, + "loadThreshold": { + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { "description": "Configuration options for L7 DDoS detection.", "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", @@ -68793,6 +73886,10 @@ "SecurityPolicyAdvancedOptionsConfig": { "id": "SecurityPolicyAdvancedOptionsConfig", "properties": { + "jsonCustomConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD." + }, "jsonParsing": { "enum": [ "DISABLED", @@ -68818,6 +73915,19 @@ }, "type": "object" }, + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "properties": { + "contentTypes": { + "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SecurityPolicyAssociation": { "id": "SecurityPolicyAssociation", "properties": { @@ -68915,10 +74025,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68942,10 +74054,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -69049,6 +74163,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" @@ -69071,16 +74193,14 @@ "type": "string" }, "ruleManagedProtectionTier": { - "description": "[Output Only] The minimum managed protection tier required for this rule.", + "description": "[Output Only] The minimum managed protection tier required for this rule. [Deprecated] Use requiredManagedProtectionTiers instead.", "enum": [ - "CAMP_PLUS", - "CAMP_PREMIUM", - "CAMP_STANDARD" + "NONE", + "PLUS" ], "enumDescriptions": [ - "Plus tier protection.", - "Premium tier protection.", - "Standard tier protection." + "Standard protection.", + "Plus tier protection." ], "type": "string" }, @@ -69233,6 +74353,173 @@ }, "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": { @@ -69250,13 +74537,16 @@ "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 this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. ", + "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. ", "enum": [ "ALL", "ALL_IPS", "HTTP_COOKIE", "HTTP_HEADER", + "HTTP_PATH", "IP", + "REGION_CODE", + "SNI", "XFF_IP" ], "enumDescriptions": [ @@ -69265,10 +74555,20 @@ "", "", "", + "", + "", + "", "" ], "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" @@ -69277,6 +74577,10 @@ "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.", "type": "string" }, + "exceedActionRpcStatus": { + "$ref": "SecurityPolicyRuleRateLimitOptionsRpcStatus", + "description": "Specified gRPC response status for proxyless gRPC requests that are above the configured rate limit threshold" + }, "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." @@ -69288,6 +74592,58 @@ }, "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. ", + "enum": [ + "ALL", + "ALL_IPS", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "XFF_IP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "SecurityPolicyRuleRateLimitOptionsRpcStatus": { + "description": "Simplified google.rpc.Status type (omitting details).", + "id": "SecurityPolicyRuleRateLimitOptionsRpcStatus", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "message": { + "description": "A developer-facing error message, which should be in English.", + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyRuleRateLimitOptionsThreshold": { "id": "SecurityPolicyRuleRateLimitOptionsThreshold", "properties": { @@ -69326,6 +74682,46 @@ }, "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", @@ -69342,6 +74738,10 @@ "$ref": "AuthorizationConfig", "description": "[Deprecated] Authorization config defines the Role Based Access Control (RBAC) config. Authorization config defines the Role Based Access Control (RBAC) config." }, + "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.", "type": "string" @@ -69622,10 +75022,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -69649,10 +75051,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -69714,6 +75118,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -69721,6 +75126,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The consumer is still connected but not using the connection.", "" @@ -69738,6 +75144,10 @@ "format": "uint32", "type": "integer" }, + "networkUrl": { + "description": "The network URL for the network to set the limit for.", + "type": "string" + }, "projectIdOrNum": { "description": "The project id or number for the project to set the limit for.", "type": "string" @@ -69786,10 +75196,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -69813,10 +75225,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -69884,10 +75298,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -69911,10 +75327,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -69958,6 +75376,27 @@ }, "type": "object" }, + "ServiceIntegrationSpec": { + "description": "Specifies the parameters to configure an integration with instances.", + "id": "ServiceIntegrationSpec", + "properties": { + "backupDr": { + "$ref": "ServiceIntegrationSpecBackupDRSpec" + } + }, + "type": "object" + }, + "ServiceIntegrationSpecBackupDRSpec": { + "description": "Specifies parameters to Backup and DR to attach a BackupPlan to a compute instance for managed VM backup.", + "id": "ServiceIntegrationSpecBackupDRSpec", + "properties": { + "plan": { + "description": "The BackupPlan resource to attach to the instance. Specified as a resource reference in instances, and regional instance templates, and as just the plan name in global instance templates", + "type": "string" + } + }, + "type": "object" + }, "ShareSettings": { "description": "The share setting for reservations and sole tenancy node groups.", "id": "ShareSettings", @@ -70206,6 +75645,11 @@ "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", "type": "string" }, + "creationSizeBytes": { + "description": "[Output Only] Size in bytes of the snapshot at creation time.", + "format": "int64", + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -70276,6 +75720,11 @@ "description": "An opaque location hint used to place the snapshot close to other resources. This field is for use by internal tools that use the public API.", "type": "string" }, + "maxRetentionDays": { + "description": "Number of days the snapshot should be retained before being deleted automatically.", + "format": "int32", + "type": "integer" + }, "name": { "annotations": { "required": [ @@ -70334,6 +75783,14 @@ "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" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "type": "string" + }, "status": { "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", "enum": [ @@ -70428,10 +75885,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -70455,10 +75914,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -70521,7 +75982,7 @@ "id": "SourceInstanceParams", "properties": { "diskConfigs": { - "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", + "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", "items": { "$ref": "DiskInstantiationConfig" }, @@ -70561,7 +76022,7 @@ "type": "array" }, "keyRevocationActionType": { - "description": "KeyRevocationActionType of the instance.", + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", "enum": [ "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", "NONE", @@ -70764,10 +76225,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -70791,10 +76254,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -70880,10 +76345,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -70907,10 +76374,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71052,10 +76521,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -71079,10 +76550,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71178,10 +76651,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -71205,10 +76680,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71293,10 +76770,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -71320,10 +76799,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71403,10 +76884,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -71430,10 +76913,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71584,10 +77069,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -71611,10 +77098,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -71792,7 +77281,7 @@ "type": "boolean" }, "externalIpv6Prefix": { - "description": "[Output Only] The range of external IPv6 addresses that are owned by this subnetwork.", + "description": "The external IPv6 address range that is owned by this subnetwork.", "type": "string" }, "fingerprint": { @@ -71815,7 +77304,7 @@ "type": "string" }, "internalIpv6Prefix": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this is for general VM to VM communication, not to be confused with the ipv6_cidr_range field.", + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", "type": "string" }, "ipCidrRange": { @@ -71823,19 +77312,19 @@ "type": "string" }, "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path.", + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", "enum": [ "EXTERNAL", "INTERNAL" ], "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accesible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." ], "type": "string" }, "ipv6CidrRange": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this will be for private google access only eventually.", + "description": "[Output Only] This field is for internal use.", "type": "string" }, "kind": { @@ -71873,28 +77362,19 @@ "type": "boolean" }, "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch.", + "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", "enum": [ "DISABLE_GOOGLE_ACCESS", "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE", - "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS" + "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" ], "enumDescriptions": [ "Disable private IPv6 access to/from Google services.", "Bidirectional private IPv6 access to/from Google services.", - "Outbound private IPv6 access from VMs in this subnet to Google services.", - "Deprecated in favor of enable PrivateIpv6GoogleAccess on instance directly. Outbound private IPv6 access is enabled per VM based on Service Accounts. This applies only to VMs with primary service accounts as listed in private_ipv6_google_access_service_account." + "Outbound private IPv6 access from VMs in this subnet to Google services." ], "type": "string" }, - "privateIpv6GoogleAccessServiceAccounts": { - "description": "Deprecated in favor of enable PrivateIpv6GoogleAccess on instance directly. The service accounts can be used to selectively turn on Private IPv6 Google Access only on the VMs primary service account matching the value. This value only takes effect when PrivateIpv6GoogleAccess is ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.", - "items": { - "type": "string" - }, - "type": "array" - }, "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.", "enum": [ @@ -72040,10 +77520,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72067,10 +77549,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -72156,10 +77640,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72183,10 +77669,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -72344,10 +77832,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72371,10 +77861,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -72454,25 +77946,25 @@ "id": "TCPHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -72489,11 +77981,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -72616,10 +78108,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72643,10 +78137,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -72714,10 +78210,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72741,10 +78239,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -72899,10 +78399,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -72926,10 +78428,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73015,10 +78519,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73042,10 +78548,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73113,10 +78621,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73140,10 +78650,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73386,10 +78898,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73413,10 +78927,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73502,10 +79018,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73529,10 +79047,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73608,7 +79128,7 @@ "type": "string" }, "natPolicy": { - "description": "NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported.", + "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", "enum": [ "NO_NAT" ], @@ -73621,6 +79141,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" @@ -73685,10 +79209,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73712,10 +79238,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73801,10 +79329,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73828,10 +79358,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -73899,10 +79431,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -73926,10 +79460,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -74027,6 +79563,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" @@ -74111,10 +79651,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -74138,10 +79680,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -74244,10 +79788,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -74271,10 +79817,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -74394,10 +79942,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -74421,10 +79971,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -74635,10 +80187,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -74662,10 +80216,114 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "TargetTcpProxiesScopedList": { + "id": "TargetTcpProxiesScopedList", + "properties": { + "targetTcpProxies": { + "description": "A list of TargetTcpProxies contained in this scope.", + "items": { + "$ref": "TargetTcpProxy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -74795,6 +80453,133 @@ }, "type": "object" }, + "TargetTcpProxyAggregatedList": { + "id": "TargetTcpProxyAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "TargetTcpProxiesScopedList", + "description": "Name of the scope containing this set of TargetTcpProxies." + }, + "description": "A list of TargetTcpProxiesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#targetTcpProxyAggregatedList", + "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "TargetTcpProxyList": { "description": "Contains a list of TargetTcpProxy resources.", "id": "TargetTcpProxyList", @@ -74837,10 +80622,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -74864,10 +80651,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -75054,10 +80843,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -75081,10 +80872,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -75170,10 +80963,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -75197,10 +80992,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -75268,10 +81065,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -75295,10 +81094,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -75507,12 +81308,12 @@ "id": "UDPHealthCheck", "properties": { "port": { - "description": "The UDP port number for the health check request. Valid values are 1 through 65535.", + "description": "The UDP port number to which the health check prober sends packets. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "request": { @@ -75541,7 +81342,7 @@ "type": "object" }, "UpcomingMaintenance": { - "description": "Upcoming Maintenance notification information. TODO(b/196881882) Deprecate this proto once it's fully migrated to be under proto ResourceStatus.UpcomingMaintenance.", + "description": "Upcoming Maintenance notification information. TODO(b/242069500) Deprecate this proto once it's fully migrated to be under proto ResourceStatus.UpcomingMaintenance.", "id": "UpcomingMaintenance", "properties": { "canReschedule": { @@ -75598,9 +81399,13 @@ "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 HTTP(S) load balancing." + }, "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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to 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 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." }, "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.", @@ -75712,10 +81517,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -75739,10 +81546,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -75934,10 +81743,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -75961,10 +81772,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76032,10 +81845,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -76059,10 +81874,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76153,6 +81970,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" @@ -76161,14 +81982,72 @@ "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", "id": "UsableSubnetwork", "properties": { + "externalIpv6Prefix": { + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "internalIpv6Prefix": { + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, "ipCidrRange": { "description": "The range of internal addresses that are owned by this subnetwork.", "type": "string" }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." + ], + "type": "string" + }, "network": { "description": "Network URL.", "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.", + "enum": [ + "AGGREGATE", + "CLOUD_EXTENSION", + "GLOBAL_MANAGED_PROXY", + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_NAT", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "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.", + "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." + ], + "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.", + "enum": [ + "ACTIVE", + "BACKUP" + ], + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], + "type": "string" + }, "secondaryIpRanges": { "description": "Secondary IP ranges.", "items": { @@ -76176,6 +82055,18 @@ }, "type": "array" }, + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses." + ], + "type": "string" + }, "subnetwork": { "description": "Subnetwork URL.", "type": "string" @@ -76239,10 +82130,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -76266,10 +82159,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76469,10 +82364,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -76496,10 +82393,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76605,7 +82504,7 @@ "type": "string" }, "stackType": { - "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used.", + "description": "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" @@ -76675,10 +82574,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -76702,10 +82603,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76791,10 +82694,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -76818,10 +82723,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -76964,11 +82871,11 @@ "type": "integer" }, "interconnectAttachment": { - "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. ", + "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", "type": "string" }, "ipAddress": { - "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", + "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" } }, @@ -77007,10 +82914,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77034,10 +82943,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -77146,7 +83057,7 @@ "type": "string" }, "peerExternalGatewayInterface": { - "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created.", + "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", "format": "int32", "type": "integer" }, @@ -77228,7 +83139,7 @@ "type": "string" }, "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.", + "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", "format": "int32", "type": "integer" } @@ -77284,10 +83195,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77311,10 +83224,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -77400,10 +83315,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77427,10 +83344,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -77498,10 +83417,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77525,10 +83446,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -77667,10 +83590,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77694,10 +83619,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -77870,10 +83797,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -77897,10 +83826,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", diff --git a/etc/api/compute/beta/compute-api.json b/etc/api/compute/beta/compute-api.json index 003ec5e103..46b094a941 100644 --- a/etc/api/compute/beta/compute-api.json +++ b/etc/api/compute/beta/compute-api.json @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -239,7 +239,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -305,7 +305,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -498,7 +498,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -660,7 +660,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -853,7 +853,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1296,7 +1296,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1596,7 +1596,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1887,7 +1887,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2187,7 +2187,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2291,7 +2291,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2407,7 +2407,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2708,7 +2708,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3184,7 +3184,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3609,7 +3609,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4038,7 +4038,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4219,7 +4219,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4412,7 +4412,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4782,7 +4782,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5024,7 +5024,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5430,7 +5430,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5486,7 +5486,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5551,7 +5551,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5677,7 +5677,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5828,7 +5828,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5993,7 +5993,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6094,7 +6094,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6262,7 +6262,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6551,7 +6551,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6840,7 +6840,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7302,7 +7302,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7563,7 +7563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7657,7 +7657,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.createInstances", @@ -7798,7 +7798,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", @@ -7933,7 +7933,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7996,7 +7996,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8054,7 +8054,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.", + "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`.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listManagedInstances", @@ -8065,7 +8065,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8123,7 +8123,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listPerInstanceConfigs", @@ -8134,7 +8134,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8240,7 +8240,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", @@ -8675,7 +8675,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", @@ -8784,7 +8784,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8972,7 +8972,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9024,7 +9024,7 @@ ] }, "listInstances": { - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.", + "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators.", "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", "httpMethod": "POST", "id": "compute.instanceGroups.listInstances", @@ -9035,7 +9035,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9400,7 +9400,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9641,7 +9641,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9747,7 +9747,7 @@ ] }, "bulkInsert": { - "description": "Creates multiple instances. Count specifies the number of instances to create.", + "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.", "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", "httpMethod": "POST", "id": "compute.instances.bulkInsert", @@ -10395,7 +10395,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -10459,7 +10459,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -10569,7 +10569,7 @@ ] }, "reset": { - "description": "Performs a reset on the instance. This is a hard reset the VM does not do a graceful shutdown. For more information, see Resetting an instance.", + "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", "id": "compute.instances.reset", @@ -11165,7 +11165,7 @@ ] }, "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 availability policies.", + "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", "httpMethod": "POST", "id": "compute.instances.setScheduling", @@ -11564,6 +11564,11 @@ "instance" ], "parameters": { + "discardLocalSsd": { + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Name of the instance resource to stop.", "location": "path", @@ -11612,7 +11617,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).", + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", "location": "query", "type": "boolean" }, @@ -12060,7 +12065,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12258,7 +12263,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12505,7 +12510,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12555,7 +12560,7 @@ "interconnects": { "methods": { "delete": { - "description": "Deletes the specified interconnect.", + "description": "Deletes the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "DELETE", "id": "compute.interconnects.delete", @@ -12594,7 +12599,7 @@ ] }, "get": { - "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.", + "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "GET", "id": "compute.interconnects.get", @@ -12629,7 +12634,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -12664,7 +12669,7 @@ ] }, "insert": { - "description": "Creates a Interconnect in the specified project using the data included in the request.", + "description": "Creates an Interconnect in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "POST", "id": "compute.interconnects.insert", @@ -12698,7 +12703,7 @@ ] }, "list": { - "description": "Retrieves the list of interconnect available to the specified project.", + "description": "Retrieves the list of Interconnects available to the specified project.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "GET", "id": "compute.interconnects.list", @@ -12707,7 +12712,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12753,7 +12758,7 @@ ] }, "patch": { - "description": "Updates the specified interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "PATCH", "id": "compute.interconnects.patch", @@ -13112,7 +13117,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13400,7 +13405,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13534,7 +13539,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13638,7 +13643,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13692,6 +13697,667 @@ } } }, + "networkAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/networkAttachments", + "response": { + "$ref": "NetworkAttachmentAggregatedList" + }, + "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 NetworkAttachment in the given scope", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "DELETE", + "id": "compute.networkAttachments.delete", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of 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}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified NetworkAttachment resource in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "GET", + "id": "compute.networkAttachments.get", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "response": { + "$ref": "NetworkAttachment" + }, + "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}/networkAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.networkAttachments.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}/networkAttachments/{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 NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "POST", + "id": "compute.networkAttachments.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 of 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", + "request": { + "$ref": "NetworkAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the NetworkAttachments for a project in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments", + "response": { + "$ref": "NetworkAttachmentList" + }, + "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}/networkAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "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}/regions/{region}/networkAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{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" + ] + } + } + }, + "networkEdgeSecurityServices": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project.", + "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/networkEdgeSecurityServices", + "response": { + "$ref": "NetworkEdgeSecurityServiceAggregatedList" + }, + "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 service.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "DELETE", + "id": "compute.networkEdgeSecurityServices.delete", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service 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 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}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Gets a specified NetworkEdgeSecurityService.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.get", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to get.", + "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" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "response": { + "$ref": "NetworkEdgeSecurityService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new service in the specified project using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "httpMethod": "POST", + "id": "compute.networkEdgeSecurityServices.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 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "PATCH", + "id": "compute.networkEdgeSecurityServices.patch", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service 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" + }, + "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": "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" + }, + "updateMask": { + "description": "Indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "networkEndpointGroups": { "methods": { "aggregatedList": { @@ -13704,7 +14370,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13988,7 +14654,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14051,7 +14717,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14546,7 +15212,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15044,7 +15710,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15113,7 +15779,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15442,7 +16108,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15742,7 +16408,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15806,7 +16472,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16010,6 +16676,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", @@ -16070,7 +16786,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16312,7 +17028,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16469,7 +17185,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16573,7 +17289,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16897,7 +17613,7 @@ "id": "compute.organizationSecurityPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17159,7 +17875,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17352,7 +18068,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17697,7 +18413,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17751,7 +18467,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18093,7 +18809,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18194,7 +18910,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18387,7 +19103,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18636,7 +19352,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19071,7 +19787,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19328,7 +20044,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19474,7 +20190,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19741,7 +20457,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20093,7 +20809,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20592,7 +21308,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20886,7 +21602,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21180,7 +21896,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.createInstances", @@ -21321,7 +22037,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", @@ -21456,7 +22172,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21519,7 +22235,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21577,7 +22293,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.", + "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`.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listManagedInstances", @@ -21588,7 +22304,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21646,7 +22362,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", @@ -21657,7 +22373,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21763,7 +22479,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", @@ -22199,7 +22915,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", @@ -22302,7 +23018,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22365,7 +23081,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22707,7 +23423,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23262,7 +23978,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23763,7 +24479,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23958,7 +24674,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24055,6 +24771,260 @@ } } }, + "regionSecurityPolicies": { + "methods": { + "delete": { + "description": "Deletes the specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSecurityPolicies.delete", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy 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}/securityPolicies/{securityPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "List all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.get", + "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 get.", + "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}", + "response": { + "$ref": "SecurityPolicy" + }, + "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", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.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 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "List all the policies that have been configured for the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies", + "response": { + "$ref": "SecurityPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request. 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.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSecurityPolicies.patch", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "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}", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "regionSslCertificates": { "methods": { "delete": { @@ -24200,7 +25170,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24300,6 +25270,361 @@ } } }, + "regionSslPolicies": { + "methods": { + "delete": { + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSslPolicies.delete", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Lists all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.get", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "response": { + "$ref": "SslPolicy" + }, + "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 and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "POST", + "id": "compute.regionSslPolicies.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 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}/sslPolicies", + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists all the SSL policies that have been configured for the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies", + "response": { + "$ref": "SslPoliciesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listAvailableFeatures": { + "description": "Lists all features that can be specified in the SSL policy when using custom profile.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.listAvailableFeatures", + "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "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 SSL policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSslPolicies.patch", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "request": { + "$ref": "SslPolicy" + }, + "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}/sslPolicies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionSslPolicies.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}/sslPolicies/{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" + ] + } + } + }, "regionTargetHttpProxies": { "methods": { "delete": { @@ -24445,7 +25770,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24740,7 +26065,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24792,6 +26117,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "id": "compute.regionTargetHttpsProxies.patch", + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "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" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy 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" + } + }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setSslCertificates": { "description": "Replaces SslCertificates for TargetHttpsProxy.", "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", @@ -24940,6 +26315,251 @@ } } }, + "regionTargetTcpProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "id": "compute.regionTargetTcpProxies.delete", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "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" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy 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}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "id": "compute.regionTargetTcpProxies.get", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "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" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy 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}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "TargetTcpProxy" + }, + "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 TargetTcpProxy resource in the specified project and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "POST", + "id": "compute.regionTargetTcpProxies.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 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}/targetTcpProxies", + "request": { + "$ref": "TargetTcpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.regionTargetTcpProxies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionTargetTcpProxies.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}/targetTcpProxies/{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" + ] + } + } + }, "regionUrlMaps": { "methods": { "delete": { @@ -25135,7 +26755,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25427,7 +27047,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25486,7 +27106,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25728,7 +27348,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25996,7 +27616,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26238,7 +27858,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26395,7 +28015,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26547,7 +28167,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26707,7 +28327,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27073,7 +28693,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27202,6 +28822,66 @@ "https://www.googleapis.com/auth/compute" ] }, + "aggregatedList": { + "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/securityPolicies", + "httpMethod": "GET", + "id": "compute.securityPolicies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/securityPolicies", + "response": { + "$ref": "SecurityPoliciesAggregatedList" + }, + "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 policy.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", @@ -27366,7 +29046,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27421,7 +29101,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27467,7 +29147,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", + "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.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -27685,7 +29365,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27927,7 +29607,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28281,7 +29961,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28452,7 +30132,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28620,7 +30300,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28707,6 +30387,66 @@ }, "sslPolicies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/sslPolicies", + "httpMethod": "GET", + "id": "compute.sslPolicies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/sslPolicies", + "response": { + "$ref": "SslPoliciesAggregatedList" + }, + "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 SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", @@ -28823,7 +30563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28878,7 +30618,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29016,7 +30756,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29308,7 +31048,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29370,7 +31110,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29739,7 +31479,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29878,7 +31618,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30046,7 +31786,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30227,7 +31967,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30395,7 +32135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30741,7 +32481,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30934,7 +32674,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31146,7 +32886,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31385,7 +33125,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -31761,7 +33501,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32056,6 +33796,66 @@ }, "targetTcpProxies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyAggregatedList" + }, + "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 TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", @@ -32174,7 +33974,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32355,7 +34155,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32548,7 +34348,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32710,7 +34510,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -32920,7 +34720,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33138,7 +34938,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33374,7 +35174,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33536,7 +35336,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33729,7 +35529,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -33974,7 +35774,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34118,7 +35918,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -34166,9 +35966,32 @@ } } }, - "revision": "20220224", + "revision": "20230103", "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", @@ -34281,10 +36104,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34308,10 +36133,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34397,10 +36224,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34424,10 +36253,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34495,10 +36326,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34522,10 +36355,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34684,6 +36519,18 @@ ], "type": "string" }, + "ipv6EndpointType": { + "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", + "enum": [ + "NETLB", + "VM" + ], + "enumDescriptions": [ + "Reserved IPv6 address can be used on network load balancer.", + "Reserved IPv6 address can be used on VM." + ], + "type": "string" + }, "kind": { "default": "compute#address", "description": "[Output Only] Type of the resource. Always compute#address for addresses.", @@ -34737,22 +36584,24 @@ "type": "integer" }, "purpose": { - "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", + "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", "enum": [ "DNS_RESOLVER", "GCE_ENDPOINT", "IPSEC_INTERCONNECT", "NAT_AUTO", "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", "SHARED_LOADBALANCER_VIP", "VPC_PEERING" ], "enumDescriptions": [ "DNS resolver address in the subnetwork.", "VM internal/alias IP, Internal LB service IP, etc.", - "A regional internal IP address range reserved for the VLAN attachment that is used in IPsec-encrypted Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", + "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", "External IP automatically reserved for Cloud NAT.", "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", "IP range for peer networks." ], @@ -34843,10 +36692,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34870,10 +36721,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34959,10 +36812,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34986,10 +36841,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35057,10 +36914,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35084,10 +36943,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35147,6 +37008,11 @@ "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", "format": "int32", "type": "integer" + }, + "visibleCoreCount": { + "description": "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -35166,6 +37032,28 @@ }, "type": "object" }, + "AllocationResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "AllocationResourceStatus", + "properties": { + "specificSkuAllocation": { + "$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" + } + }, + "type": "object" + }, "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", "properties": { @@ -35221,7 +37109,7 @@ "type": "integer" }, "maintenanceInterval": { - "description": "For more information about maintenance intervals, see Setting maintenance intervals.", + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ "PERIODIC" ], @@ -35238,7 +37126,7 @@ "type": "object" }, "AllocationSpecificSKUReservation": { - "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 5", + "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 6", "id": "AllocationSpecificSKUReservation", "properties": { "assuredCount": { @@ -35259,6 +37147,10 @@ "instanceProperties": { "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", "description": "The instance properties for the reservation." + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "type": "string" } }, "type": "object" @@ -35267,6 +37159,20 @@ "description": "An instance-attached disk resource.", "id": "AttachedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk. 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" + }, "autoDelete": { "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", "type": "boolean" @@ -35288,6 +37194,10 @@ "format": "int64", "type": "string" }, + "forceAttach": { + "description": "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", + "type": "boolean" + }, "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": { @@ -35305,7 +37215,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.", + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", "enum": [ "NVME", "SCSI" @@ -35375,9 +37285,23 @@ "type": "object" }, "AttachedDiskInitializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", "id": "AttachedDiskInitializeParams", "properties": { + "architecture": { + "description": "The architecture of the attached disk. 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" + }, "description": { "description": "An optional description. Provide this property when creating the disk.", "type": "string" @@ -35392,7 +37316,7 @@ "type": "string" }, "diskType": { - "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL.", + "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" }, "guestOsFeatures": { @@ -35439,6 +37363,13 @@ "format": "int64", "type": "string" }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + }, "resourcePolicies": { "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", "items": { @@ -35452,7 +37383,7 @@ }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys." + "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." }, "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.", @@ -35688,10 +37619,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35715,10 +37648,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35804,10 +37739,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35831,10 +37768,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35960,10 +37899,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35987,10 +37928,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36261,7 +38204,7 @@ "type": "string" }, "capacityScaler": { - "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.", + "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", "format": "float", "type": "number" }, @@ -36308,7 +38251,7 @@ "type": "number" }, "maxUtilization": { - "description": "Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", + "description": "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" } @@ -36488,7 +38431,7 @@ "type": "array" }, "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters.", + "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters.", "items": { "type": "string" }, @@ -36556,10 +38499,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36583,10 +38528,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36635,7 +38582,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 one day (86,400). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "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.", "format": "int32", "type": "integer" }, @@ -36756,6 +38703,13 @@ ], "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.", + "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.", "enum": [ @@ -36799,7 +38753,7 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." + "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. " }, "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.", @@ -36885,7 +38839,7 @@ "$ref": "Subsetting" }, "timeoutSec": { - "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 is 1 - 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.", + "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" } @@ -36942,10 +38896,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36969,10 +38925,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37279,10 +39237,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -37306,10 +39266,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37353,12 +39315,71 @@ }, "type": "object" }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "properties": { + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + }, + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "description": "The configuration for a custom policy implemented by the user and deployed with the client.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "properties": { + "data": { + "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "description": "The configuration for a built-in load balancing policy.", + "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.", + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN", + "WEIGHTED_MAGLEV" + ], + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", + "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default.", + "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" + } + }, + "type": "object" + }, "BackendServiceLogConfig": { "description": "The available logging options for the load balancer traffic served by this backend service.", "id": "BackendServiceLogConfig", "properties": { "enable": { - "description": "This field denotes whether to enable logging for the load balancer traffic served by this backend service.", + "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", "type": "boolean" }, "sampleRate": { @@ -37402,10 +39423,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -37429,10 +39452,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37732,7 +39757,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -37760,7 +39785,7 @@ }, "locationPolicy": { "$ref": "LocationPolicy", - "description": "Policy for chosing target zone." + "description": "Policy for chosing target zone. For more information, see Create VMs in bulk ." }, "minCount": { "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", @@ -37796,6 +39821,21 @@ }, "type": "object" }, + "BundledLocalSsds": { + "id": "BundledLocalSsds", + "properties": { + "defaultInterface": { + "description": "The default disk interface if the interface is not specified.", + "type": "string" + }, + "partitionCount": { + "description": "The number of partitions.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "CacheInvalidationRule": { "id": "CacheInvalidationRule", "properties": { @@ -37940,6 +39980,13 @@ "$ref": "LicenseResourceCommitment", "description": "The license specification required as part of a license commitment." }, + "mergeSourceCommitments": { + "description": "List of source commitments to be merged into a new commitment.", + "items": { + "type": "string" + }, + "type": "array" + }, "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])?", @@ -37981,6 +40028,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "splitSourceCommitment": { + "description": "Source commitment to be splitted into a new commitment.", + "type": "string" + }, "startTimestamp": { "description": "[Output Only] Commitment start time in RFC3339 text format.", "type": "string" @@ -37989,6 +40040,7 @@ "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", + "CANCELLED", "CREATING", "EXPIRED", "NOT_YET_ACTIVE" @@ -37997,6 +40049,7 @@ "", "", "", + "", "" ], "type": "string" @@ -38017,6 +40070,7 @@ "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -38029,6 +40083,7 @@ "", "", "", + "", "" ], "type": "string" @@ -38085,10 +40140,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38112,10 +40169,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38201,10 +40260,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38228,10 +40289,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38299,10 +40362,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38326,10 +40391,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38538,7 +40605,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", + "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -38657,6 +40724,20 @@ "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/beta/disks) * [Regional](/compute/docs/reference/rest/beta/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": { + "architecture": { + "description": "The architecture of the disk. 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" @@ -38765,6 +40846,10 @@ "description": "Internal use only.", "type": "string" }, + "params": { + "$ref": "DiskParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + }, "physicalBlockSizeBytes": { "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", "format": "int64", @@ -38946,10 +41031,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38973,10 +41060,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39103,10 +41192,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39130,10 +41221,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39191,6 +41284,20 @@ }, "type": "object" }, + "DiskParams": { + "description": "Additional disk params.", + "id": "DiskParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + } + }, + "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", @@ -39295,10 +41402,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39322,10 +41431,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39411,10 +41522,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39438,10 +41551,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39509,10 +41624,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39536,10 +41653,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39644,10 +41763,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39671,10 +41792,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39736,11 +41859,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." ], @@ -39789,6 +41914,28 @@ }, "type": "object" }, + "ErrorInfo": { + "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": "ErrorInfo", + "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" + }, + "metadatas": { + "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" + }, "ExchangedPeeringRoute": { "id": "ExchangedPeeringRoute", "properties": { @@ -39867,10 +42014,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39894,10 +42043,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40097,10 +42248,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40124,10 +42277,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40256,7 +42411,7 @@ "type": "array" }, "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields.", + "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", "enum": [ "EGRESS", "INGRESS" @@ -40393,10 +42548,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40420,10 +42577,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40528,7 +42687,7 @@ "type": "string" }, "displayName": { - "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This 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.", + "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" }, @@ -40548,11 +42707,11 @@ "type": "string" }, "name": { - "description": "[Output Only] Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy.", + "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", "type": "string" }, "parent": { - "description": "[Output Only] The parent of the firewall policy.", + "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", "type": "string" }, "region": { @@ -40580,7 +42739,7 @@ "type": "string" }, "shortName": { - "description": "User-provided name of the Organization firewall plicy. The name should be unique in the organization in which the firewall policy is created. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" } @@ -40650,10 +42809,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40677,10 +42838,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40729,7 +42892,7 @@ "id": "FirewallPolicyRule", "properties": { "action": { - "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.", + "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", "type": "string" }, "description": { @@ -40770,6 +42933,10 @@ "format": "int32", "type": "integer" }, + "ruleName": { + "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", + "type": "string" + }, "ruleTupleCount": { "description": "[Output Only] Calculation of the complexity of a single firewall policy rule.", "format": "int32", @@ -40803,6 +42970,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": { @@ -40810,6 +42991,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": { @@ -40817,6 +43012,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": { @@ -40824,12 +43033,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" @@ -40901,7 +43124,7 @@ "id": "ForwardingRule", "properties": { "IPAddress": { - "description": "IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). Must be set to `0.0.0.0` when the target is targetGrpcProxy that has validateForProxyless field set to true. For Private Service Connect forwarding rules that forward traffic to Google APIs, IP address must be provided.", + "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", "type": "string" }, "IPProtocol": { @@ -40927,17 +43150,25 @@ "type": "string" }, "allPorts": { - "description": "This field is used along with the backend_service field for Internal TCP/UDP Load Balancing or Network Load Balancing, or with the target field for internal and external TargetInstance. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed to any ports will be forwarded to the target or backendService.", + "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.", "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.", "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.", "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": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -40957,7 +43188,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule.", + "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -41043,12 +43274,16 @@ ], "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.", + "type": "boolean" + }, "portRange": { - "description": "This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "type": "string" }, "ports": { - "description": "The ports field is only supported when the forwarding rule references a backend_service directly. Only packets addressed to the [specified list of ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)) are forwarded to backends. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. You can specify a list of up to five ports, which can be non-contiguous. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "items": { "type": "string" }, @@ -41063,6 +43298,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -41070,6 +43306,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The connection has been rejected by the producer.", "" @@ -41112,6 +43349,7 @@ "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. ", "type": "string" } }, @@ -41166,10 +43404,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41193,10 +43433,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41282,10 +43524,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41309,10 +43553,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41408,10 +43654,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41435,10 +43683,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41490,25 +43740,25 @@ "type": "string" }, "port": { - "description": "The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" } @@ -41575,7 +43825,7 @@ "additionalProperties": { "type": "string" }, - "description": "A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", + "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", "type": "object" } }, @@ -41672,13 +43922,14 @@ "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 - SECURE_BOOT - 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_SNP_CAPABLE For more information, see Enabling guest operating system features.", "enum": [ "FEATURE_TYPE_UNSPECIFIED", "GVNIC", "MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", + "SEV_SNP_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" @@ -41691,6 +43942,7 @@ "", "", "", + "", "" ], "type": "string" @@ -41702,29 +43954,29 @@ "id": "HTTP2HealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -41745,7 +43997,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -41755,29 +44007,29 @@ "id": "HTTPHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -41798,7 +44050,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -41808,29 +44060,29 @@ "id": "HTTPSHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -41851,7 +44103,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -41930,7 +44182,7 @@ "type": "integer" }, "type": { - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. Exactly one of the protocol-specific health check field must be specified, which must match type field.", + "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", "enum": [ "GRPC", "HTTP", @@ -42001,10 +44253,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42028,10 +44282,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42114,14 +44370,14 @@ "type": "string" }, "healthChecks": { - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NEGs.", + "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", "items": { "type": "string" }, "type": "array" }, "healthStatusAggregationPolicy": { - "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .", + "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", "enum": [ "AND", "NO_AGGREGATION" @@ -42160,7 +44416,7 @@ "type": "string" }, "networkEndpointGroups": { - "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService.", + "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", "items": { "type": "string" }, @@ -42235,10 +44491,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42262,10 +44520,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42358,10 +44618,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42385,10 +44647,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42456,10 +44720,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42483,10 +44749,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42632,6 +44900,35 @@ }, "type": "object" }, + "Help": { + "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", + "id": "Help", + "properties": { + "links": { + "description": "URL(s) pointing to additional information on handling the current error.", + "items": { + "$ref": "HelpLink" + }, + "type": "array" + } + }, + "type": "object" + }, + "HelpLink": { + "description": "Describes a URL link.", + "id": "HelpLink", + "properties": { + "description": { + "description": "Describes what the link offers.", + "type": "string" + }, + "url": { + "description": "The URL of the link.", + "type": "string" + } + }, + "type": "object" + }, "HostRule": { "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", "id": "HostRule", @@ -42641,7 +44938,7 @@ "type": "string" }, "hosts": { - "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "items": { "type": "string" }, @@ -42785,7 +45082,7 @@ "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL." }, "regexMatch": { - "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" }, "suffixMatch": { @@ -42923,10 +45220,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42950,10 +45249,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43014,7 +45315,7 @@ "type": "boolean" }, "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", "type": "string" } }, @@ -43097,7 +45398,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." + "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." }, "maxStreamDuration": { "$ref": "Duration", @@ -43169,7 +45470,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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -43208,6 +45509,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" @@ -43220,7 +45525,7 @@ "type": "array" }, "regexMatch": { - "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" } }, @@ -43335,10 +45640,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43362,10 +45669,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43413,6 +45722,20 @@ "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", "id": "Image", "properties": { + "architecture": { + "description": "The architecture of the image. 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" + }, "archiveSizeBytes": { "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", "format": "int64", @@ -43580,7 +45903,7 @@ }, "sourceType": { "default": "RAW", - "description": "The type of the image used to create this disk. The default and only value is RAW", + "description": "The type of the image used to create this disk. The default and only valid value is RAW.", "enum": [ "RAW" ], @@ -43674,10 +45997,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43701,10 +46026,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43847,6 +46174,24 @@ "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": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "kind": { "default": "compute#instance", "description": "[Output Only] Type of the resource. Always compute#instance for instances.", @@ -43956,6 +46301,10 @@ }, "type": "array" }, + "resourceStatus": { + "$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." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -44093,10 +46442,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44120,10 +46471,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44328,10 +46681,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44355,10 +46710,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44444,10 +46801,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44471,10 +46830,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44522,6 +46883,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": { @@ -44581,6 +46946,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" @@ -44590,6 +46959,18 @@ "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", "type": "string" }, + "listManagedInstancesResults": { + "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", + "enum": [ + "PAGELESS", + "PAGINATED" + ], + "enumDescriptions": [ + "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", + "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." + ], + "type": "string" + }, "name": { "annotations": { "required": [ @@ -44784,10 +47165,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44811,10 +47194,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44858,6 +47243,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": { @@ -44873,6 +47268,24 @@ }, "type": "object" }, + "InstanceGroupManagerInstanceLifecyclePolicy": { + "id": "InstanceGroupManagerInstanceLifecyclePolicy", + "properties": { + "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", @@ -44915,10 +47328,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44942,10 +47357,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44992,6 +47409,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" @@ -45011,20 +47432,34 @@ }, "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": { "hasStatefulConfig": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", + "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.", "type": "boolean" }, "isStateful": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions. This field is deprecated in favor of has_stateful_config.", + "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" }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configs on the instance." + "description": "[Output Only] Status of per-instance configurations on the instance." } }, "type": "object" @@ -45033,7 +47468,7 @@ "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", "properties": { "allEffective": { - "description": "A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", + "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", "type": "boolean" } }, @@ -45078,7 +47513,7 @@ "type": "integer" }, "minimalAction": { - "description": "Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.", + "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", "enum": [ "NONE", "REFRESH", @@ -45324,10 +47759,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45351,10 +47788,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45403,7 +47842,7 @@ "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -45464,10 +47903,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45491,10 +47932,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45583,7 +48026,7 @@ "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -45646,10 +48089,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45673,10 +48118,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45775,10 +48222,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45802,10 +48251,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45909,10 +48360,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45936,10 +48389,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46025,10 +48480,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46052,10 +48509,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46244,6 +48703,20 @@ }, "type": "array" }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -46351,6 +48824,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": { @@ -46454,10 +48948,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46481,10 +48977,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46727,10 +49225,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46754,10 +49254,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47024,7 +49526,7 @@ "type": "string" }, "nocContactEmail": { - "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.", + "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", "type": "string" }, "operationalStatus": { @@ -47182,13 +49684,13 @@ "type": "string" }, "encryption": { - "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. ", + "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", "enum": [ "IPSEC", "NONE" ], "enumDescriptions": [ - "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use IPsec-encrypted Cloud Interconnect, the interconnect attachment must be created with this option.", + "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." ], "type": "string" @@ -47390,10 +49892,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47417,10 +49921,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47506,10 +50012,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47533,10 +50041,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47635,10 +50145,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47662,10 +50174,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47739,6 +50253,30 @@ }, "type": "array" }, + "bundleAggregationType": { + "description": "The aggregation type of the bundle interface.", + "enum": [ + "BUNDLE_AGGREGATION_TYPE_LACP", + "BUNDLE_AGGREGATION_TYPE_STATIC" + ], + "enumDescriptions": [ + "LACP is enabled.", + "LACP is disabled." + ], + "type": "string" + }, + "bundleOperationalStatus": { + "description": "The operational status of the bundle interface.", + "enum": [ + "BUNDLE_OPERATIONAL_STATUS_DOWN", + "BUNDLE_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", + "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." + ], + "type": "string" + }, "links": { "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", "items": { @@ -47844,6 +50382,18 @@ "lacpStatus": { "$ref": "InterconnectDiagnosticsLinkLACPStatus" }, + "operationalStatus": { + "description": "The operational status of the link.", + "enum": [ + "LINK_OPERATIONAL_STATUS_DOWN", + "LINK_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "The interface is unable to communicate with the remote end.", + "The interface has low level communication with the remote end." + ], + "type": "string" + }, "receivingOpticalPower": { "$ref": "InterconnectDiagnosticsLinkOpticalPower", "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level." @@ -47897,10 +50447,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47924,10 +50476,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48121,10 +50675,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48148,10 +50704,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48524,10 +51082,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48551,10 +51111,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48618,6 +51180,21 @@ }, "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", + "properties": { + "locale": { + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "type": "string" + }, + "message": { + "description": "The localized error message in the above locale.", + "type": "string" + } + }, + "type": "object" + }, "LocationPolicy": { "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", "id": "LocationPolicy", @@ -48649,8 +51226,12 @@ "LocationPolicyLocation": { "id": "LocationPolicyLocation", "properties": { + "constraints": { + "$ref": "LocationPolicyLocationConstraints", + "description": "Constraints that the caller requires on the result distribution in this zone." + }, "preference": { - "description": "Preference for a given location.", + "description": "Preference for a given location. Set to either ALLOW or DENY.", "enum": [ "ALLOW", "DENY", @@ -48666,6 +51247,18 @@ }, "type": "object" }, + "LocationPolicyLocationConstraints": { + "description": "Per-zone constraints on location policy for this zone.", + "id": "LocationPolicyLocationConstraints", + "properties": { + "maxCount": { + "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "LogConfig": { "description": "This is deprecated and has no effect. Do not use.", "id": "LogConfig", @@ -48915,10 +51508,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48942,10 +51537,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49011,6 +51608,10 @@ }, "type": "array" }, + "bundledLocalSsds": { + "$ref": "BundledLocalSsds", + "description": "[Output Only] The configuration of bundled local SSD for the machine type." + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -49122,10 +51723,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49149,10 +51752,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49238,10 +51843,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49265,10 +51872,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49336,10 +51945,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49363,10 +51974,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49414,6 +52027,10 @@ "description": "A Managed Instance resource.", "id": "ManagedInstance", "properties": { + "allInstancesConfig": { + "$ref": "ManagedInstanceAllInstancesConfig", + "description": "[Output Only] Current all-instances configuration revision applied to this instance." + }, "currentAction": { "description": "[Output Only] The current action that the managed instance group has scheduled for the instance. Possible values: - NONE The instance is running, and the managed instance group does not have any scheduled actions for this instance. - CREATING The managed instance group is creating this instance. If the group fails to create this instance, it will try again until it is successful. - CREATING_WITHOUT_RETRIES The managed instance group is attempting to create this instance only once. If the group fails to create this instance, it does not try again and the group's targetSize value is decreased instead. - RECREATING The managed instance group is recreating this instance. - DELETING The managed instance group is permanently deleting this instance. - ABANDONING The managed instance group is abandoning this instance. The instance will be removed from the instance group and from any target pools that are associated with this group. - RESTARTING The managed instance group is restarting the instance. - REFRESHING The managed instance group is applying configuration changes to the instance without stopping it. For example, the group can update the target pool list for an instance without stopping that instance. - VERIFYING The managed instance group has created the instance and it is in the process of being verified. ", "enum": [ @@ -49511,6 +52128,16 @@ }, "type": "object" }, + "ManagedInstanceAllInstancesConfig": { + "id": "ManagedInstanceAllInstancesConfig", + "properties": { + "revision": { + "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "ManagedInstanceInstanceHealth": { "id": "ManagedInstanceInstanceHealth", "properties": { @@ -49553,6 +52180,27 @@ "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" @@ -49718,6 +52366,10 @@ "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. .", "type": "boolean" }, + "firewallPolicy": { + "description": "[Output Only] URL of the firewall policy the network is associated with.", + "type": "string" + }, "gatewayIPv4": { "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", @@ -49738,7 +52390,7 @@ "type": "string" }, "mtu": { - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460 and the maximum value is 1500 bytes. If unspecified, defaults to 1460.", + "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", "format": "int32", "type": "integer" }, @@ -49793,6 +52445,772 @@ }, "type": "object" }, + "NetworkAttachment": { + "description": "NetworkAttachments A network attachment resource ...", + "id": "NetworkAttachment", + "properties": { + "connectionEndpoints": { + "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", + "items": { + "$ref": "NetworkAttachmentConnectedEndpoint" + }, + "type": "array" + }, + "connectionPreference": { + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "INVALID" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "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" + }, + "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.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#networkAttachment", + "description": "[Output Only] Type of the resource.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.networkAttachments.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" + }, + "network": { + "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "type": "string" + }, + "producerAcceptLists": { + "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "producerRejectLists": { + "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "[Output Only] URL of the region where the network 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" + }, + "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" + }, + "subnetworks": { + "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkAttachmentAggregatedList": { + "description": "Contains a list of NetworkAttachmentsScopedList.", + "id": "NetworkAttachmentAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkAttachmentsScopedList", + "description": "Name of the scope containing this set of NetworkAttachments." + }, + "description": "A list of NetworkAttachmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkAttachmentAggregatedList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentConnectedEndpoint": { + "description": "[Output Only] A connection connected to this network attachment.", + "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.", + "type": "string" + }, + "projectIdOrNum": { + "description": "The project id or number of the interface to which the IP was assigned.", + "type": "string" + }, + "secondaryIpCidrRanges": { + "description": "Alias IP ranges from the same subnetwork", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "The status of a connected endpoint to this network attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The consumer allows traffic from the producer to reach its VPC.", + "The consumer network attachment no longer exists.", + "The consumer needs to take further action before traffic can be served.", + "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", + "The consumer prohibits traffic from the producer to reach its VPC.", + "" + ], + "type": "string" + }, + "subnetwork": { + "description": "The subnetwork used to assign the IP to the producer instance network interface.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkAttachmentList": { + "id": "NetworkAttachmentList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkAttachment resources.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "kind": { + "default": "compute#networkAttachmentList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentsScopedList": { + "id": "NetworkAttachmentsScopedList", + "properties": { + "networkAttachments": { + "description": "A list of NetworkAttachments contained in this scope.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of network attachments when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkEdgeSecurityService": { + "description": "Represents a Google Cloud Armor network edge security service resource.", + "id": "NetworkEdgeSecurityService", + "properties": { + "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" + }, + "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 NetworkEdgeSecurityService. An up-to-date fingerprint must be provided in order to update the NetworkEdgeSecurityService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.", + "format": "byte", + "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#networkEdgeSecurityService", + "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "securityPolicy": { + "description": "The resource URL for the network edge security service associated with this network edge security service.", + "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" + } + }, + "type": "object" + }, + "NetworkEdgeSecurityServiceAggregatedList": { + "id": "NetworkEdgeSecurityServiceAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkEdgeSecurityServicesScopedList", + "description": "Name of the scope containing this set of security policies." + }, + "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkEdgeSecurityServiceAggregatedList", + "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkEdgeSecurityServicesScopedList": { + "id": "NetworkEdgeSecurityServicesScopedList", + "properties": { + "networkEdgeSecurityServices": { + "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "items": { + "$ref": "NetworkEdgeSecurityService" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "NetworkEndpoint": { "description": "The network endpoint.", "id": "NetworkEndpoint", @@ -49904,8 +53322,11 @@ ], "type": "string" }, + "pscData": { + "$ref": "NetworkEndpointGroupPscData" + }, "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API. 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": { @@ -49985,10 +53406,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50012,10 +53435,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50068,7 +53493,7 @@ "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": "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": { @@ -50087,7 +53512,7 @@ "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": "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" } }, @@ -50177,10 +53602,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50204,10 +53631,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50251,12 +53680,48 @@ }, "type": "object" }, + "NetworkEndpointGroupPscData": { + "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", + "id": "NetworkEndpointGroupPscData", + "properties": { + "consumerPscAddress": { + "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", + "type": "string" + }, + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", + "format": "uint64", + "type": "string" + }, + "pscConnectionStatus": { + "description": "[Output Only] The connection status of the PSC Forwarding Rule.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "NetworkEndpointGroupServerlessDeployment": { "description": "Configuration for a serverless network endpoint group (NEG). The platform must be provided. Note: The target backend service must be in the same project and located in the same region as the Serverless NEG.", "id": "NetworkEndpointGroupServerlessDeployment", "properties": { "platform": { - "description": "The platform of the backend target(s) of this NEG. Possible values include: 1. API Gateway: apigateway.googleapis.com 2. App Engine: appengine.googleapis.com 3. Cloud Functions: cloudfunctions.googleapis.com 4. Cloud Run: run.googleapis.com ", + "description": "The platform of the backend target(s) of this NEG. The only supported value is API Gateway: apigateway.googleapis.com.", "type": "string" }, "resource": { @@ -50371,10 +53836,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50398,10 +53865,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50469,10 +53938,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50496,10 +53967,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50617,13 +54090,17 @@ "type": "string" }, "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc.", + "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", "type": "string" }, "network": { "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", "type": "string" }, + "networkAttachment": { + "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "type": "string" + }, "networkIP": { "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", "type": "string" @@ -50708,10 +54185,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50735,10 +54214,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50823,6 +54304,18 @@ "format": "int32", "type": "integer" }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", + "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." + ], + "type": "string" + }, "state": { "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", "enum": [ @@ -51154,10 +54647,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51181,10 +54676,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51302,10 +54799,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51329,10 +54828,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51549,10 +55050,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51576,10 +55079,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51647,10 +55152,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51674,10 +55181,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51731,6 +55240,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", @@ -51882,10 +55404,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51909,10 +55433,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51998,10 +55524,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52025,10 +55553,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52111,10 +55641,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52138,10 +55670,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52295,10 +55829,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52322,10 +55858,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52411,10 +55949,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52438,10 +55978,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52509,10 +56051,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52536,10 +56080,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52643,7 +56189,7 @@ }, "resendInterval": { "$ref": "Duration", - "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed." + "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints." }, "retryDurationSec": { "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", @@ -52694,10 +56240,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52721,10 +56269,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52799,6 +56349,27 @@ "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" @@ -52913,10 +56484,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52940,10 +56513,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53042,10 +56617,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53069,10 +56646,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53158,10 +56737,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53185,10 +56766,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53256,10 +56839,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53283,10 +56868,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53357,22 +56944,22 @@ "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." }, "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.", + "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.", "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.", + "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.", "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.", + "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.", "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.", + "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.", "format": "int32", "type": "integer" }, @@ -53598,10 +57185,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53625,10 +57214,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53762,10 +57353,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53789,10 +57382,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53929,10 +57524,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53956,10 +57553,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54009,7 +57608,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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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 ", @@ -54061,7 +57660,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 external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -54078,12 +57677,12 @@ "id": "PerInstanceConfig", "properties": { "fingerprint": { - "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance config or the field needs to be unset.", + "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", "format": "byte", "type": "string" }, "name": { - "description": "The name of a per-instance config and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance config with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance config for a VM instance that either doesn't exist or is not part of the group will result in an error.", + "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", "type": "string" }, "preservedState": { @@ -54091,7 +57690,7 @@ "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy." }, "status": { - "description": "The status of applying this per-instance config on the corresponding managed instance.", + "description": "The status of applying this per-instance configuration on the corresponding managed instance.", "enum": [ "APPLYING", "DELETING", @@ -54101,12 +57700,12 @@ "UNAPPLIED_DELETION" ], "enumDescriptions": [ - "The per-instance config is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config is effective on the instance, meaning that all disks, ips and metadata specified in this config are attached or set on the instance.", - "*[Default]* The default status, when no per-instance config exists.", - "The per-instance config is set on an instance but not been applied yet.", - "The per-instance config has been deleted, but the deletion is not yet applied." + "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", + "*[Default]* The default status, when no per-instance configuration exists.", + "The per-instance configuration is set on an instance but not been applied yet.", + "The per-instance configuration has been deleted, but the deletion is not yet applied." ], "type": "string" } @@ -54341,6 +57940,22 @@ "$ref": "UsageExportLocation", "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored." }, + "vmDnsSetting": { + "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", + "enum": [ + "GLOBAL_DEFAULT", + "UNSPECIFIED_VM_DNS_SETTING", + "ZONAL_DEFAULT", + "ZONAL_ONLY" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, "xpnProjectStatus": { "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", "enum": [ @@ -54556,10 +58171,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54583,10 +58200,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54789,10 +58408,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54816,10 +58437,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54904,10 +58527,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54931,10 +58556,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55045,10 +58672,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55072,10 +58701,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55153,6 +58784,7 @@ "COMMITTED_N2A_CPUS", "COMMITTED_N2D_CPUS", "COMMITTED_N2_CPUS", + "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", "COMMITTED_NVIDIA_P100_GPUS", @@ -55171,8 +58803,12 @@ "EXTERNAL_VPN_GATEWAYS", "FIREWALLS", "FORWARDING_RULES", + "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", + "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", "GLOBAL_INTERNAL_ADDRESSES", + "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", "HEALTH_CHECKS", "IMAGES", @@ -55203,6 +58839,7 @@ "NETWORK_FIREWALL_POLICIES", "NODE_GROUPS", "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", "NVIDIA_P100_GPUS", @@ -55216,6 +58853,7 @@ "PD_EXTREME_TOTAL_PROVISIONED_IOPS", "PREEMPTIBLE_CPUS", "PREEMPTIBLE_LOCAL_SSD_GB", + "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", @@ -55231,7 +58869,11 @@ "PUBLIC_ADVERTISED_PREFIXES", "PUBLIC_DELEGATED_PREFIXES", "REGIONAL_AUTOSCALERS", + "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", "REGIONAL_INSTANCE_GROUP_MANAGERS", + "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", + "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -55247,6 +58889,7 @@ "SSL_CERTIFICATES", "STATIC_ADDRESSES", "STATIC_BYOIP_ADDRESSES", + "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", "SUBNETWORKS", "T2A_CPUS", "T2D_CPUS", @@ -55293,6 +58936,7 @@ "", "", "", + "", "Guest CPUs", "", "", @@ -55374,6 +59018,16 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -55392,6 +59046,7 @@ "", "", "", + "", "" ], "type": "string" @@ -55408,6 +59063,33 @@ }, "type": "object" }, + "QuotaExceededInfo": { + "description": "Additional details for quota exceeded error for resource quota.", + "id": "QuotaExceededInfo", + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": "The map holding related quota dimensions.", + "type": "object" + }, + "limit": { + "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, + "limitName": { + "description": "The name of the quota limit.", + "type": "string" + }, + "metricName": { + "description": "The Compute Engine quota metric name.", + "type": "string" + } + }, + "type": "object" + }, "Reference": { "description": "Represents a reference to a resource.", "id": "Reference", @@ -55541,10 +59223,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55568,10 +59252,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55669,10 +59355,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55696,10 +59384,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55822,10 +59512,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55849,10 +59541,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55952,10 +59646,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55979,10 +59675,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56031,7 +59729,7 @@ "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -56045,7 +59743,7 @@ "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -56193,10 +59891,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56220,10 +59920,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56393,10 +60095,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56420,10 +60124,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56550,10 +60256,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56577,10 +60285,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56725,7 +60435,7 @@ "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", "properties": { "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. Currently exactly one SslCertificate resource must be specified.", + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", "items": { "type": "string" }, @@ -56749,7 +60459,7 @@ "id": "RequestMirrorPolicy", "properties": { "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to.", + "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", "type": "string" } }, @@ -56791,6 +60501,17 @@ "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." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -56801,7 +60522,7 @@ }, "shareSettings": { "$ref": "ShareSettings", - "description": "Share-settings for shared-reservation" + "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation." }, "specificReservation": { "$ref": "AllocationSpecificSKUReservation", @@ -56922,10 +60643,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56949,10 +60672,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57037,10 +60762,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57064,10 +60791,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57146,10 +60875,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57173,10 +60904,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57234,7 +60967,7 @@ "type": "string" }, "type": { - "description": "Type of resource for which this commitment applies. Possible values are VCPU and MEMORY", + "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", "enum": [ "ACCELERATOR", "LOCAL_SSD", @@ -57288,10 +61021,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57315,10 +61050,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57490,10 +61227,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57517,10 +61256,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57589,7 +61330,7 @@ "id": "ResourcePolicyGroupPlacementPolicy", "properties": { "availabilityDomainCount": { - "description": "The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network", + "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", "format": "int32", "type": "integer" }, @@ -57606,7 +61347,7 @@ "type": "string" }, "vmCount": { - "description": "Number of vms in this placement group", + "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", "format": "int32", "type": "integer" } @@ -57715,10 +61456,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57742,10 +61485,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57956,6 +61701,30 @@ }, "type": "object" }, + "ResourceStatus": { + "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": { + "physicalHost": { + "description": "[Output Only] An opaque ID of the host on which the VM is running.", + "type": "string" + }, + "scheduling": { + "$ref": "ResourceStatusScheduling" + } + }, + "type": "object" + }, + "ResourceStatusScheduling": { + "id": "ResourceStatusScheduling", + "properties": { + "terminationTimestamp": { + "description": "Time in future when the instance will be terminated in RFC3339 text format.", + "type": "string" + } + }, + "type": "object" + }, "RolloutPolicy": { "description": "A rollout policy configuration.", "id": "RolloutPolicy", @@ -58073,6 +61842,22 @@ "format": "uint32", "type": "integer" }, + "routeStatus": { + "description": "[Output only] The status of the route.", + "enum": [ + "ACTIVE", + "DROPPED", + "INACTIVE", + "PENDING" + ], + "enumDescriptions": [ + "This route is processed and active.", + "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", + "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", + "This route is being processed internally. The status will change once processed." + ], + "type": "string" + }, "routeType": { "description": "[Output Only] The type of this route, which can be one of the following values: - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers - 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this router - 'STATIC' for a static route", "enum": [ @@ -58120,10 +61905,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58147,10 +61934,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58268,10 +62057,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58295,10 +62086,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58366,7 +62159,7 @@ "type": "string" }, "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). Not currently available publicly. ", + "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", "type": "boolean" }, "id": { @@ -58386,6 +62179,13 @@ "description": "[Output Only] Type of resource. Always compute#router for routers.", "type": "string" }, + "md5AuthenticationKeys": { + "description": "Keys used for MD5 authentication.", + "items": { + "$ref": "RouterMd5AuthenticationKey" + }, + "type": "array" + }, "name": { "annotations": { "required": [ @@ -58489,10 +62289,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58516,10 +62318,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58695,6 +62499,10 @@ ], "type": "string" }, + "md5AuthenticationKeyName": { + "description": "Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035.", + "type": "string" + }, "name": { "annotations": { "required": [ @@ -58860,10 +62668,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58887,10 +62697,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58934,6 +62746,31 @@ }, "type": "object" }, + "RouterMd5AuthenticationKey": { + "id": "RouterMd5AuthenticationKey", + "properties": { + "key": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "[Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert", + "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.", + "type": "string" + } + }, + "type": "object" + }, "RouterNat": { "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", @@ -58952,6 +62789,21 @@ "enableEndpointIndependentMapping": { "type": "boolean" }, + "endpointTypes": { + "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_SWG", + "ENDPOINT_TYPE_VM" + ], + "enumDescriptions": [ + "This is used for Secure Web Gateway endpoints.", + "This is the default." + ], + "type": "string" + }, + "type": "array" + }, "icmpIdleTimeoutSec": { "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", "format": "int32", @@ -59198,14 +63050,26 @@ "bfdStatus": { "$ref": "BfdStatus" }, + "enableIpv6": { + "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", + "type": "boolean" + }, "ipAddress": { "description": "IP address of the local BGP interface.", "type": "string" }, + "ipv6NexthopAddress": { + "description": "IPv6 address of the local BGP interface.", + "type": "string" + }, "linkedVpnTunnel": { "description": "URL of the VPN tunnel that this BGP peer controls.", "type": "string" }, + "md5AuthEnabled": { + "description": "Informs whether MD5 authentication is enabled on this BGP peer.", + "type": "boolean" + }, "name": { "description": "Name of this BGP peer. Unique within the Routers resource.", "type": "string" @@ -59219,6 +63083,10 @@ "description": "IP address of the remote BGP interface.", "type": "string" }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the remote BGP interface.", + "type": "string" + }, "routerApplianceInstance": { "description": "[Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.", "type": "string" @@ -59241,6 +63109,18 @@ ], "type": "string" }, + "statusReason": { + "description": "Indicates why particular status was returned.", + "enum": [ + "MD5_AUTH_INTERNAL_PROBLEM", + "STATUS_REASON_UNSPECIFIED" + ], + "enumDescriptions": [ + "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", + "" + ], + "type": "string" + }, "uptime": { "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", "type": "string" @@ -59399,10 +63279,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59426,10 +63308,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59543,25 +63427,25 @@ "id": "SSLHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -59578,11 +63462,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -59705,6 +63589,20 @@ "description": "An instance-attached disk resource.", "id": "SavedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk.", + "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" + }, "kind": { "default": "compute#savedDisk", "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", @@ -59765,7 +63663,7 @@ "type": "object" }, "Scheduling": { - "description": "Sets the scheduling options for an Instance. NextID: 21", + "description": "Sets the scheduling options for an Instance.", "id": "Scheduling", "properties": { "automaticRestart": { @@ -59801,7 +63699,7 @@ "type": "integer" }, "maintenanceInterval": { - "description": "For more information about maintenance intervals, see Setting maintenance intervals.", + "description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.", "enum": [ "PERIODIC" ], @@ -59810,6 +63708,10 @@ ], "type": "string" }, + "maxRunDuration": { + "$ref": "Duration", + "description": "Specifies the max run duration for the given instance. If specified, the instance termination action will be performed at the end of the run duration." + }, "minNodeCpus": { "description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.", "format": "int32", @@ -59823,7 +63725,7 @@ "type": "array" }, "onHostMaintenance": { - "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies.", + "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", "enum": [ "MIGRATE", "TERMINATE" @@ -59849,6 +63751,10 @@ "Standard provisioning with user controlled runtime, no discounts." ], "type": "string" + }, + "terminationTime": { + "description": "Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.", + "type": "string" } }, "type": "object" @@ -59901,6 +63807,136 @@ }, "type": "object" }, + "SecurityPoliciesAggregatedList": { + "id": "SecurityPoliciesAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SecurityPoliciesScopedList", + "description": "Name of the scope containing this set of security policies." + }, + "description": "A list of SecurityPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#securityPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", "properties": { @@ -59910,6 +63946,108 @@ }, "type": "object" }, + "SecurityPoliciesScopedList": { + "id": "SecurityPoliciesScopedList", + "properties": { + "securityPolicies": { + "description": "A list of SecurityPolicies contained in this scope.", + "items": { + "$ref": "SecurityPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "SecurityPoliciesWafConfig": { "id": "SecurityPoliciesWafConfig", "properties": { @@ -59940,6 +64078,9 @@ "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, + "ddosProtectionConfig": { + "$ref": "SecurityPolicyDdosProtectionConfig" + }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" @@ -59988,13 +64129,17 @@ "recaptchaOptionsConfig": { "$ref": "SecurityPolicyRecaptchaOptionsConfig" }, + "region": { + "description": "[Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies.", + "type": "string" + }, "ruleTupleCount": { "description": "[Output Only] Total count of all security policy rule tuples. A security policy can not exceed a set number of tuples.", "format": "int32", "type": "integer" }, "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", + "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", "items": { "$ref": "SecurityPolicyRule" }, @@ -60013,9 +64158,11 @@ "enum": [ "CLOUD_ARMOR", "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_NETWORK", "FIREWALL" ], "enumDescriptions": [ + "", "", "", "" @@ -60029,6 +64176,9 @@ "description": "Configuration options for Cloud Armor Adaptive Protection (CAAP).", "id": "SecurityPolicyAdaptiveProtectionConfig", "properties": { + "autoDeployConfig": { + "$ref": "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig" + }, "layer7DdosDefenseConfig": { "$ref": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", "description": "If set to true, enables Cloud Armor Machine Learning." @@ -60036,6 +64186,29 @@ }, "type": "object" }, + "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig": { + "description": "Configuration options for Adaptive Protection auto-deploy feature.", + "id": "SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig", + "properties": { + "confidenceThreshold": { + "format": "float", + "type": "number" + }, + "expirationSec": { + "format": "int32", + "type": "integer" + }, + "impactedBaselineThreshold": { + "format": "float", + "type": "number" + }, + "loadThreshold": { + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig": { "description": "Configuration options for L7 DDoS detection.", "id": "SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig", @@ -60062,6 +64235,10 @@ "SecurityPolicyAdvancedOptionsConfig": { "id": "SecurityPolicyAdvancedOptionsConfig", "properties": { + "jsonCustomConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD." + }, "jsonParsing": { "enum": [ "DISABLED", @@ -60087,6 +64264,19 @@ }, "type": "object" }, + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "properties": { + "contentTypes": { + "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SecurityPolicyAssociation": { "id": "SecurityPolicyAssociation", "properties": { @@ -60109,6 +64299,23 @@ }, "type": "object" }, + "SecurityPolicyDdosProtectionConfig": { + "id": "SecurityPolicyDdosProtectionConfig", + "properties": { + "ddosProtection": { + "enum": [ + "ADVANCED", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyList": { "id": "SecurityPolicyList", "properties": { @@ -60146,10 +64353,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60173,10 +64382,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60280,6 +64491,10 @@ "$ref": "SecurityPolicyRuleMatcher", "description": "A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced." }, + "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" @@ -60422,6 +64637,92 @@ }, "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": { @@ -60439,13 +64740,16 @@ "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 this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. ", + "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. ", "enum": [ "ALL", "ALL_IPS", "HTTP_COOKIE", "HTTP_HEADER", + "HTTP_PATH", "IP", + "REGION_CODE", + "SNI", "XFF_IP" ], "enumDescriptions": [ @@ -60454,10 +64758,20 @@ "", "", "", + "", + "", + "", "" ], "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" @@ -60477,6 +64791,42 @@ }, "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. ", + "enum": [ + "ALL", + "ALL_IPS", + "HTTP_COOKIE", + "HTTP_HEADER", + "HTTP_PATH", + "IP", + "REGION_CODE", + "SNI", + "XFF_IP" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyRuleRateLimitOptionsThreshold": { "id": "SecurityPolicyRuleRateLimitOptionsThreshold", "properties": { @@ -60523,6 +64873,10 @@ "description": "[Deprecated] Use clientTlsPolicy instead.", "type": "string" }, + "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.", "type": "string" @@ -60767,10 +65121,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60794,10 +65150,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60859,6 +65217,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -60866,6 +65225,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The consumer is still connected but not using the connection.", "" @@ -60883,6 +65243,10 @@ "format": "uint32", "type": "integer" }, + "networkUrl": { + "description": "The network URL for the network to set the limit for.", + "type": "string" + }, "projectIdOrNum": { "description": "The project id or number for the project to set the limit for.", "type": "string" @@ -60931,10 +65295,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60958,10 +65324,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61029,10 +65397,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61056,10 +65426,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61301,6 +65673,20 @@ "description": "Represents a Persistent Disk Snapshot resource. You can use snapshots to back up data on a regular interval. For more information, read Creating persistent disk snapshots.", "id": "Snapshot", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the 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" + }, "autoCreated": { "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", "type": "boolean" @@ -61309,6 +65695,11 @@ "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", "type": "string" }, + "creationSizeBytes": { + "description": "[Output Only] Size in bytes of the snapshot at creation time.", + "format": "int64", + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -61394,6 +65785,18 @@ "$ref": "CustomerEncryptionKey", "description": "Encrypts the snapshot using a customer-supplied encryption key. After you encrypt a snapshot using a customer-supplied key, you must provide the same key if you use the snapshot later. For example, you must provide the encryption key when you create a disk from the encrypted snapshot in a future request. Customer-supplied encryption keys do not protect access to metadata of the snapshot. If you do not provide an encryption key when creating the snapshot, then the snapshot will be encrypted using an automatically generated key and you do not need to provide a key to use the snapshot later." }, + "snapshotType": { + "description": "Indicates the type of the snapshot.", + "enum": [ + "ARCHIVE", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "sourceDisk": { "description": "The source disk used to create this snapshot.", "type": "string" @@ -61406,6 +65809,14 @@ "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" }, + "sourceSnapshotSchedulePolicy": { + "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", + "type": "string" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "type": "string" + }, "status": { "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", "enum": [ @@ -61500,10 +65911,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61527,10 +65940,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61593,7 +66008,7 @@ "id": "SourceInstanceParams", "properties": { "diskConfigs": { - "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", + "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", "items": { "$ref": "DiskInstantiationConfig" }, @@ -61632,6 +66047,20 @@ }, "type": "array" }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -61818,10 +66247,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61845,10 +66276,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61934,10 +66367,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61961,10 +66396,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62106,10 +66543,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62133,10 +66572,142 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "SslPoliciesAggregatedList": { + "id": "SslPoliciesAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SslPoliciesScopedList", + "description": "Name of the scope containing this set of SSL policies." + }, + "description": "A list of SslPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#sslPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62221,10 +66792,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62248,10 +66821,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62307,6 +66882,108 @@ }, "type": "object" }, + "SslPoliciesScopedList": { + "id": "SslPoliciesScopedList", + "properties": { + "sslPolicies": { + "description": "A list of SslPolicies contained in this scope.", + "items": { + "$ref": "SslPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of SSL policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "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.", "id": "SslPolicy", @@ -62383,6 +67060,10 @@ ], "type": "string" }, + "region": { + "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -62402,10 +67083,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62429,10 +67112,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62582,7 +67267,7 @@ "type": "boolean" }, "externalIpv6Prefix": { - "description": "[Output Only] The range of external IPv6 addresses that are owned by this subnetwork.", + "description": "The external IPv6 address range that is owned by this subnetwork.", "type": "string" }, "fingerprint": { @@ -62600,7 +67285,7 @@ "type": "string" }, "internalIpv6Prefix": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this is for general VM to VM communication, not to be confused with the ipv6_cidr_range field.", + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", "type": "string" }, "ipCidrRange": { @@ -62608,19 +67293,19 @@ "type": "string" }, "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path.", + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", "enum": [ "EXTERNAL", "INTERNAL" ], "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accesible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." ], "type": "string" }, "ipv6CidrRange": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this will be for private google access only eventually.", + "description": "[Output Only] This field is for internal use.", "type": "string" }, "kind": { @@ -62646,7 +67331,7 @@ "type": "boolean" }, "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch.", + "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", "enum": [ "DISABLE_GOOGLE_ACCESS", "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", @@ -62681,6 +67366,10 @@ "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.", "enum": [ @@ -62780,10 +67469,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62807,10 +67498,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62896,10 +67589,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62923,10 +67618,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63042,6 +67739,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" @@ -63080,10 +67781,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63107,10 +67810,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63190,25 +67895,25 @@ "id": "TCPHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -63225,11 +67930,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -63352,10 +68057,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63379,10 +68086,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63450,10 +68159,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63477,10 +68188,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63631,10 +68344,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63658,10 +68373,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63747,10 +68464,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63774,10 +68493,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63845,10 +68566,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63872,10 +68595,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64114,10 +68839,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64141,10 +68868,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64230,10 +68959,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64257,10 +68988,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64336,7 +69069,7 @@ "type": "string" }, "natPolicy": { - "description": "NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported.", + "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", "enum": [ "NO_NAT" ], @@ -64409,10 +69142,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64436,10 +69171,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64525,10 +69262,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64552,10 +69291,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64623,10 +69364,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64650,10 +69393,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64831,10 +69576,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64858,10 +69605,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -64964,10 +69713,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -64991,10 +69742,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65114,10 +69867,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65141,10 +69896,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65355,10 +70112,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65382,10 +70141,114 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "TargetTcpProxiesScopedList": { + "id": "TargetTcpProxiesScopedList", + "properties": { + "targetTcpProxies": { + "description": "A list of TargetTcpProxies contained in this scope.", + "items": { + "$ref": "TargetTcpProxy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65500,6 +70363,10 @@ ], "type": "string" }, + "region": { + "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -65511,6 +70378,133 @@ }, "type": "object" }, + "TargetTcpProxyAggregatedList": { + "id": "TargetTcpProxyAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "TargetTcpProxiesScopedList", + "description": "Name of the scope containing this set of TargetTcpProxies." + }, + "description": "A list of TargetTcpProxiesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#targetTcpProxyAggregatedList", + "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "TargetTcpProxyList": { "description": "Contains a list of TargetTcpProxy resources.", "id": "TargetTcpProxyList", @@ -65553,10 +70547,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65580,10 +70576,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65770,10 +70768,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65797,10 +70797,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65886,10 +70888,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -65913,10 +70917,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -65984,10 +70990,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66011,10 +71019,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66155,7 +71165,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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to 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 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." }, "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.", @@ -66267,10 +71277,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66294,10 +71306,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66480,10 +71494,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66507,10 +71523,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66578,10 +71596,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66605,10 +71625,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66699,6 +71721,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" @@ -66707,14 +71733,64 @@ "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", "id": "UsableSubnetwork", "properties": { + "externalIpv6Prefix": { + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "internalIpv6Prefix": { + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, "ipCidrRange": { "description": "The range of internal addresses that are owned by this subnetwork.", "type": "string" }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." + ], + "type": "string" + }, "network": { "description": "Network URL.", "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.", + "enum": [ + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "enumDescriptions": [ + "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Regular user created or automatically created subnet.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + ], + "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.", + "enum": [ + "ACTIVE", + "BACKUP" + ], + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], + "type": "string" + }, "secondaryIpRanges": { "description": "Secondary IP ranges.", "items": { @@ -66722,6 +71798,18 @@ }, "type": "array" }, + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses." + ], + "type": "string" + }, "subnetwork": { "description": "Subnetwork URL.", "type": "string" @@ -66785,10 +71873,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66812,10 +71902,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -66919,6 +72011,13 @@ "format": "int32", "type": "integer" }, + "ruleMappings": { + "description": "Information about mappings provided by rules in this NAT.", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" + }, + "type": "array" + }, "sourceAliasIpRange": { "description": "Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP range. Examples: \"10.33.4.55/32\", or \"192.168.5.0/24\".", "type": "string" @@ -66930,6 +72029,42 @@ }, "type": "object" }, + "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { + "description": "Contains information of NAT Mappings provided by a NAT Rule.", + "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", + "properties": { + "drainNatIpPortRanges": { + "description": "List of all drain IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "natIpPortRanges": { + "description": "A list of all IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "numTotalDrainNatPorts": { + "description": "Total number of drain ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field drain_nat_ip_port_ranges.", + "format": "int32", + "type": "integer" + }, + "numTotalNatPorts": { + "description": "Total number of ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field nat_ip_port_ranges.", + "format": "int32", + "type": "integer" + }, + "ruleNumber": { + "description": "Rule number of the NAT Rule.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "VmEndpointNatMappingsList": { "description": "Contains a list of VmEndpointNatMappings.", "id": "VmEndpointNatMappingsList", @@ -66972,10 +72107,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -66999,10 +72136,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67108,7 +72247,7 @@ "type": "string" }, "stackType": { - "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used.", + "description": "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" @@ -67178,10 +72317,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67205,10 +72346,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67294,10 +72437,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67321,10 +72466,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67467,11 +72614,11 @@ "type": "integer" }, "interconnectAttachment": { - "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. ", + "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", "type": "string" }, "ipAddress": { - "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", + "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" } }, @@ -67510,10 +72657,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67537,10 +72686,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67649,7 +72800,7 @@ "type": "string" }, "peerExternalGatewayInterface": { - "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created.", + "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", "format": "int32", "type": "integer" }, @@ -67731,7 +72882,7 @@ "type": "string" }, "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.", + "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", "format": "int32", "type": "integer" } @@ -67787,10 +72938,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67814,10 +72967,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -67903,10 +73058,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -67930,10 +73087,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -68001,10 +73160,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68028,10 +73189,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -68170,10 +73333,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68197,10 +73362,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -68373,10 +73540,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -68400,10 +73569,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", diff --git a/etc/api/compute/v1/compute-api.json b/etc/api/compute/v1/compute-api.json index d236a1d492..a32c854ad2 100644 --- a/etc/api/compute/v1/compute-api.json +++ b/etc/api/compute/v1/compute-api.json @@ -135,7 +135,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -239,7 +239,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -305,7 +305,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -498,7 +498,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -549,6 +549,56 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "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", + "httpMethod": "POST", + "id": "compute.addresses.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}/addresses/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -564,7 +614,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -757,7 +807,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1113,7 +1163,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1338,7 +1388,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1544,6 +1594,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/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.backendServices.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/backendServices/{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 BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .", "flatPath": "projects/{project}/global/backendServices", @@ -1588,7 +1679,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1716,6 +1807,43 @@ "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/backendServices/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.backendServices.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/backendServices/{resource}/setIamPolicy", + "request": { + "$ref": "GlobalSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setSecurityPolicy": { "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview", "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy", @@ -1813,7 +1941,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1917,7 +2045,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2033,7 +2161,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2334,7 +2462,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -2749,7 +2877,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3174,7 +3302,7 @@ "id": "compute.firewallPolicies.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3603,7 +3731,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3746,7 +3874,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -3939,7 +4067,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4263,7 +4391,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4307,6 +4435,43 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "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", + "httpMethod": "POST", + "id": "compute.globalAddresses.setLabels", + "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/addresses/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -4430,7 +4595,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4798,7 +4963,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4854,7 +5019,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -4919,7 +5084,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5045,7 +5210,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5196,7 +5361,7 @@ "id": "compute.globalOrganizationOperations.list", "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5361,7 +5526,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5462,7 +5627,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5630,7 +5795,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -5881,7 +6046,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6132,7 +6297,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6556,7 +6721,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6817,7 +6982,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -6911,7 +7076,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.createInstances", @@ -7052,7 +7217,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.deletePerInstanceConfigs", @@ -7187,7 +7352,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7250,7 +7415,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7308,7 +7473,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.", + "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`.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listManagedInstances", @@ -7319,7 +7484,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7377,7 +7542,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listPerInstanceConfigs", @@ -7388,7 +7553,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -7494,7 +7659,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.patchPerInstanceConfigs", @@ -7739,7 +7904,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.instanceGroupManagers.updatePerInstanceConfigs", @@ -7848,7 +8013,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8036,7 +8201,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8088,7 +8253,7 @@ ] }, "listInstances": { - "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.", + "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use `eq` (equal) or `ne` (not equal) operators.", "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances", "httpMethod": "POST", "id": "compute.instanceGroups.listInstances", @@ -8099,7 +8264,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8418,7 +8583,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8659,7 +8824,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -8765,7 +8930,7 @@ ] }, "bulkInsert": { - "description": "Creates multiple instances. Count specifies the number of instances to create.", + "description": "Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.", "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert", "httpMethod": "POST", "id": "compute.instances.bulkInsert", @@ -9370,7 +9535,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9434,7 +9599,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -9544,7 +9709,7 @@ ] }, "reset": { - "description": "Performs a reset on the instance. This is a hard reset the VM does not do a graceful shutdown. For more information, see Resetting an instance.", + "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", "id": "compute.instances.reset", @@ -10087,7 +10252,7 @@ ] }, "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 availability policies.", + "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", "httpMethod": "POST", "id": "compute.instances.setScheduling", @@ -10436,6 +10601,11 @@ "instance" ], "parameters": { + "discardLocalSsd": { + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Name of the instance resource to stop.", "location": "path", @@ -10483,6 +10653,11 @@ "instance" ], "parameters": { + "discardLocalSsd": { + "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", + "location": "query", + "type": "boolean" + }, "instance": { "description": "Name of the instance resource to suspend.", "location": "path", @@ -10877,7 +11052,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11075,7 +11250,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11176,6 +11351,56 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "setLabels": { + "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.interconnectAttachments.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}/interconnectAttachments/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -11226,7 +11451,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11276,7 +11501,7 @@ "interconnects": { "methods": { "delete": { - "description": "Deletes the specified interconnect.", + "description": "Deletes the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "DELETE", "id": "compute.interconnects.delete", @@ -11315,7 +11540,7 @@ ] }, "get": { - "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.", + "description": "Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "GET", "id": "compute.interconnects.get", @@ -11350,7 +11575,7 @@ ] }, "getDiagnostics": { - "description": "Returns the interconnectDiagnostics for the specified interconnect.", + "description": "Returns the interconnectDiagnostics for the specified Interconnect.", "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics", "httpMethod": "GET", "id": "compute.interconnects.getDiagnostics", @@ -11385,7 +11610,7 @@ ] }, "insert": { - "description": "Creates a Interconnect in the specified project using the data included in the request.", + "description": "Creates an Interconnect in the specified project using the data included in the request.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "POST", "id": "compute.interconnects.insert", @@ -11419,7 +11644,7 @@ ] }, "list": { - "description": "Retrieves the list of interconnect available to the specified project.", + "description": "Retrieves the list of Interconnects available to the specified project.", "flatPath": "projects/{project}/global/interconnects", "httpMethod": "GET", "id": "compute.interconnects.list", @@ -11428,7 +11653,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -11474,7 +11699,7 @@ ] }, "patch": { - "description": "Updates the specified interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "description": "Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", "flatPath": "projects/{project}/global/interconnects/{interconnect}", "httpMethod": "PATCH", "id": "compute.interconnects.patch", @@ -11514,6 +11739,43 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "setLabels": { + "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/global/interconnects/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.interconnects.setLabels", + "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/interconnects/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -11758,7 +12020,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12046,7 +12308,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12180,7 +12442,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12284,7 +12546,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12338,6 +12600,667 @@ } } }, + "networkAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/networkAttachments", + "response": { + "$ref": "NetworkAttachmentAggregatedList" + }, + "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 NetworkAttachment in the given scope", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "DELETE", + "id": "compute.networkAttachments.delete", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of 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}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified NetworkAttachment resource in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "httpMethod": "GET", + "id": "compute.networkAttachments.get", + "parameterOrder": [ + "project", + "region", + "networkAttachment" + ], + "parameters": { + "networkAttachment": { + "description": "Name of the NetworkAttachment 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": "Name of the region of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments/{networkAttachment}", + "response": { + "$ref": "NetworkAttachment" + }, + "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}/networkAttachments/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.networkAttachments.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}/networkAttachments/{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 NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "POST", + "id": "compute.networkAttachments.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 of 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", + "request": { + "$ref": "NetworkAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists the NetworkAttachments for a project in the given scope.", + "flatPath": "projects/{project}/regions/{region}/networkAttachments", + "httpMethod": "GET", + "id": "compute.networkAttachments.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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 of this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkAttachments", + "response": { + "$ref": "NetworkAttachmentList" + }, + "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}/networkAttachments/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "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}/regions/{region}/networkAttachments/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.networkAttachments.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}/networkAttachments/{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" + ] + } + } + }, + "networkEdgeSecurityServices": { + "methods": { + "aggregatedList": { + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project.", + "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/networkEdgeSecurityServices", + "response": { + "$ref": "NetworkEdgeSecurityServiceAggregatedList" + }, + "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 service.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "DELETE", + "id": "compute.networkEdgeSecurityServices.delete", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service 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 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}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Gets a specified NetworkEdgeSecurityService.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "GET", + "id": "compute.networkEdgeSecurityServices.get", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service to get.", + "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" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "response": { + "$ref": "NetworkEdgeSecurityService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new service in the specified project using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "httpMethod": "POST", + "id": "compute.networkEdgeSecurityServices.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 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "httpMethod": "PATCH", + "id": "compute.networkEdgeSecurityServices.patch", + "parameterOrder": [ + "project", + "region", + "networkEdgeSecurityService" + ], + "parameters": { + "networkEdgeSecurityService": { + "description": "Name of the network edge security service 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" + }, + "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": "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" + }, + "updateMask": { + "description": "Indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}", + "request": { + "$ref": "NetworkEdgeSecurityService" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "networkEndpointGroups": { "methods": { "aggregatedList": { @@ -12350,7 +13273,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12634,7 +13557,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -12697,7 +13620,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13192,7 +14115,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13690,7 +14613,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -13759,7 +14682,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14050,7 +14973,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14350,7 +15273,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14414,7 +15337,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14678,7 +15601,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -14920,7 +15843,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15077,7 +16000,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15181,7 +16104,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15247,7 +16170,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15440,7 +16363,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15785,7 +16708,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -15839,7 +16762,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16181,7 +17104,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16282,7 +17205,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16475,7 +17398,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -16724,7 +17647,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17011,6 +17934,55 @@ "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}/backendServices/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.regionBackendServices.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}/backendServices/{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 regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.", "flatPath": "projects/{project}/regions/{region}/backendServices", @@ -17064,7 +18036,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17166,6 +18138,51 @@ "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}/backendServices/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionBackendServices.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}/backendServices/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "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}", @@ -17230,7 +18247,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17376,7 +18393,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17547,7 +18564,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -17899,7 +18916,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18337,7 +19354,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18585,7 +19602,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -18833,7 +19850,7 @@ ] }, "createInstances": { - "description": "Creates instances with per-instance configs in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", + "description": "Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.createInstances", @@ -18974,7 +19991,7 @@ ] }, "deletePerInstanceConfigs": { - "description": "Deletes selected per-instance configs for the managed instance group.", + "description": "Deletes selected per-instance configurations for the managed instance group.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs", @@ -19109,7 +20126,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19172,7 +20189,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19230,7 +20247,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.", + "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`.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listManagedInstances", @@ -19241,7 +20258,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19299,7 +20316,7 @@ ] }, "listPerInstanceConfigs": { - "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.", + "description": "Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs", @@ -19310,7 +20327,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19416,7 +20433,7 @@ ] }, "patchPerInstanceConfigs": { - "description": "Inserts or patches per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs", @@ -19662,7 +20679,7 @@ ] }, "updatePerInstanceConfigs": { - "description": "Inserts or updates per-instance configs for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", + "description": "Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs", @@ -19765,7 +20782,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -19828,7 +20845,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20124,7 +21141,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -20679,7 +21696,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21180,7 +22197,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21329,7 +22346,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21426,6 +22443,260 @@ } } }, + "regionSecurityPolicies": { + "methods": { + "delete": { + "description": "Deletes the specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSecurityPolicies.delete", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security policy 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}/securityPolicies/{securityPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "List all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.get", + "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 get.", + "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}", + "response": { + "$ref": "SecurityPolicy" + }, + "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", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.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 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "List all the policies that have been configured for the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies", + "response": { + "$ref": "SecurityPolicyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patches the specified policy with the data included in the request. 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.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSecurityPolicies.patch", + "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" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "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}", + "request": { + "$ref": "SecurityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "regionSslCertificates": { "methods": { "delete": { @@ -21571,7 +22842,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -21625,6 +22896,315 @@ } } }, + "regionSslPolicies": { + "methods": { + "delete": { + "description": "Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "DELETE", + "id": "compute.regionSslPolicies.delete", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Lists all of the ordered rules present in a single specified policy.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.get", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "response": { + "$ref": "SslPolicy" + }, + "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 and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "POST", + "id": "compute.regionSslPolicies.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 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}/sslPolicies", + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Lists all the SSL policies that have been configured for the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies", + "response": { + "$ref": "SslPoliciesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listAvailableFeatures": { + "description": "Lists all features that can be specified in the SSL policy when using custom profile.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "httpMethod": "GET", + "id": "compute.regionSslPolicies.listAvailableFeatures", + "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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/listAvailableFeatures", + "response": { + "$ref": "SslPoliciesListAvailableFeaturesResponse" + }, + "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 SSL policy with the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "httpMethod": "PATCH", + "id": "compute.regionSslPolicies.patch", + "parameterOrder": [ + "project", + "region", + "sslPolicy" + ], + "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" + }, + "sslPolicy": { + "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/sslPolicies/{sslPolicy}", + "request": { + "$ref": "SslPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "regionTargetHttpProxies": { "methods": { "delete": { @@ -21770,7 +23350,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22019,7 +23599,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22071,6 +23651,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patch": { + "description": "Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "httpMethod": "PATCH", + "id": "compute.regionTargetHttpsProxies.patch", + "parameterOrder": [ + "project", + "region", + "targetHttpsProxy" + ], + "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" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy 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" + } + }, + "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}", + "request": { + "$ref": "TargetHttpsProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setSslCertificates": { "description": "Replaces SslCertificates for TargetHttpsProxy.", "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates", @@ -22173,6 +23803,205 @@ } } }, + "regionTargetTcpProxies": { + "methods": { + "delete": { + "description": "Deletes the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "DELETE", + "id": "compute.regionTargetTcpProxies.delete", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "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" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy 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}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified TargetTcpProxy resource.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies/{targetTcpProxy}", + "httpMethod": "GET", + "id": "compute.regionTargetTcpProxies.get", + "parameterOrder": [ + "project", + "region", + "targetTcpProxy" + ], + "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" + }, + "targetTcpProxy": { + "description": "Name of the TargetTcpProxy 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}/targetTcpProxies/{targetTcpProxy}", + "response": { + "$ref": "TargetTcpProxy" + }, + "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 TargetTcpProxy resource in the specified project and region using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "POST", + "id": "compute.regionTargetTcpProxies.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 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}/targetTcpProxies", + "request": { + "$ref": "TargetTcpProxy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.", + "flatPath": "projects/{project}/regions/{region}/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.regionTargetTcpProxies.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. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", + "location": "query", + "type": "string" + }, + "maxResults": { + "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.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regionUrlMaps": { "methods": { "delete": { @@ -22318,7 +24147,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22564,7 +24393,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22623,7 +24452,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -22865,7 +24694,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23133,7 +24962,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23375,7 +25204,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23532,7 +25361,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23684,7 +25513,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -23839,7 +25668,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24159,7 +25988,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24231,6 +26060,11 @@ "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}/global/securityPolicies/{securityPolicy}/addRule", @@ -24245,6 +26079,66 @@ "https://www.googleapis.com/auth/compute" ] }, + "aggregatedList": { + "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/securityPolicies", + "httpMethod": "GET", + "id": "compute.securityPolicies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/securityPolicies", + "response": { + "$ref": "SecurityPoliciesAggregatedList" + }, + "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 policy.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", @@ -24380,6 +26274,11 @@ "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" } }, "path": "projects/{project}/global/securityPolicies", @@ -24404,7 +26303,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24459,7 +26358,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24505,7 +26404,7 @@ ] }, "patch": { - "description": "Patches the specified policy with the data included in the request. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.", + "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.", "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}", "httpMethod": "PATCH", "id": "compute.securityPolicies.patch", @@ -24575,6 +26474,11 @@ "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}/global/securityPolicies/{securityPolicy}/patchRule", @@ -24628,6 +26532,43 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "setLabels": { + "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/global/securityPolicies/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.securityPolicies.setLabels", + "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/securityPolicies/{resource}/setLabels", + "request": { + "$ref": "GlobalSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -24643,7 +26584,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -24885,7 +26826,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25239,7 +27180,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25410,7 +27351,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25578,7 +27519,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25627,6 +27568,66 @@ }, "sslPolicies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/sslPolicies", + "httpMethod": "GET", + "id": "compute.sslPolicies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/sslPolicies", + "response": { + "$ref": "SslPoliciesAggregatedList" + }, + "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 SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.", "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}", @@ -25743,7 +27744,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25798,7 +27799,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -25898,7 +27899,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26190,7 +28191,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26252,7 +28253,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26616,7 +28617,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26717,7 +28718,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -26885,7 +28886,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27028,7 +29029,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27196,7 +29197,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27283,6 +29284,47 @@ "https://www.googleapis.com/auth/compute" ] }, + "setCertificateMap": { + "description": "Changes the Certificate Map for TargetHttpsProxy.", + "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "httpMethod": "POST", + "id": "compute.targetHttpsProxies.setCertificateMap", + "parameterOrder": [ + "project", + "targetHttpsProxy" + ], + "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" + }, + "targetHttpsProxy": { + "description": "Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setCertificateMap", + "request": { + "$ref": "TargetHttpsProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setQuicOverride": { "description": "Sets the QUIC override policy for TargetHttpsProxy.", "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride", @@ -27463,7 +29505,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27656,7 +29698,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -27822,7 +29864,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28061,7 +30103,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28391,7 +30433,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28478,6 +30520,47 @@ "https://www.googleapis.com/auth/compute" ] }, + "setCertificateMap": { + "description": "Changes the Certificate Map for TargetSslProxy.", + "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "httpMethod": "POST", + "id": "compute.targetSslProxies.setCertificateMap", + "parameterOrder": [ + "project", + "targetSslProxy" + ], + "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" + }, + "targetSslProxy": { + "description": "Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setCertificateMap", + "request": { + "$ref": "TargetSslProxiesSetCertificateMapRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setProxyHeader": { "description": "Changes the ProxyHeaderType for TargetSslProxy.", "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader", @@ -28607,6 +30690,66 @@ }, "targetTcpProxies": { "methods": { + "aggregatedList": { + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project.", + "flatPath": "projects/{project}/aggregated/targetTcpProxies", + "httpMethod": "GET", + "id": "compute.targetTcpProxies.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`.", + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/aggregated/targetTcpProxies", + "response": { + "$ref": "TargetTcpProxyAggregatedList" + }, + "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 TargetTcpProxy resource.", "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}", @@ -28725,7 +30868,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -28868,7 +31011,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29061,7 +31204,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29112,6 +31255,56 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "setLabels": { + "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.targetVpnGateways.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}/targetVpnGateways/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -29127,7 +31320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29337,7 +31530,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29517,7 +31710,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29753,7 +31946,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -29915,7 +32108,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30108,7 +32301,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30159,6 +32352,56 @@ "https://www.googleapis.com/auth/compute", "https://www.googleapis.com/auth/compute.readonly" ] + }, + "setLabels": { + "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.vpnTunnels.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}/vpnTunnels/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -30257,7 +32500,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30401,7 +32644,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -30449,7 +32692,7 @@ } } }, - "revision": "20220224", + "revision": "20230103", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -30564,10 +32807,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30591,10 +32836,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30680,10 +32927,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30707,10 +32956,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30778,10 +33029,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -30805,10 +33058,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -30967,6 +33222,18 @@ ], "type": "string" }, + "ipv6EndpointType": { + "description": "The endpoint type of this address, which should be VM or NETLB. This is used for deciding which type of endpoint this address can be used after the external IPv6 address reservation.", + "enum": [ + "NETLB", + "VM" + ], + "enumDescriptions": [ + "Reserved IPv6 address can be used on network load balancer.", + "Reserved IPv6 address can be used on VM." + ], + "type": "string" + }, "kind": { "default": "compute#address", "description": "[Output Only] Type of the resource. Always compute#address for addresses.", @@ -31008,22 +33275,24 @@ "type": "integer" }, "purpose": { - "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect* configuration. These addresses are regional resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", + "description": "The purpose of this resource, which can be one of the following values: - GCE_ENDPOINT for addresses that are used by VM instances, alias IP ranges, load balancers, and similar resources. - DNS_RESOLVER for a DNS resolver address in a subnetwork for a Cloud DNS inbound forwarder IP addresses (regional internal IP address in a subnet of a VPC network) - VPC_PEERING for global internal IP addresses used for private services access allocated ranges. - NAT_AUTO for the regional external IP addresses used by Cloud NAT when allocating addresses using automatic NAT IP address allocation. - IPSEC_INTERCONNECT for addresses created from a private IP range that are reserved for a VLAN attachment in an *HA VPN over Cloud Interconnect* configuration. These addresses are regional resources. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to configure Private Service Connect. Only global internal addresses can use this purpose. ", "enum": [ "DNS_RESOLVER", "GCE_ENDPOINT", "IPSEC_INTERCONNECT", "NAT_AUTO", "PRIVATE_SERVICE_CONNECT", + "SERVERLESS", "SHARED_LOADBALANCER_VIP", "VPC_PEERING" ], "enumDescriptions": [ "DNS resolver address in the subnetwork.", "VM internal/alias IP, Internal LB service IP, etc.", - "A regional internal IP address range reserved for the VLAN attachment that is used in IPsec-encrypted Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", + "A regional internal IP address range reserved for the VLAN attachment that is used in HA VPN over Cloud Interconnect. This regional internal IP address range must not overlap with any IP address range of subnet/route in the VPC network and its peering networks. After the VLAN attachment is created with the reserved IP address range, when creating a new VPN gateway, its interface IP address is allocated from the associated VLAN attachment\u2019s IP address range.", "External IP automatically reserved for Cloud NAT.", "A private network IP address that can be used to configure Private Service Connect. This purpose can be specified only for GLOBAL addresses of Type INTERNAL", + "A regional internal IP address range reserved for Serverless.", "A private network IP address that can be shared by multiple Internal Load Balancer forwarding rules.", "IP range for peer networks." ], @@ -31114,10 +33383,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31141,10 +33412,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31230,10 +33503,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31257,10 +33532,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31328,10 +33605,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31355,10 +33634,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -31418,6 +33699,11 @@ "description": "The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.", "format": "int32", "type": "integer" + }, + "visibleCoreCount": { + "description": "The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance's nominal CPU count and the underlying platform's SMT width.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -31437,6 +33723,24 @@ }, "type": "object" }, + "AllocationResourceStatus": { + "id": "AllocationResourceStatus", + "properties": { + "specificSkuAllocation": { + "$ref": "AllocationResourceStatusSpecificSKUAllocation" + } + }, + "type": "object" + }, + "AllocationResourceStatusSpecificSKUAllocation": { + "id": "AllocationResourceStatusSpecificSKUAllocation", + "properties": { + "sourceInstanceTemplateId": { + "type": "string" + } + }, + "type": "object" + }, "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk": { "id": "AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk", "properties": { @@ -31494,9 +33798,14 @@ "type": "object" }, "AllocationSpecificSKUReservation": { - "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 5", + "description": "This reservation type allows to pre allocate specific instance configuration. Next ID: 6", "id": "AllocationSpecificSKUReservation", "properties": { + "assuredCount": { + "description": "[Output Only] Indicates how many instances are actually usable currently.", + "format": "int64", + "type": "string" + }, "count": { "description": "Specifies the number of resources that are allocated.", "format": "int64", @@ -31510,6 +33819,10 @@ "instanceProperties": { "$ref": "AllocationSpecificSKUAllocationReservedInstanceProperties", "description": "The instance properties for the reservation." + }, + "sourceInstanceTemplate": { + "description": "Specifies the instance template to create the reservation. If you use this field, you must exclude the instanceProperties field. This field is optional, and it can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https://www.googleapis.com/compute/v1/projects/project /global/instanceTemplates/instanceTemplate - projects/project/global/instanceTemplates/instanceTemplate - global/instanceTemplates/instanceTemplate ", + "type": "string" } }, "type": "object" @@ -31518,6 +33831,20 @@ "description": "An instance-attached disk resource.", "id": "AttachedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk. 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" + }, "autoDelete": { "description": "Specifies whether the disk will be auto-deleted when the instance is deleted (but not when the disk is detached from the instance).", "type": "boolean" @@ -31539,6 +33866,10 @@ "format": "int64", "type": "string" }, + "forceAttach": { + "description": "[Input Only] Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.", + "type": "boolean" + }, "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": { @@ -31556,7 +33887,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.", + "description": "Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. For most machine types, the default is SCSI. Local SSDs can use either NVME or SCSI. In certain configurations, persistent disks can use NVMe. For more information, see About persistent disks.", "enum": [ "NVME", "SCSI" @@ -31615,9 +33946,23 @@ "type": "object" }, "AttachedDiskInitializeParams": { - "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", + "description": "[Input Only] Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance. This field is persisted and returned for instanceTemplate and not returned in the context of instance. This property is mutually exclusive with the source property; you can only define one or the other, but not both.", "id": "AttachedDiskInitializeParams", "properties": { + "architecture": { + "description": "The architecture of the attached disk. 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" + }, "description": { "description": "An optional description. Provide this property when creating the disk.", "type": "string" @@ -31632,7 +33977,7 @@ "type": "string" }, "diskType": { - "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you define this field, you can provide either the full or partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType Note that for InstanceTemplate, this is the name of the disk type, not URL.", + "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" }, "labels": { @@ -31668,6 +34013,13 @@ "format": "int64", "type": "string" }, + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + }, "resourcePolicies": { "description": "Resource policies applied to this disk for automatic snapshot creations. Specified using the full or partial URL. For instance template, specify only the resource policy name.", "items": { @@ -31681,7 +34033,7 @@ }, "sourceImageEncryptionKey": { "$ref": "CustomerEncryptionKey", - "description": "The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys." + "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." }, "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.", @@ -31917,10 +34269,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -31944,10 +34298,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -32033,10 +34389,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -32060,10 +34418,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -32189,10 +34549,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -32216,10 +34578,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -32469,7 +34833,7 @@ "type": "string" }, "capacityScaler": { - "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.", + "description": "A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. Not available with backends that don't support using a balancingMode. This includes backends such as global internet NEGs, regional serverless NEGs, and PSC NEGs.", "format": "float", "type": "number" }, @@ -32516,7 +34880,7 @@ "type": "number" }, "maxUtilization": { - "description": "Optional parameter to define a target capacity for the UTILIZATIONbalancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", + "description": "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" } @@ -32535,6 +34899,18 @@ "$ref": "BackendBucketCdnPolicy", "description": "Cloud CDN configuration for this BackendBucket." }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "enum": [ + "AUTOMATIC", + "DISABLED" + ], + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", + "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + ], + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -32684,7 +35060,7 @@ "type": "array" }, "queryStringWhitelist": { - "description": "Names of query string parameters to include in cache keys. All other parameters will be excluded. '&' and '=' will be percent encoded and not treated as delimiters.", + "description": "Names of query string parameters to include in cache keys. Default parameters are always included. '&' and '=' will be percent encoded and not treated as delimiters.", "items": { "type": "string" }, @@ -32752,10 +35128,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -32779,10 +35157,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -32831,7 +35211,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 one day (86,400). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "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.", "format": "int32", "type": "integer" }, @@ -32849,6 +35229,18 @@ "circuitBreakers": { "$ref": "CircuitBreakers" }, + "compressionMode": { + "description": "Compress text responses using Brotli or gzip compression, based on the client's Accept-Encoding header.", + "enum": [ + "AUTOMATIC", + "DISABLED" + ], + "enumDescriptions": [ + "Automatically uses the best compression based on the Accept-Encoding header sent by the client.", + "Disables compression. Existing compressed responses cached by Cloud CDN will not be served to clients." + ], + "type": "string" + }, "connectionDraining": { "$ref": "ConnectionDraining" }, @@ -32940,6 +35332,13 @@ ], "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.", + "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.", "enum": [ @@ -32981,7 +35380,7 @@ }, "outlierDetection": { "$ref": "OutlierDetection", - "description": "Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled. This field is applicable to either: - A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." + "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. " }, "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.", @@ -33032,6 +35431,13 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "serviceBindings": { + "description": "URLs of networkservices.ServiceBinding resources. Can only be set if load balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and health checks must be both empty.", + "items": { + "type": "string" + }, + "type": "array" + }, "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": [ @@ -33060,7 +35466,7 @@ "$ref": "Subsetting" }, "timeoutSec": { - "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 is 1 - 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.", + "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" } @@ -33117,10 +35523,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -33144,10 +35552,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -33454,10 +35864,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -33481,10 +35893,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -33528,12 +35942,69 @@ }, "type": "object" }, + "BackendServiceLocalityLoadBalancingPolicyConfig": { + "description": "Container for either a built-in LB policy supported by gRPC or Envoy or a custom one implemented by the end user.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfig", + "properties": { + "customPolicy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy" + }, + "policy": { + "$ref": "BackendServiceLocalityLoadBalancingPolicyConfigPolicy" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy": { + "description": "The configuration for a custom policy implemented by the user and deployed with the client.", + "id": "BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy", + "properties": { + "data": { + "description": "An optional, arbitrary JSON object with configuration data, understood by a locally installed custom policy implementation.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "BackendServiceLocalityLoadBalancingPolicyConfigPolicy": { + "description": "The configuration for a built-in load balancing policy.", + "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.", + "enum": [ + "INVALID_LB_POLICY", + "LEAST_REQUEST", + "MAGLEV", + "ORIGINAL_DESTINATION", + "RANDOM", + "RING_HASH", + "ROUND_ROBIN" + ], + "enumDescriptions": [ + "", + "An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.", + "This algorithm implements consistent hashing to backends. Maglev can be used as a drop in replacement for the ring hash load balancer. Maglev is not as stable as ring hash but has faster table lookup build times and host selection times. For more information about Maglev, see https://ai.google/research/pubs/pub44824", + "Backend host is selected based on the client connection metadata, i.e., connections are opened to the same address as the destination address of the incoming connection before the connection was redirected to the load balancer.", + "The load balancer selects a random healthy host.", + "The ring/modulo hash load balancer implements consistent hashing to backends. The algorithm has the property that the addition/removal of a host from a set of N hosts only affects 1/N of the requests.", + "This is a simple policy in which each healthy backend is selected in round robin order. This is the default." + ], + "type": "string" + } + }, + "type": "object" + }, "BackendServiceLogConfig": { "description": "The available logging options for the load balancer traffic served by this backend service.", "id": "BackendServiceLogConfig", "properties": { "enable": { - "description": "This field denotes whether to enable logging for the load balancer traffic served by this backend service.", + "description": "Denotes whether to enable logging for the load balancer traffic served by this backend service. The default value is false.", "type": "boolean" }, "sampleRate": { @@ -33577,10 +36048,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -33604,10 +36077,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -33907,7 +36382,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -33935,7 +36410,7 @@ }, "locationPolicy": { "$ref": "LocationPolicy", - "description": "Policy for chosing target zone." + "description": "Policy for chosing target zone. For more information, see Create VMs in bulk ." }, "minCount": { "description": "The minimum number of instances to create. If no min_count is specified then count is used as the default value. If min_count instances cannot be created, then no instances will be created and instances already created will be deleted.", @@ -34111,6 +36586,13 @@ "$ref": "LicenseResourceCommitment", "description": "The license specification required as part of a license commitment." }, + "mergeSourceCommitments": { + "description": "List of source commitments to be merged into a new commitment.", + "items": { + "type": "string" + }, + "type": "array" + }, "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])?", @@ -34152,6 +36634,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "splitSourceCommitment": { + "description": "Source commitment to be splitted into a new commitment.", + "type": "string" + }, "startTimestamp": { "description": "[Output Only] Commitment start time in RFC3339 text format.", "type": "string" @@ -34160,6 +36646,7 @@ "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", + "CANCELLED", "CREATING", "EXPIRED", "NOT_YET_ACTIVE" @@ -34168,6 +36655,7 @@ "", "", "", + "", "" ], "type": "string" @@ -34188,6 +36676,7 @@ "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", "MEMORY_OPTIMIZED", + "MEMORY_OPTIMIZED_M3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -34200,6 +36689,7 @@ "", "", "", + "", "" ], "type": "string" @@ -34256,10 +36746,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34283,10 +36775,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34372,10 +36866,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34399,10 +36895,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34470,10 +36968,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -34497,10 +36997,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -34709,7 +37211,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.", + "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -34824,6 +37326,20 @@ "description": "Represents a Persistent Disk resource. Google Compute Engine has two Disk resources: * [Zonal](/compute/docs/reference/rest/v1/disks) * [Regional](/compute/docs/reference/rest/v1/regionDisks) Persistent disks are required for running your VM instances. Create both boot and non-boot (data) persistent disks. For more information, read Persistent Disks. For more storage options, read Storage options. The disks resource represents a zonal persistent disk. For more information, read Zonal persistent disks. The regionDisks resource represents a regional persistent disk. For more information, read Regional resources.", "id": "Disk", "properties": { + "architecture": { + "description": "The architecture of the disk. 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" @@ -34906,6 +37422,10 @@ "description": "Internal use only.", "type": "string" }, + "params": { + "$ref": "DiskParams", + "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." + }, "physicalBlockSizeBytes": { "description": "Physical block size of the persistent disk, in bytes. If not present in a request, a default value is used. The currently supported size is 4096, other sizes may be added in the future. If an unsupported value is requested, the error message will list the supported values for the caller's project.", "format": "int64", @@ -35068,10 +37588,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35095,10 +37617,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35225,10 +37749,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35252,10 +37778,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35313,6 +37841,20 @@ }, "type": "object" }, + "DiskParams": { + "description": "Additional disk params.", + "id": "DiskParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to be bound to the disk. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/{tag_key_id}`, and values are in the format `tagValues/456`. The field is ignored (both PUT & PATCH) when empty.", + "type": "object" + } + }, + "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", @@ -35417,10 +37959,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35444,10 +37988,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35533,10 +38079,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35560,10 +38108,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35631,10 +38181,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35658,10 +38210,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35766,10 +38320,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -35793,10 +38349,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -35910,6 +38468,28 @@ }, "type": "object" }, + "ErrorInfo": { + "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": "ErrorInfo", + "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" + }, + "metadatas": { + "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" + }, "ExchangedPeeringRoute": { "id": "ExchangedPeeringRoute", "properties": { @@ -35988,10 +38568,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36015,10 +38597,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36218,10 +38802,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36245,10 +38831,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36377,7 +38965,7 @@ "type": "array" }, "direction": { - "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS` traffic, you cannot specify the destinationRanges field, and for `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags fields.", + "description": "Direction of traffic to which this firewall applies, either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `EGRESS` traffic, you cannot specify the sourceTags fields.", "enum": [ "EGRESS", "INGRESS" @@ -36510,10 +39098,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36537,10 +39127,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36645,7 +39237,7 @@ "type": "string" }, "displayName": { - "description": "Deprecated, please use short name instead. User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This 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.", + "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" }, @@ -36665,11 +39257,11 @@ "type": "string" }, "name": { - "description": "[Output Only] Name of the resource. It is a numeric ID allocated by GCP which uniquely identifies the Firewall Policy.", + "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", "type": "string" }, "parent": { - "description": "[Output Only] The parent of the firewall policy.", + "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", "type": "string" }, "region": { @@ -36697,7 +39289,7 @@ "type": "string" }, "shortName": { - "description": "User-provided name of the Organization firewall plicy. The name should be unique in the organization in which the firewall policy is created. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "description": "User-provided name of the Organization firewall policy. The name should be unique in the organization in which the firewall policy is created. This field is not applicable to network firewall policies. This name must be set on creation and cannot be changed. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" } @@ -36767,10 +39359,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -36794,10 +39388,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -36846,7 +39442,7 @@ "id": "FirewallPolicyRule", "properties": { "action": { - "description": "The Action to perform when the client connection triggers the rule. Can currently be either \"allow\" or \"deny()\" where valid values for status are 403, 404, and 502.", + "description": "The Action to perform when the client connection triggers the rule. Valid actions are \"allow\", \"deny\" and \"goto_next\".", "type": "string" }, "description": { @@ -36887,6 +39483,10 @@ "format": "int32", "type": "integer" }, + "ruleName": { + "description": "An optional name for the rule. This field is not a unique identifier and can be updated.", + "type": "string" + }, "ruleTupleCount": { "description": "[Output Only] Calculation of the complexity of a single firewall policy rule.", "format": "int32", @@ -37018,7 +39618,7 @@ "id": "ForwardingRule", "properties": { "IPAddress": { - "description": "IP address that this forwarding rule serves. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the target that you specify in the forwarding rule. If you don't specify a reserved IP address, an ephemeral IP address is assigned. Methods for specifying an IP address: * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in https://www.googleapis.com/compute/v1/projects/project_id/regions/region /addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The loadBalancingScheme and the forwarding rule's target determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). Must be set to `0.0.0.0` when the target is targetGrpcProxy that has validateForProxyless field set to true. For Private Service Connect forwarding rules that forward traffic to Google APIs, IP address must be provided.", + "description": "IP address for which this forwarding rule accepts traffic. When a client sends traffic to this IP address, the forwarding rule directs the traffic to the referenced target or backendService. While creating a forwarding rule, specifying an IPAddress is required under the following circumstances: - When the target is set to targetGrpcProxy and validateForProxyless is set to true, the IPAddress should be set to 0.0.0.0. - When the target is a Private Service Connect Google APIs bundle, you must specify an IPAddress. Otherwise, you can optionally specify an IP address that references an existing static (reserved) IP address resource. When omitted, Google Cloud assigns an ephemeral IP address. Use one of the following formats to specify an IP address while creating a forwarding rule: * IP address number, as in `100.1.2.3` * IPv6 address range, as in `2600:1234::/96` * Full resource URL, as in https://www.googleapis.com/compute/v1/projects/ project_id/regions/region/addresses/address-name * Partial URL or by name, as in: - projects/project_id/regions/region/addresses/address-name - regions/region/addresses/address-name - global/addresses/address-name - address-name The forwarding rule's target or backendService, and in most cases, also the loadBalancingScheme, determine the type of IP address that you can use. For detailed information, see [IP address specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications). When reading an IPAddress, the API always returns the IP address number.", "type": "string" }, "IPProtocol": { @@ -37044,7 +39644,7 @@ "type": "string" }, "allPorts": { - "description": "This field is used along with the backend_service field for Internal TCP/UDP Load Balancing or Network Load Balancing, or with the target field for internal and external TargetInstance. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed to any ports will be forwarded to the target or backendService.", + "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.", "type": "boolean" }, "allowGlobalAccess": { @@ -37074,7 +39674,7 @@ "type": "string" }, "ipVersion": { - "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6. This can only be specified for an external global forwarding rule.", + "description": "The IP Version that will be used by this forwarding rule. Valid options are IPV4 or IPV6.", "enum": [ "IPV4", "IPV6", @@ -37160,12 +39760,16 @@ ], "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.", + "type": "boolean" + }, "portRange": { - "description": "This field can be used only if: - Load balancing scheme is one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED - IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in the specified range will be forwarded to target or backend_service. You can only use one of ports, port_range, or allPorts. The three are mutually exclusive. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. Some types of forwarding target have constraints on the acceptable ports. For more information, see [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications). @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "type": "string" }, "ports": { - "description": "The ports field is only supported when the forwarding rule references a backend_service directly. Only packets addressed to the [specified list of ports]((https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)) are forwarded to backends. You can only use one of ports and port_range, or allPorts. The three are mutually exclusive. You can specify a list of up to five ports, which can be non-contiguous. Forwarding rules with the same [IPAddress, IPProtocol] pair must have disjoint ports. @pattern: \\\\d+(?:-\\\\d+)?", + "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+)?", "items": { "type": "string" }, @@ -37180,6 +39784,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -37187,6 +39792,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The connection has been rejected by the producer.", "" @@ -37222,6 +39828,7 @@ "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. ", "type": "string" } }, @@ -37276,10 +39883,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -37303,10 +39912,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37392,10 +40003,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -37419,10 +40032,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37518,10 +40133,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -37545,10 +40162,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -37600,25 +40219,25 @@ "type": "string" }, "port": { - "description": "The port number for the health check request. Must be specified if port_name and port_specification are not set or if port_specification is USE_FIXED_PORT. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence. The port_name should conform to RFC1035.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, gRPC health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" } @@ -37685,7 +40304,7 @@ "additionalProperties": { "type": "string" }, - "description": "A list of labels to apply for this resource. Each label key & value must comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", + "description": "A list of labels to apply for this resource. Each label must comply with the requirements for labels. For example, \"webserver-frontend\": \"images\". A label value can also be empty (e.g. \"my-label\": \"\").", "type": "object" } }, @@ -37782,13 +40401,14 @@ "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 - SECURE_BOOT - 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_SNP_CAPABLE For more information, see Enabling guest operating system features.", "enum": [ "FEATURE_TYPE_UNSPECIFIED", "GVNIC", "MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", + "SEV_SNP_CAPABLE", "UEFI_COMPATIBLE", "VIRTIO_SCSI_MULTIQUEUE", "WINDOWS" @@ -37801,6 +40421,7 @@ "", "", "", + "", "" ], "type": "string" @@ -37812,29 +40433,29 @@ "id": "HTTP2HealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP/2 health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP2 health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -37855,7 +40476,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP/2 health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -37865,29 +40486,29 @@ "id": "HTTPHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTP health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTP health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -37908,7 +40529,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTP health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -37918,29 +40539,29 @@ "id": "HTTPSHealthCheck", "properties": { "host": { - "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the IP on behalf of which this health check is performed will be used.", + "description": "The value of the host header in the HTTPS health check request. If left empty (default value), the host header is set to the destination IP address to which health check packets are sent. The destination IP address depends on the type of load balancer. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#hc-packet-dest", "type": "string" }, "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, HTTPS health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -37961,7 +40582,7 @@ "type": "string" }, "response": { - "description": "The string to match anywhere in the first 1024 bytes of the response body. If left empty (the default value), the status code determines health. The response data can only be ASCII.", + "description": "Creates a content-based HTTPS health check. In addition to the required HTTP 200 (OK) status code, you can configure the health check to pass only when the backend sends this specific ASCII response string within the first 1024 bytes of the HTTP response body. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-http", "type": "string" } }, @@ -38040,7 +40661,7 @@ "type": "integer" }, "type": { - "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2. Exactly one of the protocol-specific health check field must be specified, which must match type field.", + "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", "enum": [ "GRPC", "HTTP", @@ -38111,10 +40732,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38138,10 +40761,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38224,14 +40849,14 @@ "type": "string" }, "healthChecks": { - "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NEGs.", + "description": "A list of URLs to the HealthCheck resources. Must have at least one HealthCheck, and not more than 10 for regional HealthCheckService, and not more than 1 for global HealthCheckService. HealthCheck resources must have portSpecification=USE_SERVING_PORT or portSpecification=USE_FIXED_PORT. For regional HealthCheckService, the HealthCheck must be regional and in the same region. For global HealthCheckService, HealthCheck must be global. Mix of regional and global HealthChecks is not supported. Multiple regional HealthChecks must belong to the same region. Regional HealthChecks must belong to the same region as zones of NetworkEndpointGroups. For global HealthCheckService using global INTERNET_IP_PORT NetworkEndpointGroups, the global HealthChecks must specify sourceRegions, and HealthChecks that specify sourceRegions can only be used with global INTERNET_IP_PORT NetworkEndpointGroups.", "items": { "type": "string" }, "type": "array" }, "healthStatusAggregationPolicy": { - "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .", + "description": "Optional. Policy for how the results from multiple health checks for the same endpoint are aggregated. Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An EndpointHealth message is returned for each pair in the health check service. - AND. If any health check of an endpoint reports UNHEALTHY, then UNHEALTHY is the HealthState of the endpoint. If all health checks report HEALTHY, the HealthState of the endpoint is HEALTHY. . This is only allowed with regional HealthCheckService.", "enum": [ "AND", "NO_AGGREGATION" @@ -38258,7 +40883,7 @@ "type": "string" }, "networkEndpointGroups": { - "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService.", + "description": "A list of URLs to the NetworkEndpointGroup resources. Must not have more than 100. For regional HealthCheckService, NEGs must be in zones in the region of the HealthCheckService. For global HealthCheckServices, the NetworkEndpointGroups must be global INTERNET_IP_PORT.", "items": { "type": "string" }, @@ -38333,10 +40958,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38360,10 +40987,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38456,10 +41085,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38483,10 +41114,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38554,10 +41187,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -38581,10 +41216,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -38730,6 +41367,35 @@ }, "type": "object" }, + "Help": { + "description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", + "id": "Help", + "properties": { + "links": { + "description": "URL(s) pointing to additional information on handling the current error.", + "items": { + "$ref": "HelpLink" + }, + "type": "array" + } + }, + "type": "object" + }, + "HelpLink": { + "description": "Describes a URL link.", + "id": "HelpLink", + "properties": { + "description": { + "description": "Describes what the link offers.", + "type": "string" + }, + "url": { + "description": "The URL of the link.", + "type": "string" + } + }, + "type": "object" + }, "HostRule": { "description": "UrlMaps A host-matching rule for a URL. If matched, will use the named PathMatcher to select the BackendService.", "id": "HostRule", @@ -38739,7 +41405,7 @@ "type": "string" }, "hosts": { - "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character and must be followed in the pattern by either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The list of host patterns to match. They must be valid hostnames with optional port numbers in the format host:port. * matches any string of ([a-z0-9-.]*). In that case, * must be the first character, and if followed by anything, the immediate following character must be either - or .. * based matching is not supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "items": { "type": "string" }, @@ -38864,7 +41530,7 @@ "description": "The header value must be an integer and its value must be in the range specified in rangeMatch. If the header does not contain an integer, number or is empty, the match fails. For example for a range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not match. - -3someString will not match. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. rangeMatch is not supported for load balancers that have loadBalancingScheme set to EXTERNAL." }, "regexMatch": { - "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "The value of the header must match the regular expression specified in regexMatch. For more information about regular expression syntax, see Syntax. For matching against a port specified in the HTTP request, use a headerMatch with headerName set to PORT and a regular expression that satisfies the RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" }, "suffixMatch": { @@ -39002,10 +41668,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39029,10 +41697,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39093,7 +41763,7 @@ "type": "boolean" }, "regexMatch": { - "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. regexMatch only applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", + "description": "The queryParameterMatch matches if the value of the parameter matches the regular expression specified by regexMatch. For more information about regular expression syntax, see Syntax. Only one of presentMatch, exactMatch, or regexMatch must be set. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED. ", "type": "string" } }, @@ -39176,7 +41846,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." + "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." }, "maxStreamDuration": { "$ref": "Duration", @@ -39234,7 +41904,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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -39285,7 +41955,7 @@ "type": "array" }, "regexMatch": { - "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. regexMatch only applies to load balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.", + "description": "For satisfying the matchRule condition, the path of the request must satisfy the regular expression specified in regexMatch after removing any query parameters and anchor supplied with the original URL. For more information about regular expression syntax, see Syntax. Only one of prefixMatch, fullPathMatch or regexMatch must be specified. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "type": "string" } }, @@ -39400,10 +42070,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39427,10 +42099,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39478,6 +42152,20 @@ "description": "Represents an Image resource. You can use images to create boot disks for your VM instances. For more information, read Images.", "id": "Image", "properties": { + "architecture": { + "description": "The architecture of the image. 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" + }, "archiveSizeBytes": { "description": "Size of the image tar.gz archive stored in Google Cloud Storage (in bytes).", "format": "int64", @@ -39637,7 +42325,7 @@ }, "sourceType": { "default": "RAW", - "description": "The type of the image used to create this disk. The default and only value is RAW", + "description": "The type of the image used to create this disk. The default and only valid value is RAW.", "enum": [ "RAW" ], @@ -39724,10 +42412,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -39751,10 +42441,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -39893,6 +42585,20 @@ "format": "uint64", "type": "string" }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "kind": { "default": "compute#instance", "description": "[Output Only] Type of the resource. Always compute#instance for instances.", @@ -39988,6 +42694,10 @@ }, "type": "array" }, + "resourceStatus": { + "$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." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -40117,10 +42827,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40144,10 +42856,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40191,6 +42905,46 @@ }, "type": "object" }, + "InstanceConsumptionData": { + "id": "InstanceConsumptionData", + "properties": { + "consumptionInfo": { + "$ref": "InstanceConsumptionInfo", + "description": "Resources consumed by the instance." + }, + "instance": { + "description": "Server-defined URL for the instance.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceConsumptionInfo": { + "id": "InstanceConsumptionInfo", + "properties": { + "guestCpus": { + "description": "The number of virtual CPUs that are available to the instance.", + "format": "int32", + "type": "integer" + }, + "localSsdGb": { + "description": "The amount of local SSD storage available to the instance, defined in GiB.", + "format": "int32", + "type": "integer" + }, + "memoryMb": { + "description": "The amount of physical memory available to the instance, defined in MiB.", + "format": "int32", + "type": "integer" + }, + "minNodeCpus": { + "description": "The minimal guaranteed number of virtual CPUs that are reserved.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "InstanceGroup": { "description": "Represents an Instance Group resource. Instance Groups can be used to configure a target for load balancing. Instance groups can either be managed or unmanaged. To create managed instance groups, use the instanceGroupManager or regionInstanceGroupManager resource instead. Use zonal unmanaged instance groups if you need to apply load balancing to groups of heterogeneous instances or if you need to manage the instances yourself. You cannot create regional unmanaged instance groups. For more information, read Instance groups.", "id": "InstanceGroup", @@ -40312,10 +43066,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40339,10 +43095,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40428,10 +43186,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40455,10 +43215,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40562,6 +43324,18 @@ "description": "[Output Only] The resource type, which is always compute#instanceGroupManager for managed instance groups.", "type": "string" }, + "listManagedInstancesResults": { + "description": "Pagination behavior of the listManagedInstances API method for this managed instance group.", + "enum": [ + "PAGELESS", + "PAGINATED" + ], + "enumDescriptions": [ + "(Default) Pagination is disabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are ignored and all instances are returned in a single response.", + "Pagination is enabled for the group's listManagedInstances API method. maxResults and pageToken query parameters are respected." + ], + "type": "string" + }, "name": { "annotations": { "required": [ @@ -40752,10 +43526,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40779,10 +43555,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40883,10 +43661,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -40910,10 +43690,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -40983,12 +43765,12 @@ "id": "InstanceGroupManagerStatusStateful", "properties": { "hasStatefulConfig": { - "description": "[Output Only] A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.", + "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.", "type": "boolean" }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configs on the instance." + "description": "[Output Only] Status of per-instance configurations on the instance." } }, "type": "object" @@ -40997,7 +43779,7 @@ "id": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", "properties": { "allEffective": { - "description": "A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", + "description": "A bit indicating if all of the group's per-instance configurations (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.", "type": "boolean" } }, @@ -41037,7 +43819,7 @@ "description": "The maximum number of instances that can be unavailable during the update process. An instance is considered available if all of the following conditions are satisfied: - The instance's status is RUNNING. - If there is a health check on the instance group, the instance's health check status must be HEALTHY at least once. If there is no health check on the group, then the instance only needs to have a status of RUNNING to be considered available. This value can be either a fixed number or, if the group has 10 or more instances, a percentage. If you set a percentage, the number of instances is rounded if necessary. The default value for maxUnavailable is a fixed value equal to the number of zones in which the managed instance group operates. At least one of either maxSurge or maxUnavailable must be greater than 0. Learn more about maxUnavailable." }, "minimalAction": { - "description": "Minimal action to be taken on an instance. You can specify either RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a RESTART, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.", + "description": "Minimal action to be taken on an instance. Use this option to minimize disruption as much as possible or to apply a more disruptive action than is necessary. - To limit disruption as much as possible, set the minimal action to REFRESH. If your update requires a more disruptive action, Compute Engine performs the necessary action to execute the update. - To apply a more disruptive action than is strictly necessary, set the minimal action to RESTART or REPLACE. For example, Compute Engine does not need to restart a VM to change its metadata. But if your application reads instance metadata only when a VM is restarted, you can set the minimal action to RESTART in order to pick up metadata changes. ", "enum": [ "NONE", "REFRESH", @@ -41283,10 +44065,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41310,10 +44094,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41362,7 +44148,7 @@ "id": "InstanceGroupManagersPatchPerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -41408,10 +44194,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41435,10 +44223,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41515,7 +44305,7 @@ "id": "InstanceGroupManagersUpdatePerInstanceConfigsReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -41578,10 +44368,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41605,10 +44397,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41707,10 +44501,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41734,10 +44530,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41841,10 +44639,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41868,10 +44668,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -41957,10 +44759,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -41984,10 +44788,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42172,6 +44978,20 @@ }, "type": "array" }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -42364,10 +45184,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42391,10 +45213,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42594,10 +45418,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -42621,10 +45447,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -42865,7 +45693,7 @@ "type": "string" }, "nocContactEmail": { - "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Stackdriver logs alerting and Cloud Notifications.", + "description": "Email address to contact the customer NOC for operations and maintenance notifications regarding this Interconnect. If specified, this will be used for notifications in addition to all other forms described, such as Cloud Monitoring logs alerting and Cloud Notifications. This field is required for users who sign up for Cloud Interconnect using workforce identity federation.", "type": "string" }, "operationalStatus": { @@ -43023,13 +45851,13 @@ "type": "string" }, "encryption": { - "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *IPsec-encrypted Cloud Interconnect*, the VLAN attachment must be created with this option. Not currently available publicly. ", + "description": "Indicates the user-supplied encryption option of this VLAN attachment (interconnectAttachment). Can only be specified at attachment creation for PARTNER or DEDICATED attachments. Possible values are: - NONE - This is the default value, which means that the VLAN attachment carries unencrypted traffic. VMs are able to send traffic to, or receive traffic from, such a VLAN attachment. - IPSEC - The VLAN attachment carries only encrypted traffic that is encrypted by an IPsec device, such as an HA VPN gateway or third-party IPsec VPN. VMs cannot directly send traffic to, or receive traffic from, such a VLAN attachment. To use *HA VPN over Cloud Interconnect*, the VLAN attachment must be created with this option. ", "enum": [ "IPSEC", "NONE" ], "enumDescriptions": [ - "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use IPsec-encrypted Cloud Interconnect, the interconnect attachment must be created with this option.", + "The interconnect attachment will carry only encrypted traffic that is encrypted by an IPsec device such as HA VPN gateway; VMs cannot directly send traffic to or receive traffic from such an interconnect attachment. To use HA VPN over Cloud Interconnect, the interconnect attachment must be created with this option.", "This is the default value, which means the Interconnect Attachment will carry unencrypted traffic. VMs will be able to send traffic to or receive traffic from such interconnect attachment." ], "type": "string" @@ -43219,10 +46047,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43246,10 +46076,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43335,10 +46167,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43362,10 +46196,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43464,10 +46300,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43491,10 +46329,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43568,6 +46408,30 @@ }, "type": "array" }, + "bundleAggregationType": { + "description": "The aggregation type of the bundle interface.", + "enum": [ + "BUNDLE_AGGREGATION_TYPE_LACP", + "BUNDLE_AGGREGATION_TYPE_STATIC" + ], + "enumDescriptions": [ + "LACP is enabled.", + "LACP is disabled." + ], + "type": "string" + }, + "bundleOperationalStatus": { + "description": "The operational status of the bundle interface.", + "enum": [ + "BUNDLE_OPERATIONAL_STATUS_DOWN", + "BUNDLE_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "If bundleAggregationType is LACP: LACP is not established and/or all links in the bundle have DOWN operational status. If bundleAggregationType is STATIC: one or more links in the bundle has DOWN operational status.", + "If bundleAggregationType is LACP: LACP is established and at least one link in the bundle has UP operational status. If bundleAggregationType is STATIC: all links in the bundle (typically just one) have UP operational status." + ], + "type": "string" + }, "links": { "description": "A list of InterconnectDiagnostics.LinkStatus objects, describing the status for each link on the Interconnect.", "items": { @@ -43673,6 +46537,18 @@ "lacpStatus": { "$ref": "InterconnectDiagnosticsLinkLACPStatus" }, + "operationalStatus": { + "description": "The operational status of the link.", + "enum": [ + "LINK_OPERATIONAL_STATUS_DOWN", + "LINK_OPERATIONAL_STATUS_UP" + ], + "enumDescriptions": [ + "The interface is unable to communicate with the remote end.", + "The interface has low level communication with the remote end." + ], + "type": "string" + }, "receivingOpticalPower": { "$ref": "InterconnectDiagnosticsLinkOpticalPower", "description": "An InterconnectDiagnostics.LinkOpticalPower object, describing the current value and status of the received light level." @@ -43726,10 +46602,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43753,10 +46631,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -43950,10 +46830,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -43977,10 +46859,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44353,10 +47237,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44380,10 +47266,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44447,6 +47335,21 @@ }, "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", + "properties": { + "locale": { + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "type": "string" + }, + "message": { + "description": "The localized error message in the above locale.", + "type": "string" + } + }, + "type": "object" + }, "LocationPolicy": { "description": "Configuration for location policy among multiple possible locations (e.g. preferences for zone selection among zones in a single region).", "id": "LocationPolicy", @@ -44457,6 +47360,20 @@ }, "description": "Location configurations mapped by location name. Currently only zone names are supported and must be represented as valid internal URLs, such as zones/us-central1-a.", "type": "object" + }, + "targetShape": { + "description": "Strategy for distributing VMs across zones in a region.", + "enum": [ + "ANY", + "ANY_SINGLE_ZONE", + "BALANCED" + ], + "enumDescriptions": [ + "GCE picks zones for creating VM instances to fulfill the requested number of VMs within present resource constraints and to maximize utilization of unused zonal reservations. Recommended for batch workloads that do not require high availability.", + "GCE always selects a single zone for all the VMs, optimizing for resource quotas, available reservations and general capacity. Recommended for batch workloads that cannot tollerate distribution over multiple zones. This the default shape in Bulk Insert and Capacity Advisor APIs.", + "GCE prioritizes acquisition of resources, scheduling VMs in zones where resources are available while distributing VMs as evenly as possible across allowed zones to minimize the impact of zonal failure. Recommended for highly available serving workloads." + ], + "type": "string" } }, "type": "object" @@ -44464,8 +47381,12 @@ "LocationPolicyLocation": { "id": "LocationPolicyLocation", "properties": { + "constraints": { + "$ref": "LocationPolicyLocationConstraints", + "description": "Constraints that the caller requires on the result distribution in this zone." + }, "preference": { - "description": "Preference for a given location.", + "description": "Preference for a given location. Set to either ALLOW or DENY.", "enum": [ "ALLOW", "DENY", @@ -44481,6 +47402,18 @@ }, "type": "object" }, + "LocationPolicyLocationConstraints": { + "description": "Per-zone constraints on location policy for this zone.", + "id": "LocationPolicyLocationConstraints", + "properties": { + "maxCount": { + "description": "Maximum number of items that are allowed to be placed in this zone. The value must be non-negative.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "LogConfig": { "description": "This is deprecated and has no effect. Do not use.", "id": "LogConfig", @@ -44730,10 +47663,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44757,10 +47692,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -44956,10 +47893,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -44983,10 +47922,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45072,10 +48013,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45099,10 +48042,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45170,10 +48115,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45197,10 +48144,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45387,6 +48336,27 @@ "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" @@ -45552,6 +48522,10 @@ "description": "Enable ULA internal ipv6 on this network. Enabling this feature will assign a /48 from google defined ULA prefix fd20::/20. .", "type": "boolean" }, + "firewallPolicy": { + "description": "[Output Only] URL of the firewall policy the network is associated with.", + "type": "string" + }, "gatewayIPv4": { "description": "[Output Only] The gateway address for default routing out of the network, selected by GCP.", "pattern": "[0-9]{1,3}(?:\\.[0-9]{1,3}){3}", @@ -45572,7 +48546,7 @@ "type": "string" }, "mtu": { - "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1460 and the maximum value is 1500 bytes. If unspecified, defaults to 1460.", + "description": "Maximum Transmission Unit in bytes. The minimum value for this field is 1300 and the maximum value is 8896. The suggested value is 1500, which is the default MTU used on the Internet, or 8896 if you want to use Jumbo frames. If unspecified, the value defaults to 1460.", "format": "int32", "type": "integer" }, @@ -45627,6 +48601,772 @@ }, "type": "object" }, + "NetworkAttachment": { + "description": "NetworkAttachments A network attachment resource ...", + "id": "NetworkAttachment", + "properties": { + "connectionEndpoints": { + "description": "[Output Only] An array of connections for all the producers connected to this network attachment.", + "items": { + "$ref": "NetworkAttachmentConnectedEndpoint" + }, + "type": "array" + }, + "connectionPreference": { + "enum": [ + "ACCEPT_AUTOMATIC", + "ACCEPT_MANUAL", + "INVALID" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "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" + }, + "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.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#networkAttachment", + "description": "[Output Only] Type of the resource.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.networkAttachments.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" + }, + "network": { + "description": "[Output Only] The URL of the network which the Network Attachment belongs to.", + "type": "string" + }, + "producerAcceptLists": { + "description": "Projects that are allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "producerRejectLists": { + "description": "Projects that are not allowed to connect to this network attachment. The project can be specified using its id or number.", + "items": { + "type": "string" + }, + "type": "array" + }, + "region": { + "description": "[Output Only] URL of the region where the network 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" + }, + "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" + }, + "subnetworks": { + "description": "An array of URLs where each entry is the URL of a subnet provided by the service consumer to use for endpoints in the producers that connect to this network attachment.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "NetworkAttachmentAggregatedList": { + "description": "Contains a list of NetworkAttachmentsScopedList.", + "id": "NetworkAttachmentAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkAttachmentsScopedList", + "description": "Name of the scope containing this set of NetworkAttachments." + }, + "description": "A list of NetworkAttachmentsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkAttachmentAggregatedList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentConnectedEndpoint": { + "description": "[Output Only] A connection connected to this network attachment.", + "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.", + "type": "string" + }, + "projectIdOrNum": { + "description": "The project id or number of the interface to which the IP was assigned.", + "type": "string" + }, + "secondaryIpCidrRanges": { + "description": "Alias IP ranges from the same subnetwork", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "The status of a connected endpoint to this network attachment.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The consumer allows traffic from the producer to reach its VPC.", + "The consumer network attachment no longer exists.", + "The consumer needs to take further action before traffic can be served.", + "The consumer neither allows nor prohibits traffic from the producer to reach its VPC.", + "The consumer prohibits traffic from the producer to reach its VPC.", + "" + ], + "type": "string" + }, + "subnetwork": { + "description": "The subnetwork used to assign the IP to the producer instance network interface.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkAttachmentList": { + "id": "NetworkAttachmentList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkAttachment resources.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "kind": { + "default": "compute#networkAttachmentList", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkAttachmentsScopedList": { + "id": "NetworkAttachmentsScopedList", + "properties": { + "networkAttachments": { + "description": "A list of NetworkAttachments contained in this scope.", + "items": { + "$ref": "NetworkAttachment" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of network attachments when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkEdgeSecurityService": { + "description": "Represents a Google Cloud Armor network edge security service resource.", + "id": "NetworkEdgeSecurityService", + "properties": { + "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" + }, + "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 NetworkEdgeSecurityService. An up-to-date fingerprint must be provided in order to update the NetworkEdgeSecurityService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a NetworkEdgeSecurityService.", + "format": "byte", + "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#networkEdgeSecurityService", + "description": "[Output only] Type of the resource. Always compute#networkEdgeSecurityService for NetworkEdgeSecurityServices", + "type": "string" + }, + "name": { + "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "securityPolicy": { + "description": "The resource URL for the network edge security service associated with this network edge security service.", + "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" + } + }, + "type": "object" + }, + "NetworkEdgeSecurityServiceAggregatedList": { + "id": "NetworkEdgeSecurityServiceAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "NetworkEdgeSecurityServicesScopedList", + "description": "Name of the scope containing this set of security policies." + }, + "description": "A list of NetworkEdgeSecurityServicesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#networkEdgeSecurityServiceAggregatedList", + "description": "[Output Only] Type of resource. Always compute#networkEdgeSecurityServiceAggregatedList for lists of Network Edge Security 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "NetworkEdgeSecurityServicesScopedList": { + "id": "NetworkEdgeSecurityServicesScopedList", + "properties": { + "networkEdgeSecurityServices": { + "description": "A list of NetworkEdgeSecurityServices contained in this scope.", + "items": { + "$ref": "NetworkEdgeSecurityService" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "NetworkEndpoint": { "description": "The network endpoint.", "id": "NetworkEndpoint", @@ -45734,8 +49474,11 @@ ], "type": "string" }, + "pscData": { + "$ref": "NetworkEndpointGroupPscData" + }, "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API. 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": { @@ -45811,10 +49554,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -45838,10 +49583,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -45894,7 +49641,7 @@ "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": "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": { @@ -45913,7 +49660,7 @@ "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": "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" } }, @@ -45979,10 +49726,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46006,10 +49755,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46053,6 +49804,42 @@ }, "type": "object" }, + "NetworkEndpointGroupPscData": { + "description": "All data that is specifically relevant to only network endpoint groups of type PRIVATE_SERVICE_CONNECT.", + "id": "NetworkEndpointGroupPscData", + "properties": { + "consumerPscAddress": { + "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", + "type": "string" + }, + "pscConnectionId": { + "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", + "format": "uint64", + "type": "string" + }, + "pscConnectionStatus": { + "description": "[Output Only] The connection status of the PSC Forwarding Rule.", + "enum": [ + "ACCEPTED", + "CLOSED", + "NEEDS_ATTENTION", + "PENDING", + "REJECTED", + "STATUS_UNSPECIFIED" + ], + "enumDescriptions": [ + "The connection has been accepted by the producer.", + "The connection has been closed by the producer and will not serve traffic going forward.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", + "The connection is pending acceptance by the producer.", + "The connection has been rejected by the producer.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "NetworkEndpointGroupsAttachEndpointsRequest": { "id": "NetworkEndpointGroupsAttachEndpointsRequest", "properties": { @@ -46134,10 +49921,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46161,10 +49950,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46232,10 +50023,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46259,10 +50052,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46380,13 +50175,17 @@ "type": "string" }, "name": { - "description": "[Output Only] The name of the network interface, which is generated by the server. For network devices, these are eth0, eth1, etc.", + "description": "[Output Only] The name of the network interface, which is generated by the server. For a VM, the network interface uses the nicN naming format. Where N is a value between 0 and 7. The default interface value is nic0.", "type": "string" }, "network": { "description": "URL of the VPC network resource for this instance. When creating an instance, if neither the network nor the subnetwork is specified, the default network global/networks/default is used. If the selected project doesn't have the default network, you must specify a network or subnet. If the network is not specified but the subnetwork is specified, the network is inferred. If you specify this property, you can specify the network as a full or partial URL. For example, the following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/project/global/networks/ network - projects/project/global/networks/network - global/networks/default ", "type": "string" }, + "networkAttachment": { + "description": "The URL of the network attachment that this interface should connect to in the following format: projects/{project_number}/regions/{region_name}/networkAttachments/{network_attachment_name}.", + "type": "string" + }, "networkIP": { "description": "An IPv4 internal IP address to assign to the instance for this network interface. If not specified by the user, an unused internal IP is assigned by the system.", "type": "string" @@ -46471,10 +50270,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46498,10 +50299,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -46586,6 +50389,18 @@ "format": "int32", "type": "integer" }, + "stackType": { + "description": "Which IP version(s) of traffic and routes are allowed to be imported or exported between peer networks. The default value is IPV4_ONLY.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "This Peering will allow IPv4 traffic and routes to be exchanged. Additionally if the matching peering is IPV4_IPV6, IPv6 traffic and routes will be exchanged as well.", + "This Peering will only allow IPv4 traffic and routes to be exchanged, even if the matching peering is IPV4_IPV6." + ], + "type": "string" + }, "state": { "description": "[Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The peering is `ACTIVE` when there's a matching configuration in the peer network.", "enum": [ @@ -46811,6 +50626,10 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "shareSettings": { + "$ref": "ShareSettings", + "description": "Share-settings for the node group" + }, "size": { "description": "[Output Only] The total number of nodes in the node group.", "format": "int32", @@ -46887,10 +50706,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -46914,10 +50735,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47035,10 +50858,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47062,10 +50887,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47134,6 +50961,10 @@ }, "type": "array" }, + "consumedResources": { + "$ref": "InstanceConsumptionInfo", + "description": "Node resources that are reserved by all instances." + }, "cpuOvercommitType": { "description": "CPU overcommit.", "enum": [ @@ -47155,6 +50986,13 @@ }, "type": "array" }, + "instanceConsumptionData": { + "description": "Instance data that shows consumed resources on the node.", + "items": { + "$ref": "InstanceConsumptionData" + }, + "type": "array" + }, "instances": { "description": "Instances scheduled on this node.", "items": { @@ -47198,6 +51036,10 @@ "" ], "type": "string" + }, + "totalResources": { + "$ref": "InstanceConsumptionInfo", + "description": "Total amount of available resources on the node." } }, "type": "object" @@ -47267,10 +51109,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47294,10 +51138,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47365,10 +51211,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47392,10 +51240,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47600,10 +51450,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47627,10 +51479,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47716,10 +51570,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47743,10 +51599,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -47829,10 +51687,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -47856,10 +51716,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48013,10 +51875,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48040,10 +51904,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48129,10 +51995,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48156,10 +52024,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48227,10 +52097,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48254,10 +52126,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48361,7 +52235,7 @@ }, "resendInterval": { "$ref": "Duration", - "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed." + "description": "Optional. This field is used to configure how often to send a full update of all non-healthy backends. If unspecified, full updates are not sent. If specified, must be in the range between 600 seconds to 3600 seconds. Nanos are disallowed. Can only be set for regional notification endpoints." }, "retryDurationSec": { "description": "How much time (in seconds) is spent attempting notification retries until a successful response is received. Default is 30s. Limit is 20m (1200s). Must be a positive number.", @@ -48412,10 +52286,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48439,10 +52315,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48517,6 +52395,27 @@ "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" @@ -48631,10 +52530,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48658,10 +52559,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48760,10 +52663,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48787,10 +52692,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48876,10 +52783,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -48903,10 +52812,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -48974,10 +52885,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49001,10 +52914,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49057,22 +52972,22 @@ "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." }, "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.", + "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.", "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.", + "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.", "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.", + "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.", "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.", + "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.", "format": "int32", "type": "integer" }, @@ -49298,10 +53213,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49325,10 +53242,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49462,10 +53381,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49489,10 +53410,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49629,10 +53552,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -49656,10 +53581,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -49709,7 +53636,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. UrlMaps for external HTTP(S) load balancers support only 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 external HTTP(S) 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 ", @@ -49761,7 +53688,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 external HTTP(S) load balancers support only 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 external HTTP(S) 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.", @@ -49778,12 +53705,12 @@ "id": "PerInstanceConfig", "properties": { "fingerprint": { - "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance config or the field needs to be unset.", + "description": "Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.", "format": "byte", "type": "string" }, "name": { - "description": "The name of a per-instance config and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance config with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance config for a VM instance that either doesn't exist or is not part of the group will result in an error.", + "description": "The name of a per-instance configuration and its corresponding instance. Serves as a merge key during UpdatePerInstanceConfigs operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configconfiguration for a VM instance that either doesn't exist or is not part of the group will result in an error.", "type": "string" }, "preservedState": { @@ -49791,7 +53718,7 @@ "description": "The intended preserved state for the given instance. Does not contain preserved state generated from a stateful policy." }, "status": { - "description": "The status of applying this per-instance config on the corresponding managed instance.", + "description": "The status of applying this per-instance configuration on the corresponding managed instance.", "enum": [ "APPLYING", "DELETING", @@ -49801,12 +53728,12 @@ "UNAPPLIED_DELETION" ], "enumDescriptions": [ - "The per-instance config is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", - "The per-instance config is effective on the instance, meaning that all disks, ips and metadata specified in this config are attached or set on the instance.", - "*[Default]* The default status, when no per-instance config exists.", - "The per-instance config is set on an instance but not been applied yet.", - "The per-instance config has been deleted, but the deletion is not yet applied." + "The per-instance configuration is being applied to the instance, but is not yet effective, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration deletion is being applied on the instance, possibly waiting for the instance to, for example, REFRESH.", + "The per-instance configuration is effective on the instance, meaning that all disks, ips and metadata specified in this configuration are attached or set on the instance.", + "*[Default]* The default status, when no per-instance configuration exists.", + "The per-instance configuration is set on an instance but not been applied yet.", + "The per-instance configuration has been deleted, but the deletion is not yet applied." ], "type": "string" } @@ -49991,6 +53918,22 @@ "$ref": "UsageExportLocation", "description": "The naming prefix for daily usage reports and the Google Cloud Storage bucket where they are stored." }, + "vmDnsSetting": { + "description": "[Output Only] Default internal DNS setting used by VMs running in this project.", + "enum": [ + "GLOBAL_DEFAULT", + "UNSPECIFIED_VM_DNS_SETTING", + "ZONAL_DEFAULT", + "ZONAL_ONLY" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, "xpnProjectStatus": { "description": "[Output Only] The role this project has in a shared VPC configuration. Currently, only projects with the host role, which is specified by the value HOST, are differentiated.", "enum": [ @@ -50206,10 +54149,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50233,10 +54178,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50439,10 +54386,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50466,10 +54415,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50554,10 +54505,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50581,10 +54534,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50695,10 +54650,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -50722,10 +54679,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -50803,6 +54762,7 @@ "COMMITTED_N2A_CPUS", "COMMITTED_N2D_CPUS", "COMMITTED_N2_CPUS", + "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", "COMMITTED_NVIDIA_P100_GPUS", @@ -50821,8 +54781,12 @@ "EXTERNAL_VPN_GATEWAYS", "FIREWALLS", "FORWARDING_RULES", + "GLOBAL_EXTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_EXTERNAL_MANAGED_FORWARDING_RULES", + "GLOBAL_EXTERNAL_PROXY_LB_BACKEND_SERVICES", "GLOBAL_INTERNAL_ADDRESSES", + "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", "HEALTH_CHECKS", "IMAGES", @@ -50853,6 +54817,7 @@ "NETWORK_FIREWALL_POLICIES", "NODE_GROUPS", "NODE_TEMPLATES", + "NVIDIA_A100_80GB_GPUS", "NVIDIA_A100_GPUS", "NVIDIA_K80_GPUS", "NVIDIA_P100_GPUS", @@ -50866,6 +54831,7 @@ "PD_EXTREME_TOTAL_PROVISIONED_IOPS", "PREEMPTIBLE_CPUS", "PREEMPTIBLE_LOCAL_SSD_GB", + "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", @@ -50880,7 +54846,11 @@ "PUBLIC_ADVERTISED_PREFIXES", "PUBLIC_DELEGATED_PREFIXES", "REGIONAL_AUTOSCALERS", + "REGIONAL_EXTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_EXTERNAL_NETWORK_LB_BACKEND_SERVICES", "REGIONAL_INSTANCE_GROUP_MANAGERS", + "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", + "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -50896,6 +54866,7 @@ "SSL_CERTIFICATES", "STATIC_ADDRESSES", "STATIC_BYOIP_ADDRESSES", + "STATIC_EXTERNAL_IPV6_ADDRESS_RANGES", "SUBNETWORKS", "T2A_CPUS", "T2D_CPUS", @@ -50942,6 +54913,7 @@ "", "", "", + "", "Guest CPUs", "", "", @@ -51022,6 +54994,16 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -51040,6 +55022,7 @@ "", "", "", + "", "" ], "type": "string" @@ -51056,6 +55039,33 @@ }, "type": "object" }, + "QuotaExceededInfo": { + "description": "Additional details for quota exceeded error for resource quota.", + "id": "QuotaExceededInfo", + "properties": { + "dimensions": { + "additionalProperties": { + "type": "string" + }, + "description": "The map holding related quota dimensions.", + "type": "object" + }, + "limit": { + "description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", + "format": "double", + "type": "number" + }, + "limitName": { + "description": "The name of the quota limit.", + "type": "string" + }, + "metricName": { + "description": "The Compute Engine quota metric name.", + "type": "string" + } + }, + "type": "object" + }, "Reference": { "description": "Represents a reference to a resource.", "id": "Reference", @@ -51189,10 +55199,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51216,10 +55228,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51304,10 +55318,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51331,10 +55347,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51457,10 +55475,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51484,10 +55504,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51587,10 +55609,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51614,10 +55638,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -51666,7 +55692,7 @@ "id": "RegionInstanceGroupManagerPatchInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -51680,7 +55706,7 @@ "id": "RegionInstanceGroupManagerUpdateInstanceConfigReq", "properties": { "perInstanceConfigs": { - "description": "The list of per-instance configs to insert or patch on this managed instance group.", + "description": "The list of per-instance configurations to insert or patch on this managed instance group.", "items": { "$ref": "PerInstanceConfig" }, @@ -51828,10 +55854,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -51855,10 +55883,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52001,10 +56031,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52028,10 +56060,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52158,10 +56192,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52185,10 +56221,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52333,7 +56371,7 @@ "id": "RegionTargetHttpsProxiesSetSslCertificatesRequest", "properties": { "sslCertificates": { - "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource. Currently exactly one SslCertificate resource must be specified.", + "description": "New set of SslCertificate resources to associate with this TargetHttpsProxy resource.", "items": { "type": "string" }, @@ -52357,7 +56395,7 @@ "id": "RequestMirrorPolicy", "properties": { "backendService": { - "description": "The full or partial URL to the BackendService resource being mirrored to.", + "description": "The full or partial URL to the BackendService resource being mirrored to. The backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map. Serverless NEG backends are not currently supported as a mirrored backend service. ", "type": "string" } }, @@ -52399,6 +56437,10 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "resourceStatus": { + "$ref": "AllocationResourceStatus", + "description": "[Output Only] Status information for Reservation resource." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -52409,7 +56451,7 @@ }, "shareSettings": { "$ref": "ShareSettings", - "description": "Share-settings for shared-reservation" + "description": "Specify share-settings to create a shared reservation. This property is optional. For more information about the syntax and options for this field and its subfields, see the guide for creating a shared reservation." }, "specificReservation": { "$ref": "AllocationSpecificSKUReservation", @@ -52528,10 +56570,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52555,10 +56599,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52643,10 +56689,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52670,10 +56718,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52752,10 +56802,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52779,10 +56831,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -52840,7 +56894,7 @@ "type": "string" }, "type": { - "description": "Type of resource for which this commitment applies. Possible values are VCPU and MEMORY", + "description": "Type of resource for which this commitment applies. Possible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.", "enum": [ "ACCELERATOR", "LOCAL_SSD", @@ -52894,10 +56948,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -52921,10 +56977,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53096,10 +57154,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53123,10 +57183,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53195,7 +57257,7 @@ "id": "ResourcePolicyGroupPlacementPolicy", "properties": { "availabilityDomainCount": { - "description": "The number of availability domains instances will be spread across. If two instances are in different availability domain, they will not be put in the same low latency network", + "description": "The number of availability domains to spread instances across. If two instances are in different availability domain, they are not in the same low latency network.", "format": "int32", "type": "integer" }, @@ -53212,7 +57274,7 @@ "type": "string" }, "vmCount": { - "description": "Number of vms in this placement group", + "description": "Number of VMs in this placement group. Google does not recommend that you use this field unless you use a compact policy and you want your policy to work only if it contains this exact number of VMs.", "format": "int32", "type": "integer" } @@ -53321,10 +57383,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53348,10 +57412,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53562,6 +57628,17 @@ }, "type": "object" }, + "ResourceStatus": { + "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": { + "physicalHost": { + "description": "[Output Only] An opaque ID of the host on which the VM is running.", + "type": "string" + } + }, + "type": "object" + }, "Route": { "description": "Represents a Route resource. A route defines a path from VM instances in the VPC network to a specific destination. This destination can be inside or outside the VPC network. For more information, read the Routes overview.", "id": "Route", @@ -53657,6 +57734,22 @@ "format": "uint32", "type": "integer" }, + "routeStatus": { + "description": "[Output only] The status of the route.", + "enum": [ + "ACTIVE", + "DROPPED", + "INACTIVE", + "PENDING" + ], + "enumDescriptions": [ + "This route is processed and active.", + "The route is dropped due to the VPC exceeding the dynamic route limit. For dynamic route limit, please refer to the Learned route example", + "This route is processed but inactive due to failure from the backend. The backend may have rejected the route", + "This route is being processed internally. The status will change once processed." + ], + "type": "string" + }, "routeType": { "description": "[Output Only] The type of this route, which can be one of the following values: - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers - 'SUBNET' for a route from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this router - 'STATIC' for a static route", "enum": [ @@ -53704,10 +57797,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53731,10 +57826,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53852,10 +57949,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -53879,10 +57978,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -53950,7 +58051,7 @@ "type": "string" }, "encryptedInterconnectRouter": { - "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments). Not currently available publicly. ", + "description": "Indicates if a router is dedicated for use with encrypted VLAN attachments (interconnectAttachments).", "type": "boolean" }, "id": { @@ -53970,6 +58071,13 @@ "description": "[Output Only] Type of resource. Always compute#router for routers.", "type": "string" }, + "md5AuthenticationKeys": { + "description": "Keys used for MD5 authentication.", + "items": { + "$ref": "RouterMd5AuthenticationKey" + }, + "type": "array" + }, "name": { "annotations": { "required": [ @@ -54073,10 +58181,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54100,10 +58210,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54279,6 +58391,10 @@ ], "type": "string" }, + "md5AuthenticationKeyName": { + "description": "Present if MD5 authentication is enabled for the peering. Must be the name of one of the entries in the Router.md5_authentication_keys. The field must comply with RFC1035.", + "type": "string" + }, "name": { "annotations": { "required": [ @@ -54444,10 +58560,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -54471,10 +58589,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -54518,6 +58638,31 @@ }, "type": "object" }, + "RouterMd5AuthenticationKey": { + "id": "RouterMd5AuthenticationKey", + "properties": { + "key": { + "annotations": { + "required": [ + "compute.routers.insert" + ] + }, + "description": "[Input only] Value of the key. For patch and update calls, it can be skipped to copy the value from the previous configuration. This is allowed if the key with the same name existed before the operation. Maximum length is 80 characters. Can only contain printable ASCII characters.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.routers.insert", + "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.", + "type": "string" + } + }, + "type": "object" + }, "RouterNat": { "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", @@ -54536,6 +58681,21 @@ "enableEndpointIndependentMapping": { "type": "boolean" }, + "endpointTypes": { + "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_SWG", + "ENDPOINT_TYPE_VM" + ], + "enumDescriptions": [ + "This is used for Secure Web Gateway endpoints.", + "This is the default." + ], + "type": "string" + }, + "type": "array" + }, "icmpIdleTimeoutSec": { "description": "Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.", "format": "int32", @@ -54782,14 +58942,26 @@ "bfdStatus": { "$ref": "BfdStatus" }, + "enableIpv6": { + "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", + "type": "boolean" + }, "ipAddress": { "description": "IP address of the local BGP interface.", "type": "string" }, + "ipv6NexthopAddress": { + "description": "IPv6 address of the local BGP interface.", + "type": "string" + }, "linkedVpnTunnel": { "description": "URL of the VPN tunnel that this BGP peer controls.", "type": "string" }, + "md5AuthEnabled": { + "description": "Informs whether MD5 authentication is enabled on this BGP peer.", + "type": "boolean" + }, "name": { "description": "Name of this BGP peer. Unique within the Routers resource.", "type": "string" @@ -54803,6 +58975,10 @@ "description": "IP address of the remote BGP interface.", "type": "string" }, + "peerIpv6NexthopAddress": { + "description": "IPv6 address of the remote BGP interface.", + "type": "string" + }, "routerApplianceInstance": { "description": "[Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance is the peer side of the BGP session.", "type": "string" @@ -54825,6 +59001,18 @@ ], "type": "string" }, + "statusReason": { + "description": "Indicates why particular status was returned.", + "enum": [ + "MD5_AUTH_INTERNAL_PROBLEM", + "STATUS_REASON_UNSPECIFIED" + ], + "enumDescriptions": [ + "Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN.", + "" + ], + "type": "string" + }, "uptime": { "description": "Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds", "type": "string" @@ -54983,10 +59171,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55010,10 +59200,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55127,25 +59319,25 @@ "id": "SSLHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 443. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 443. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, SSL health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -55162,11 +59354,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the SSL connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection and SSL handshake.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based SSL health check. In addition to establishing a TCP connection and the TLS handshake, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -55289,6 +59481,20 @@ "description": "An instance-attached disk resource.", "id": "SavedDisk", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the attached disk.", + "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" + }, "kind": { "default": "compute#savedDisk", "description": "[Output Only] Type of the resource. Always compute#savedDisk for attached disks.", @@ -55349,7 +59555,7 @@ "type": "object" }, "Scheduling": { - "description": "Sets the scheduling options for an Instance. NextID: 21", + "description": "Sets the scheduling options for an Instance.", "id": "Scheduling", "properties": { "automaticRestart": { @@ -55387,7 +59593,7 @@ "type": "array" }, "onHostMaintenance": { - "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM availability policies.", + "description": "Defines the maintenance behavior for this instance. For standard instances, the default behavior is MIGRATE. For preemptible instances, the default and only possible behavior is TERMINATE. For more information, see Set VM host maintenance policy.", "enum": [ "MIGRATE", "TERMINATE" @@ -55465,6 +59671,136 @@ }, "type": "object" }, + "SecurityPoliciesAggregatedList": { + "id": "SecurityPoliciesAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SecurityPoliciesScopedList", + "description": "Name of the scope containing this set of security policies." + }, + "description": "A list of SecurityPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#securityPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#securityPolicyAggregatedList for lists of Security 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "SecurityPoliciesListPreconfiguredExpressionSetsResponse": { "id": "SecurityPoliciesListPreconfiguredExpressionSetsResponse", "properties": { @@ -55474,6 +59810,108 @@ }, "type": "object" }, + "SecurityPoliciesScopedList": { + "id": "SecurityPoliciesScopedList", + "properties": { + "securityPolicies": { + "description": "A list of SecurityPolicies contained in this scope.", + "items": { + "$ref": "SecurityPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of security policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "SecurityPoliciesWafConfig": { "id": "SecurityPoliciesWafConfig", "properties": { @@ -55497,6 +59935,9 @@ "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, + "ddosProtectionConfig": { + "$ref": "SecurityPolicyDdosProtectionConfig" + }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" @@ -55524,8 +59965,12 @@ "recaptchaOptionsConfig": { "$ref": "SecurityPolicyRecaptchaOptionsConfig" }, + "region": { + "description": "[Output Only] URL of the region where the regional security policy resides. This field is not applicable to global security policies.", + "type": "string" + }, "rules": { - "description": "A list of rules that belong to this policy. There must always be a default rule (rule with priority 2147483647 and match \"*\"). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", + "description": "A list of rules that belong to this policy. There must always be a default rule which is a rule with priority 2147483647 and match all condition (for the match condition this means match \"*\" for srcIpRanges and for the networkMatch condition every field must be either match \"*\" or not set). If no rules are provided when creating a security policy, a default rule with action \"allow\" will be added.", "items": { "$ref": "SecurityPolicyRule" }, @@ -55539,9 +59984,11 @@ "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.", "enum": [ "CLOUD_ARMOR", - "CLOUD_ARMOR_EDGE" + "CLOUD_ARMOR_EDGE", + "CLOUD_ARMOR_NETWORK" ], "enumDescriptions": [ + "", "", "" ], @@ -55587,6 +60034,10 @@ "SecurityPolicyAdvancedOptionsConfig": { "id": "SecurityPolicyAdvancedOptionsConfig", "properties": { + "jsonCustomConfig": { + "$ref": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "description": "Custom configuration to apply the JSON parsing. Only applicable when json_parsing is set to STANDARD." + }, "jsonParsing": { "enum": [ "DISABLED", @@ -55612,6 +60063,36 @@ }, "type": "object" }, + "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig": { + "id": "SecurityPolicyAdvancedOptionsConfigJsonCustomConfig", + "properties": { + "contentTypes": { + "description": "A list of custom Content-Type header values to apply the JSON parsing. As per RFC 1341, a Content-Type header value has the following format: Content-Type := type \"/\" subtype *[\";\" parameter] When configuring a custom Content-Type header value, only the type/subtype needs to be specified, and the parameters should be excluded.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityPolicyDdosProtectionConfig": { + "id": "SecurityPolicyDdosProtectionConfig", + "properties": { + "ddosProtection": { + "enum": [ + "ADVANCED", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "SecurityPolicyList": { "id": "SecurityPolicyList", "properties": { @@ -55649,10 +60130,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -55676,10 +60159,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -55869,15 +60354,21 @@ "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 this field 'enforce_on_key' is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforce_on_key_name\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. ", + "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. ", "enum": [ "ALL", "HTTP_COOKIE", "HTTP_HEADER", + "HTTP_PATH", "IP", + "REGION_CODE", + "SNI", "XFF_IP" ], "enumDescriptions": [ + "", + "", + "", "", "", "", @@ -56191,10 +60682,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56218,10 +60711,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56283,6 +60778,7 @@ "enum": [ "ACCEPTED", "CLOSED", + "NEEDS_ATTENTION", "PENDING", "REJECTED", "STATUS_UNSPECIFIED" @@ -56290,6 +60786,7 @@ "enumDescriptions": [ "The connection has been accepted by the producer.", "The connection has been closed by the producer.", + "The connection has been accepted by the producer, but the producer needs to take further action before the forwarding rule can serve traffic.", "The connection is pending acceptance by the producer.", "The consumer is still connected but not using the connection.", "" @@ -56307,6 +60804,10 @@ "format": "uint32", "type": "integer" }, + "networkUrl": { + "description": "The network URL for the network to set the limit for.", + "type": "string" + }, "projectIdOrNum": { "description": "The project id or number for the project to set the limit for.", "type": "string" @@ -56355,10 +60856,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56382,10 +60885,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56453,10 +60958,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56480,10 +60987,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56542,11 +61051,13 @@ "description": "Type of sharing for this shared-reservation", "enum": [ "LOCAL", + "ORGANIZATION", "SHARE_TYPE_UNSPECIFIED", "SPECIFIC_PROJECTS" ], "enumDescriptions": [ "Default value.", + "Shared-reservation is open to entire Organization", "Default value. This value is unused.", "Shared-reservation is open to specific projects" ], @@ -56651,6 +61162,20 @@ "description": "Represents a Persistent Disk Snapshot resource. You can use snapshots to back up data on a regular interval. For more information, read Creating persistent disk snapshots.", "id": "Snapshot", "properties": { + "architecture": { + "description": "[Output Only] The architecture of the 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" + }, "autoCreated": { "description": "[Output Only] Set to true if snapshots are automatically created by applying resource policy on the target disk.", "type": "boolean" @@ -56659,6 +61184,11 @@ "description": "Creates the new snapshot in the snapshot chain labeled with the specified name. The chain name must be 1-63 characters long and comply with RFC1035. This is an uncommon option only for advanced service owners who needs to create separate snapshot chains, for example, for chargeback tracking. When you describe your snapshot resource, this field is visible only if it has a non-empty value.", "type": "string" }, + "creationSizeBytes": { + "description": "[Output Only] Size in bytes of the snapshot at creation time.", + "format": "int64", + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -56740,6 +61270,18 @@ "$ref": "CustomerEncryptionKey", "description": "Encrypts the snapshot using a customer-supplied encryption key. After you encrypt a snapshot using a customer-supplied key, you must provide the same key if you use the snapshot later. For example, you must provide the encryption key when you create a disk from the encrypted snapshot in a future request. Customer-supplied encryption keys do not protect access to metadata of the snapshot. If you do not provide an encryption key when creating the snapshot, then the snapshot will be encrypted using an automatically generated key and you do not need to provide a key to use the snapshot later." }, + "snapshotType": { + "description": "Indicates the type of the snapshot.", + "enum": [ + "ARCHIVE", + "STANDARD" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, "sourceDisk": { "description": "The source disk used to create this snapshot.", "type": "string" @@ -56752,6 +61294,14 @@ "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" }, + "sourceSnapshotSchedulePolicy": { + "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", + "type": "string" + }, + "sourceSnapshotSchedulePolicyId": { + "description": "[Output Only] ID of the resource policy which created this scheduled snapshot.", + "type": "string" + }, "status": { "description": "[Output Only] The status of the snapshot. This can be CREATING, DELETING, FAILED, READY, or UPLOADING.", "enum": [ @@ -56839,10 +61389,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -56866,10 +61418,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -56932,7 +61486,7 @@ "id": "SourceInstanceParams", "properties": { "diskConfigs": { - "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, new custom images will be created from each disk. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", + "description": "Attached disks configuration. If not provided, defaults are applied: For boot disk and any other R/W disks, the source images for each disk will be used. For read-only disks, they will be attached in read-only mode. Local SSD disks will be created as blank volumes.", "items": { "$ref": "DiskInstantiationConfig" }, @@ -56971,6 +61525,20 @@ }, "type": "array" }, + "keyRevocationActionType": { + "description": "KeyRevocationActionType of the instance. Supported options are \"STOP\" and \"NONE\". The default value is \"NONE\" if it is not specified.", + "enum": [ + "KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED", + "NONE", + "STOP" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Indicates user chose no operation.", + "Indicates user chose to opt for VM shutdown on key revocation." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -57143,10 +61711,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57170,10 +61740,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57259,10 +61831,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57286,10 +61860,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57431,10 +62007,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57458,10 +62036,142 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "SslPoliciesAggregatedList": { + "id": "SslPoliciesAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "SslPoliciesScopedList", + "description": "Name of the scope containing this set of SSL policies." + }, + "description": "A list of SslPoliciesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#sslPoliciesAggregatedList", + "description": "[Output Only] Type of resource. Always compute#sslPolicyAggregatedList for lists of SSL 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" + }, + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57546,10 +62256,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57573,10 +62285,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57632,6 +62346,108 @@ }, "type": "object" }, + "SslPoliciesScopedList": { + "id": "SslPoliciesScopedList", + "properties": { + "sslPolicies": { + "description": "A list of SslPolicies contained in this scope.", + "items": { + "$ref": "SslPolicy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of SSL policies when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "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.", "id": "SslPolicy", @@ -57708,6 +62524,10 @@ ], "type": "string" }, + "region": { + "description": "[Output Only] URL of the region where the regional SSL policy resides. This field is not applicable to global SSL policies.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -57727,10 +62547,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -57754,10 +62576,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -57871,7 +62695,7 @@ "type": "boolean" }, "externalIpv6Prefix": { - "description": "[Output Only] The range of external IPv6 addresses that are owned by this subnetwork.", + "description": "The external IPv6 address range that is owned by this subnetwork.", "type": "string" }, "fingerprint": { @@ -57889,7 +62713,7 @@ "type": "string" }, "internalIpv6Prefix": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this is for general VM to VM communication, not to be confused with the ipv6_cidr_range field.", + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", "type": "string" }, "ipCidrRange": { @@ -57897,19 +62721,19 @@ "type": "string" }, "ipv6AccessType": { - "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack. If the ipv6_type is EXTERNAL then this subnet cannot enable direct path.", + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", "enum": [ "EXTERNAL", "INTERNAL" ], "enumDescriptions": [ - "VMs on this subnet will be assigned IPv6 addresses that are accesible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." ], "type": "string" }, "ipv6CidrRange": { - "description": "[Output Only] The range of internal IPv6 addresses that are owned by this subnetwork. Note this will be for private google access only eventually.", + "description": "[Output Only] This field is for internal use.", "type": "string" }, "kind": { @@ -57935,7 +62759,7 @@ "type": "boolean" }, "privateIpv6GoogleAccess": { - "description": "The private IPv6 google access type for the VMs in this subnet. This is an expanded field of enablePrivateV6Access. If both fields are set, privateIpv6GoogleAccess will take priority. This field can be both set at resource creation time and updated using patch.", + "description": "This field is for internal use. This field can be both set at resource creation time and updated using patch.", "enum": [ "DISABLE_GOOGLE_ACCESS", "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE", @@ -58069,10 +62893,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58096,10 +62922,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58185,10 +63013,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58212,10 +63042,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58369,10 +63201,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58396,10 +63230,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58474,25 +63310,25 @@ "id": "TCPHealthCheck", "properties": { "port": { - "description": "The TCP port number for the health check request. The default value is 80. Valid values are 1 through 65535.", + "description": "The TCP port number to which the health check prober sends packets. The default value is 80. Valid values are 1 through 65535.", "format": "int32", "type": "integer" }, "portName": { - "description": "Port name as defined in InstanceGroup#NamedPort#name. If both port and port_name are defined, port takes precedence.", + "description": "Not supported.", "type": "string" }, "portSpecification": { - "description": "Specifies how port is selected for health checking, can be one of following values: USE_FIXED_PORT: The port number in port is used for health checking. USE_NAMED_PORT: The portName is used for health checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking. If not specified, TCP health check follows behavior specified in port and portName fields.", + "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.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", "USE_SERVING_PORT" ], "enumDescriptions": [ - "The port number in port is used for health checking.", - "The portName is used for health checking.", - "For NetworkEndpointGroup, the port specified for each network endpoint is used for health checking. For other backends, the port or named port specified in the Backend Service is used for health checking." + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." ], "type": "string" }, @@ -58509,11 +63345,11 @@ "type": "string" }, "request": { - "description": "The application data to send once the TCP connection has been established (default value is empty). If both request and response are empty, the connection establishment alone will indicate health. The request data can only be ASCII.", + "description": "Instructs the health check prober to send this exact ASCII string, up to 1024 bytes in length, after establishing the TCP connection.", "type": "string" }, "response": { - "description": "The bytes to match against the beginning of the response data. If left empty (the default value), any response will indicate health. The response data can only be ASCII.", + "description": "Creates a content-based TCP health check. In addition to establishing a TCP connection, you can configure the health check to pass only when the backend sends this exact response ASCII string, up to 1024 bytes in length. For details, see: https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp", "type": "string" } }, @@ -58636,10 +63472,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58663,10 +63501,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58734,10 +63574,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58761,10 +63603,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -58939,10 +63783,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -58966,10 +63812,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59037,10 +63885,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59064,10 +63914,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59111,6 +63963,16 @@ }, "type": "object" }, + "TargetHttpsProxiesSetCertificateMapRequest": { + "id": "TargetHttpsProxiesSetCertificateMapRequest", + "properties": { + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "type": "string" + } + }, + "type": "object" + }, "TargetHttpsProxiesSetQuicOverrideRequest": { "id": "TargetHttpsProxiesSetQuicOverrideRequest", "properties": { @@ -59152,6 +64014,10 @@ "description": "Optional. A URL referring to a networksecurity.AuthorizationPolicy resource that describes how the proxy should authorize inbound traffic. If left blank, access will not be restricted by an authorization policy. Refer to the AuthorizationPolicy resource for additional details. authorizationPolicy only applies to a global TargetHttpsProxy attached to globalForwardingRules with the loadBalancingScheme set to INTERNAL_SELF_MANAGED. Note: This field currently has no impact.", "type": "string" }, + "certificateMap": { + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -59277,10 +64143,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59304,10 +64172,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59393,10 +64263,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59420,10 +64292,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59499,7 +64373,7 @@ "type": "string" }, "natPolicy": { - "description": "NAT option controlling how IPs are NAT'ed to the instance. Currently only NO_NAT (default value) is supported.", + "description": "Must have a value of NO_NAT. Protocol forwarding delivers packets while preserving the destination IP address of the forwarding rule referencing the target instance.", "enum": [ "NO_NAT" ], @@ -59572,10 +64446,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59599,10 +64475,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59688,10 +64566,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59715,10 +64595,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59786,10 +64668,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -59813,10 +64697,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -59994,10 +64880,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60021,10 +64909,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60127,10 +65017,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60154,10 +65046,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60277,10 +65171,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60304,10 +65200,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60370,6 +65268,16 @@ }, "type": "object" }, + "TargetSslProxiesSetCertificateMapRequest": { + "id": "TargetSslProxiesSetCertificateMapRequest", + "properties": { + "certificateMap": { + "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "type": "string" + } + }, + "type": "object" + }, "TargetSslProxiesSetProxyHeaderRequest": { "id": "TargetSslProxiesSetProxyHeaderRequest", "properties": { @@ -60405,6 +65313,10 @@ "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.", "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.", + "type": "string" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -60504,10 +65416,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60531,10 +65445,114 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, + "TargetTcpProxiesScopedList": { + "id": "TargetTcpProxiesScopedList", + "properties": { + "targetTcpProxies": { + "description": "A list of TargetTcpProxies contained in this scope.", + "items": { + "$ref": "TargetTcpProxy" + }, + "type": "array" + }, + "warning": { + "description": "Informational warning which replaces the list of backend services when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60649,6 +65667,10 @@ ], "type": "string" }, + "region": { + "description": "[Output Only] URL of the region where the regional TCP proxy resides. This field is not applicable to global TCP proxy.", + "type": "string" + }, "selfLink": { "description": "[Output Only] Server-defined URL for the resource.", "type": "string" @@ -60660,6 +65682,133 @@ }, "type": "object" }, + "TargetTcpProxyAggregatedList": { + "id": "TargetTcpProxyAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "TargetTcpProxiesScopedList", + "description": "Name of the scope containing this set of TargetTcpProxies." + }, + "description": "A list of TargetTcpProxiesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#targetTcpProxyAggregatedList", + "description": "[Output Only] Type of resource. Always compute#targetTcpProxyAggregatedList for lists of Target TCP Proxies.", + "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", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "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" + }, "TargetTcpProxyList": { "description": "Contains a list of TargetTcpProxy resources.", "id": "TargetTcpProxyList", @@ -60702,10 +65851,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60729,10 +65880,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -60907,10 +66060,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -60934,10 +66089,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61023,10 +66180,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61050,10 +66209,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61121,10 +66282,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61148,10 +66311,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61292,7 +66457,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. UrlMaps for external HTTP(S) load balancers support only the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to 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 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." }, "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.", @@ -61404,10 +66569,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61431,10 +66598,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61617,10 +66786,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61644,10 +66815,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61715,10 +66888,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61742,10 +66917,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -61844,14 +67021,64 @@ "description": "Subnetwork which the current user has compute.subnetworks.use permission on.", "id": "UsableSubnetwork", "properties": { + "externalIpv6Prefix": { + "description": "[Output Only] The external IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, + "internalIpv6Prefix": { + "description": "[Output Only] The internal IPv6 address range that is assigned to this subnetwork.", + "type": "string" + }, "ipCidrRange": { "description": "The range of internal addresses that are owned by this subnetwork.", "type": "string" }, + "ipv6AccessType": { + "description": "The access type of IPv6 address this subnet holds. It's immutable and can only be specified during creation or the first time the subnet is updated into IPV4_IPV6 dual stack.", + "enum": [ + "EXTERNAL", + "INTERNAL" + ], + "enumDescriptions": [ + "VMs on this subnet will be assigned IPv6 addresses that are accessible via the Internet, as well as the VPC network.", + "VMs on this subnet will be assigned IPv6 addresses that are only accessible over the VPC network." + ], + "type": "string" + }, "network": { "description": "Network URL.", "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.", + "enum": [ + "INTERNAL_HTTPS_LOAD_BALANCER", + "PRIVATE", + "PRIVATE_RFC_1918", + "PRIVATE_SERVICE_CONNECT", + "REGIONAL_MANAGED_PROXY" + ], + "enumDescriptions": [ + "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Regular user created or automatically created subnet.", + "Regular user created or automatically created subnet.", + "Subnetworks created for Private Service Connect in the producer network.", + "Subnetwork used for Regional Internal/External HTTP(S) Load Balancing." + ], + "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.", + "enum": [ + "ACTIVE", + "BACKUP" + ], + "enumDescriptions": [ + "The ACTIVE subnet that is currently used.", + "The BACKUP subnet that could be promoted to ACTIVE." + ], + "type": "string" + }, "secondaryIpRanges": { "description": "Secondary IP ranges.", "items": { @@ -61859,6 +67086,18 @@ }, "type": "array" }, + "stackType": { + "description": "The stack type for the subnet. If set to IPV4_ONLY, new VMs in the subnet are assigned IPv4 addresses only. If set to IPV4_IPV6, new VMs in the subnet can be assigned both IPv4 and IPv6 addresses. If not specified, IPV4_ONLY is used. This field can be both set at resource creation time and updated using patch.", + "enum": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], + "enumDescriptions": [ + "New VMs in this subnet can have both IPv4 and IPv6 addresses.", + "New VMs in this subnet will only be assigned IPv4 addresses." + ], + "type": "string" + }, "subnetwork": { "description": "Subnetwork URL.", "type": "string" @@ -61922,10 +67161,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -61949,10 +67190,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62056,6 +67299,13 @@ "format": "int32", "type": "integer" }, + "ruleMappings": { + "description": "Information about mappings provided by rules in this NAT.", + "items": { + "$ref": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings" + }, + "type": "array" + }, "sourceAliasIpRange": { "description": "Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP range. Examples: \"10.33.4.55/32\", or \"192.168.5.0/24\".", "type": "string" @@ -62067,6 +67317,42 @@ }, "type": "object" }, + "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings": { + "description": "Contains information of NAT Mappings provided by a NAT Rule.", + "id": "VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings", + "properties": { + "drainNatIpPortRanges": { + "description": "List of all drain IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "natIpPortRanges": { + "description": "A list of all IP:port-range mappings assigned to this interface by this rule. These ranges are inclusive, that is, both the first and the last ports can be used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].", + "items": { + "type": "string" + }, + "type": "array" + }, + "numTotalDrainNatPorts": { + "description": "Total number of drain ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field drain_nat_ip_port_ranges.", + "format": "int32", + "type": "integer" + }, + "numTotalNatPorts": { + "description": "Total number of ports across all NAT IPs allocated to this interface by this rule. It equals the aggregated port number in the field nat_ip_port_ranges.", + "format": "int32", + "type": "integer" + }, + "ruleNumber": { + "description": "Rule number of the NAT Rule.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "VmEndpointNatMappingsList": { "description": "Contains a list of VmEndpointNatMappings.", "id": "VmEndpointNatMappingsList", @@ -62109,10 +67395,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62136,10 +67424,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62245,7 +67535,7 @@ "type": "string" }, "stackType": { - "description": "The stack type for this VPN gateway to identify the IP protocols that are enabled. If not specified, IPV4_ONLY will be used.", + "description": "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" @@ -62315,10 +67605,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62342,10 +67634,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62431,10 +67725,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62458,10 +67754,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62604,11 +67902,11 @@ "type": "integer" }, "interconnectAttachment": { - "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource. Not currently available publicly. ", + "description": "URL of the VLAN attachment (interconnectAttachment) resource for this VPN gateway interface. When the value of this field is present, the VPN gateway is used for HA VPN over Cloud Interconnect; all egress or ingress traffic for this VPN gateway interface goes through the specified VLAN attachment resource.", "type": "string" }, "ipAddress": { - "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For IPsec-encrypted Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", + "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" } }, @@ -62647,10 +67945,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62674,10 +67974,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -62774,7 +68076,7 @@ "type": "string" }, "peerExternalGatewayInterface": { - "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created.", + "description": "The interface ID of the external VPN gateway to which this VPN tunnel is connected. Provided by the client when the VPN tunnel is created. Possible values are: `0`, `1`, `2`, `3`. The number of IDs in use depends on the external VPN gateway redundancy type.", "format": "int32", "type": "integer" }, @@ -62856,7 +68158,7 @@ "type": "string" }, "vpnGatewayInterface": { - "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated.", + "description": "The interface ID of the VPN gateway with which this VPN tunnel is associated. Possible values are: `0`, `1`.", "format": "int32", "type": "integer" } @@ -62912,10 +68214,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -62939,10 +68243,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63028,10 +68334,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63055,10 +68363,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63126,10 +68436,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63153,10 +68465,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63295,10 +68609,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63322,10 +68638,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", @@ -63498,10 +68816,12 @@ "EXTERNAL_API_WARNING", "FIELD_VALUE_OVERRIDEN", "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", "LARGE_DEPLOYMENT_WARNING", "MISSING_TYPE_DEPENDENCY", "NEXT_HOP_ADDRESS_NOT_ASSIGNED", "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", "NEXT_HOP_INSTANCE_NOT_FOUND", "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", "NEXT_HOP_NOT_RUNNING", @@ -63525,10 +68845,12 @@ "Warning that is present in an external api call", "Warning that value of a field has been overridden. Deprecated unused field.", "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", "When deploying a deployment with a exceedingly large number of resources", "A resource depends on a missing type", "The route's nextHopIp address is not assigned to an instance on the network.", "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", "The route's nextHopInstance URL refers to an instance that does not exist.", "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", "The route's next hop instance does not have a status of RUNNING.", diff --git a/etc/api/connectors/v1/connectors-api.json b/etc/api/connectors/v1/connectors-api.json index 86880144db..f103cd0411 100644 --- a/etc/api/connectors/v1/connectors-api.json +++ b/etc/api/connectors/v1/connectors-api.json @@ -169,7 +169,7 @@ ], "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).", + "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" }, @@ -343,7 +343,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -436,7 +436,7 @@ "type": "string" }, "updateMask": { - "description": "Field mask is used to specify the fields to be overwritten in the Connection resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "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`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -463,7 +463,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -491,7 +491,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", "required": true, @@ -511,6 +511,38 @@ } }, "resources": { + "connectionSchemaMetadata": { + "methods": { + "refresh": { + "description": "Refresh runtime schema of a connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}/connectionSchemaMetadata:refresh", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.connectionSchemaMetadata.refresh", + "parameterOrder": [ + "name" + ], + "parameters": { + "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}:refresh", + "request": { + "$ref": "RefreshConnectionSchemaMetadataRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "runtimeActionSchemas": { "methods": { "list": { @@ -603,239 +635,6 @@ } } }, - "global": { - "resources": { - "providers": { - "methods": { - "get": { - "description": "Gets details of a single Provider.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers/{providersId}", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/providers/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Provider" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists Providers in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.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 API, of the form: `projects/*/locations/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/providers", - "response": { - "$ref": "ListProvidersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "connectors": { - "methods": { - "get": { - "description": "Gets details of a single Connector.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers/{providersId}/connectors/{connectorsId}", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.connectors.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*/connectors/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/providers/[^/]+/connectors/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Connector" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists Connectors in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers/{providersId}/connectors", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.connectors.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/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/providers/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/connectors", - "response": { - "$ref": "ListConnectorsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "versions": { - "methods": { - "get": { - "description": "Gets details of a single connector version.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers/{providersId}/connectors/{connectorsId}/versions/{versionsId}", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.connectors.versions.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*/connectors/*/versions/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/providers/[^/]+/connectors/[^/]+/versions/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Specifies which fields of the ConnectorVersion are returned in the response. Defaults to `CUSTOMER` view.", - "enum": [ - "CONNECTOR_VERSION_VIEW_UNSPECIFIED", - "CONNECTOR_VERSION_VIEW_BASIC", - "CONNECTOR_VERSION_VIEW_FULL" - ], - "enumDescriptions": [ - "CONNECTOR_VERSION_VIEW_UNSPECIFIED.", - "Do not include role grant configs.", - "Include role grant configs." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "ConnectorVersion" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists Connector Versions in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/global/providers/{providersId}/connectors/{connectorsId}/versions", - "httpMethod": "GET", - "id": "connectors.projects.locations.global.providers.connectors.versions.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/*`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/providers/[^/]+/connectors/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Specifies which fields of the ConnectorVersion are returned in the response. Defaults to `CUSTOMER` view.", - "enum": [ - "CONNECTOR_VERSION_VIEW_UNSPECIFIED", - "CONNECTOR_VERSION_VIEW_BASIC", - "CONNECTOR_VERSION_VIEW_FULL" - ], - "enumDescriptions": [ - "CONNECTOR_VERSION_VIEW_UNSPECIFIED.", - "Do not include role grant configs.", - "Include role grant configs." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/versions", - "response": { - "$ref": "ListConnectorVersionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - } - } - } - } - }, "operations": { "methods": { "cancel": { @@ -961,6 +760,31 @@ }, "providers": { "methods": { + "get": { + "description": "Gets details of a provider.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*` Only global location is supported for Provider resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Provider" + }, + "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}/providers/{providersId}:getIamPolicy", @@ -977,7 +801,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/providers/[^/]+$", "required": true, @@ -992,6 +816,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists Providers in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.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 API, of the form: `projects/*/locations/*` Only global location is supported for Provider resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/providers", + "response": { + "$ref": "ListProvidersResponse" + }, + "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}/providers/{providersId}:setIamPolicy", @@ -1002,7 +862,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/providers/[^/]+$", "required": true, @@ -1030,7 +890,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/providers/[^/]+$", "required": true, @@ -1048,6 +908,170 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "connectors": { + "methods": { + "get": { + "description": "Gets details of a single Connector.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors/{connectorsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*/connectors/*` Only global location is supported for Connector resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+/connectors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Connector" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Connectors in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.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/*` Only global location is supported for Connector resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connectors", + "response": { + "$ref": "ListConnectorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "versions": { + "methods": { + "get": { + "description": "Gets details of a single connector version.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors/{connectorsId}/versions/{versionsId}", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.versions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/*/locations/*/providers/*/connectors/*/versions/*` Only global location is supported for ConnectorVersion resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+/connectors/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Specifies which fields of the ConnectorVersion are returned in the response. Defaults to `CUSTOMER` view.", + "enum": [ + "CONNECTOR_VERSION_VIEW_UNSPECIFIED", + "CONNECTOR_VERSION_VIEW_BASIC", + "CONNECTOR_VERSION_VIEW_FULL" + ], + "enumDescriptions": [ + "CONNECTOR_VERSION_VIEW_UNSPECIFIED.", + "Do not include role grant configs.", + "Include role grant configs." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ConnectorVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Connector Versions in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/providers/{providersId}/connectors/{connectorsId}/versions", + "httpMethod": "GET", + "id": "connectors.projects.locations.providers.connectors.versions.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/*` Only global location is supported for ConnectorVersion resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/providers/[^/]+/connectors/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Specifies which fields of the ConnectorVersion are returned in the response. Defaults to `BASIC` view.", + "enum": [ + "CONNECTOR_VERSION_VIEW_UNSPECIFIED", + "CONNECTOR_VERSION_VIEW_BASIC", + "CONNECTOR_VERSION_VIEW_FULL" + ], + "enumDescriptions": [ + "CONNECTOR_VERSION_VIEW_UNSPECIFIED.", + "Do not include role grant configs.", + "Include role grant configs." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/versions", + "response": { + "$ref": "ListConnectorVersionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } } } } @@ -1055,11 +1079,11 @@ } } }, - "revision": "20220214", + "revision": "20230103", "rootUrl": "https://connectors.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1123,13 +1147,17 @@ "AUTH_TYPE_UNSPECIFIED", "USER_PASSWORD", "OAUTH2_JWT_BEARER", - "OAUTH2_CLIENT_CREDENTIALS" + "OAUTH2_CLIENT_CREDENTIALS", + "SSH_PUBLIC_KEY", + "OAUTH2_AUTH_CODE_FLOW" ], "enumDescriptions": [ "Authentication type not specified.", "Username and Password Authentication.", "JSON Web Token (JWT) Profile for Oauth 2.0 Authorization Grant based authentication", - "Oauth 2.0 Client Credentials Grant Authentication" + "Oauth 2.0 Client Credentials Grant Authentication", + "SSH Public Key Authentication", + "Oauth 2.0 Authorization Code Flow" ], "type": "string" }, @@ -1141,6 +1169,10 @@ "$ref": "Oauth2JwtBearer", "description": "Oauth2JwtBearer." }, + "sshPublicKey": { + "$ref": "SshPublicKey", + "description": "SSH Public Key." + }, "userPassword": { "$ref": "UserPassword", "description": "UserPassword." @@ -1158,13 +1190,17 @@ "AUTH_TYPE_UNSPECIFIED", "USER_PASSWORD", "OAUTH2_JWT_BEARER", - "OAUTH2_CLIENT_CREDENTIALS" + "OAUTH2_CLIENT_CREDENTIALS", + "SSH_PUBLIC_KEY", + "OAUTH2_AUTH_CODE_FLOW" ], "enumDescriptions": [ "Authentication type not specified.", "Username and Password Authentication.", "JSON Web Token (JWT) Profile for Oauth 2.0 Authorization Grant based authentication", - "Oauth 2.0 Client Credentials Grant Authentication" + "Oauth 2.0 Client Credentials Grant Authentication", + "SSH Public Key Authentication", + "Oauth 2.0 Authorization Code Flow" ], "type": "string" }, @@ -1178,6 +1214,32 @@ }, "type": "object" }, + "AuthorizationCodeLink": { + "description": "This configuration captures the details required to render an authorization link for the OAuth Authorization Code Flow.", + "id": "AuthorizationCodeLink", + "properties": { + "clientId": { + "description": "The client ID assigned to the GCP Connectors OAuth app for the connector data source.", + "type": "string" + }, + "enablePkce": { + "description": "Whether to enable PKCE for the auth code flow.", + "type": "boolean" + }, + "scopes": { + "description": "The scopes for which the user will authorize GCP Connectors on the connector data source.", + "items": { + "type": "string" + }, + "type": "array" + }, + "uri": { + "description": "The base URI the user must click to trigger the authorization code login flow.", + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1187,7 +1249,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1238,6 +1300,10 @@ "description": "ConfigVariableTemplate provides metadata about a `ConfigVariable` that is used in a Connection.", "id": "ConfigVariableTemplate", "properties": { + "authorizationCodeLink": { + "$ref": "AuthorizationCodeLink", + "description": "Authorization code link options. To be populated if `ValueType` is `AUTHORIZATION_CODE`" + }, "description": { "description": "Description.", "type": "string" @@ -1246,6 +1312,13 @@ "description": "Display name of the parameter.", "type": "string" }, + "enumOptions": { + "description": "Enum options. To be populated if `ValueType` is `ENUM`", + "items": { + "$ref": "EnumOption" + }, + "type": "array" + }, "key": { "description": "Key of the config variable.", "type": "string" @@ -1258,6 +1331,20 @@ "$ref": "RoleGrant", "description": "Role grant configuration for the config variable." }, + "state": { + "description": "State of the config variable.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DEPRECATED" + ], + "enumDescriptions": [ + "Status is unspecified.", + "Config variable is active", + "Config variable is deprecated." + ], + "type": "string" + }, "validationRegex": { "description": "Regular expression in RE2 syntax used for validating the `value` of a `ConfigVariable`.", "type": "string" @@ -1269,14 +1356,18 @@ "STRING", "INT", "BOOL", - "SECRET" + "SECRET", + "ENUM", + "AUTHORIZATION_CODE" ], "enumDescriptions": [ "Value type is not specified.", "Value type is string.", "Value type is integer.", "Value type is boolean.", - "Value type is secret." + "Value type is secret.", + "Value type is enum.", + "Value type is authorization code." ], "type": "string" } @@ -1299,7 +1390,7 @@ "type": "array" }, "connectorVersion": { - "description": "Required. Connector version on which the connection is created. The format is: projects/*/locations/global/providers/*/connectors/*/versions/*", + "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" }, "createTime": { @@ -1312,12 +1403,11 @@ "description": "Optional. Description of the resource.", "type": "string" }, - "egressBackends": { - "description": "Output only. Outbound domains/hosts needs to be allowlisted.", + "destinationConfigs": { + "description": "Optional. Configuration of the Connector's destination. Only accepted for Connectors that accepts user defined destination(s).", "items": { - "type": "string" + "$ref": "DestinationConfig" }, - "readOnly": true, "type": "array" }, "envoyImageLocation": { @@ -1346,6 +1436,10 @@ "readOnly": true, "type": "string" }, + "nodeConfig": { + "$ref": "NodeConfig", + "description": "Optional. Node configuration for the connection." + }, "serviceAccount": { "description": "Optional. Service account needed for runtime plane to access GCP resources.", "type": "string" @@ -1374,7 +1468,7 @@ "type": "object" }, "ConnectionSchemaMetadata": { - "description": "Metadata of connection schema.", + "description": "ConnectionSchemaMetadata is the singleton resource of each connection. It includes the entity and action names of runtime resources exposed by a connection backend.", "id": "ConnectionSchemaMetadata", "properties": { "actions": { @@ -1392,6 +1486,38 @@ }, "readOnly": true, "type": "array" + }, + "name": { + "description": "Output only. Resource name. Format: projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", + "readOnly": true, + "type": "string" + }, + "refreshTime": { + "description": "Output only. Timestamp when the connection runtime schema refresh was triggered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of runtime schema.", + "enum": [ + "STATE_UNSPECIFIED", + "REFRESHING", + "UPDATED" + ], + "enumDescriptions": [ + "Default state.", + "Schema refresh is in progress.", + "Schema has been updated." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when the connection runtime schema was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1477,19 +1603,21 @@ "LAUNCH_STAGE_UNSPECIFIED", "PREVIEW", "GA", - "DEPRECATED" + "DEPRECATED", + "PRIVATE_PREVIEW" ], "enumDescriptions": [ "LAUNCH_STAGE_UNSPECIFIED.", "PREVIEW.", "GA.", - "DEPRECATED." + "DEPRECATED.", + "PRIVATE_PREVIEW." ], "readOnly": true, "type": "string" }, "name": { - "description": "Output only. Resource name of the Connector. Format: projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}", + "description": "Output only. Resource name of the Connector. Format: projects/{project}/locations/{location}/providers/{provider}/connectors/{connector} Only global location is supported for Connector resource.", "readOnly": true, "type": "string" }, @@ -1557,19 +1685,21 @@ "LAUNCH_STAGE_UNSPECIFIED", "PREVIEW", "GA", - "DEPRECATED" + "DEPRECATED", + "PRIVATE_PREVIEW" ], "enumDescriptions": [ "LAUNCH_STAGE_UNSPECIFIED.", "PREVIEW.", "GA.", - "DEPRECATED." + "DEPRECATED.", + "PRIVATE_PREVIEW." ], "readOnly": true, "type": "string" }, "name": { - "description": "Output only. Resource name of the Version. Format: projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}/versions/{version}", + "description": "Output only. Resource name of the Version. Format: projects/{project}/locations/{location}/providers/{provider}/connectors/{connector}/versions/{version} Only global location is supported for Connector resource.", "readOnly": true, "type": "string" }, @@ -1605,6 +1735,43 @@ }, "type": "object" }, + "Destination": { + "id": "Destination", + "properties": { + "host": { + "description": "For publicly routable host.", + "type": "string" + }, + "port": { + "description": "The port is the target port number that is accepted by the destination.", + "format": "int32", + "type": "integer" + }, + "serviceAttachment": { + "description": "PSC service attachments. Format: projects/*/regions/*/serviceAttachments/*", + "type": "string" + } + }, + "type": "object" + }, + "DestinationConfig": { + "description": "Define the Connectors target endpoint.", + "id": "DestinationConfig", + "properties": { + "destinations": { + "description": "The destinations for the key.", + "items": { + "$ref": "Destination" + }, + "type": "array" + }, + "key": { + "description": "The key is the destination identifier that is supported by the Connector.", + "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", @@ -1621,11 +1788,26 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EnumOption": { + "description": "EnumOption definition", + "id": "EnumOption", + "properties": { + "displayName": { + "description": "Display name of the option.", + "type": "string" + }, + "id": { + "description": "Id of the option.", + "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", @@ -2176,6 +2358,23 @@ }, "type": "object" }, + "NodeConfig": { + "description": "Node configuration for the connection.", + "id": "NodeConfig", + "properties": { + "maxNodeCount": { + "description": "Maximum number of nodes in the runtime nodes.", + "format": "int32", + "type": "integer" + }, + "minNodeCount": { + "description": "Minimum number of nodes in the runtime nodes.", + "format": "int32", + "type": "integer" + } + }, + "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", @@ -2360,19 +2559,21 @@ "LAUNCH_STAGE_UNSPECIFIED", "PREVIEW", "GA", - "DEPRECATED" + "DEPRECATED", + "PRIVATE_PREVIEW" ], "enumDescriptions": [ "LAUNCH_STAGE_UNSPECIFIED.", "PREVIEW.", "GA.", - "DEPRECATED." + "DEPRECATED.", + "PRIVATE_PREVIEW." ], "readOnly": true, "type": "string" }, "name": { - "description": "Output only. Resource name of the Provider. Format: projects/{project}/locations/{location}/providers/{provider}", + "description": "Output only. Resource name of the Provider. Format: projects/{project}/locations/{location}/providers/{provider} Only global location is supported for Provider resource.", "readOnly": true, "type": "string" }, @@ -2390,6 +2591,12 @@ }, "type": "object" }, + "RefreshConnectionSchemaMetadataRequest": { + "description": "Request message for ConnectorsService.RefreshConnectionSchemaMetadata.", + "id": "RefreshConnectionSchemaMetadataRequest", + "properties": {}, + "type": "object" + }, "Resource": { "description": "Resource definition", "id": "Resource", @@ -2623,6 +2830,11 @@ "readOnly": true, "type": "string" }, + "name": { + "description": "Output only. Name of the runtimeConfig resource. Format: projects/{project}/locations/{location}/runtimeConfig", + "readOnly": true, + "type": "string" + }, "runtimeEndpoint": { "description": "Output only. The endpoint of the connectors runtime ingress.", "readOnly": true, @@ -2634,7 +2846,7 @@ "type": "string" }, "serviceDirectory": { - "description": "Output only. The name of the Service Directory service name. Used for Private Harpoon to resolve the ILB address. e.g. \"projects/cloud-connectors-e2e-testing/locations/us-central1/namespaces/istio-system/services/istio-ingressgateway-connectors\"", + "description": "Output only. The name of the Service Directory service name.", "readOnly": true, "type": "string" }, @@ -2701,7 +2913,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2734,6 +2946,29 @@ }, "type": "object" }, + "SshPublicKey": { + "description": "Parameters to support Ssh public key Authentication.", + "id": "SshPublicKey", + "properties": { + "certType": { + "description": "Format of SSH Client cert.", + "type": "string" + }, + "sshClientCert": { + "$ref": "Secret", + "description": "SSH Client Cert. It should contain both public and private key." + }, + "sshClientCertPass": { + "$ref": "Secret", + "description": "Password (passphrase) for ssh client certificate if it has one." + }, + "username": { + "description": "The user account used to authenticate.", + "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", @@ -2785,7 +3020,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json index be48ca3668..ca214da17b 100644 --- a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json +++ b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json @@ -172,6 +172,34 @@ "resources": { "conversations": { "methods": { + "bulkAnalyze": { + "description": "Analyzes multiple conversations in a single request.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:bulkAnalyze", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.conversations.bulkAnalyze", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource to create analyses in.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversations:bulkAnalyze", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "calculateStats": { "description": "Gets conversation statistics.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:calculateStats", @@ -305,6 +333,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "ingest": { + "description": "Imports conversations and processes them according to the user's configuration.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations:ingest", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.conversations.ingest", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource for new conversations.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversations:ingest", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists conversations.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversations", @@ -778,6 +834,31 @@ "resources": { "issues": { "methods": { + "delete": { + "description": "Deletes an issue.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels/{issueModelsId}/issues/{issuesId}", + "httpMethod": "DELETE", + "id": "contactcenterinsights.projects.locations.issueModels.issues.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the issue to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/issueModels/[^/]+/issues/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets an issue.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels/{issueModelsId}/issues/{issuesId}", @@ -1275,7 +1356,7 @@ } } }, - "revision": "20220227", + "revision": "20230115", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { "GoogleCloudContactcenterinsightsV1Analysis": { @@ -1287,6 +1368,10 @@ "description": "Output only. The result of the analysis, which is populated when the analysis finishes.", "readOnly": true }, + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "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", @@ -1385,6 +1470,55 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1AnnotatorSelector": { + "description": "Selector of all available annotators and phrase matchers to run.", + "id": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "properties": { + "issueModels": { + "description": "The issue model to run. If not provided, the most recently deployed topic model will be used. The provided issue model will only be used for inference if the issue model is deployed and if run_issue_model_annotator is set to true. If more than one issue model is provided, only the first provided issue model will be used for inference.", + "items": { + "type": "string" + }, + "type": "array" + }, + "phraseMatchers": { + "description": "The list of phrase matchers to run. If not provided, all active phrase matchers will be used. If inactive phrase matchers are provided, they will not be used. Phrase matchers will be run only if run_phrase_matcher_annotator is set to true. Format: projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}", + "items": { + "type": "string" + }, + "type": "array" + }, + "runEntityAnnotator": { + "description": "Whether to run the entity annotator.", + "type": "boolean" + }, + "runIntentAnnotator": { + "description": "Whether to run the intent annotator.", + "type": "boolean" + }, + "runInterruptionAnnotator": { + "description": "Whether to run the interruption annotator.", + "type": "boolean" + }, + "runIssueModelAnnotator": { + "description": "Whether to run the issue model annotator. A model should have already been deployed for this to take effect.", + "type": "boolean" + }, + "runPhraseMatcherAnnotator": { + "description": "Whether to run the active phrase matcher annotator(s).", + "type": "boolean" + }, + "runSentimentAnnotator": { + "description": "Whether to run the sentiment annotator.", + "type": "boolean" + }, + "runSilenceAnnotator": { + "description": "Whether to run the silence annotator.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1AnswerFeedback": { "description": "The feedback that the customer has about a certain answer in the conversation.", "id": "GoogleCloudContactcenterinsightsV1AnswerFeedback", @@ -1433,7 +1567,7 @@ "type": "object" }, "queryRecord": { - "description": "Name of the query record. Format: projects/{project}/locations/{location}/queryRecords/{query_record}", + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", "type": "string" }, "source": { @@ -1451,6 +1585,83 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsMetadata": { + "description": "The metadata for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsMetadata", + "properties": { + "completedAnalysesCount": { + "description": "The number of requested analyses that have completed successfully so far.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "failedAnalysesCount": { + "description": "The number of requested analyses that have failed so far.", + "format": "int32", + "type": "integer" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest", + "description": "The original request for bulk analyze." + }, + "totalRequestedAnalysesCount": { + "description": "Total number of analyses requested. Computed by the number of conversations returned by `filter` multiplied by `analysis_percentage` in the request.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest": { + "description": "The request to analyze conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest", + "properties": { + "analysisPercentage": { + "description": "Required. Percentage of selected conversation to analyze, between [0, 100].", + "format": "float", + "type": "number" + }, + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "description": "To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run." + }, + "filter": { + "description": "Required. Filter used to select the subset of conversations to analyze.", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource to create analyses in.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsResponse": { + "description": "The response for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsResponse", + "properties": { + "failedAnalysisCount": { + "description": "Count of failed analyses.", + "format": "int32", + "type": "integer" + }, + "successfulAnalysisCount": { + "description": "Count of successful analyses.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse": { "description": "Response of querying an issue model's statistics.", "id": "GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse", @@ -1588,6 +1799,10 @@ "$ref": "GoogleCloudContactcenterinsightsV1InterruptionData", "description": "Data specifying an interruption." }, + "issueMatchData": { + "$ref": "GoogleCloudContactcenterinsightsV1IssueMatchData", + "description": "Data specifying an issue match." + }, "phraseMatchData": { "$ref": "GoogleCloudContactcenterinsightsV1PhraseMatchData", "description": "Data specifying a phrase match." @@ -1913,6 +2128,11 @@ "description": "Metadata for a create analysis operation.", "id": "GoogleCloudContactcenterinsightsV1CreateAnalysisOperationMetadata", "properties": { + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "description": "Output only. The annotator selector used for the analysis (if any).", + "readOnly": true + }, "conversation": { "description": "Output only. The Conversation that this Analysis Operation belongs to.", "readOnly": true, @@ -2302,7 +2522,7 @@ "type": "object" }, "queryRecord": { - "description": "Name of the query record. Format: projects/{project}/locations/{location}/queryRecords/{query_record}.", + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", "type": "string" }, "question": { @@ -2337,6 +2557,110 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1IngestConversationsMetadata": { + "description": "The metadata for an IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsMetadata", + "properties": { + "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" + }, + "partialErrors": { + "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "readOnly": true, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequest", + "description": "Output only. The original request for ingest.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1IngestConversationsRequest": { + "description": "The request to ingest conversations.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequest", + "properties": { + "conversationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig", + "description": "Configuration that applies to all conversations." + }, + "gcsSource": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource", + "description": "A cloud storage bucket source." + }, + "parent": { + "description": "Required. The parent resource for new conversations.", + "type": "string" + }, + "transcriptObjectConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig", + "description": "Configuration for when `source` contains conversation transcripts." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig": { + "description": "Configuration that applies to all conversations.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig", + "properties": { + "agentId": { + "description": "An opaque, user-specified string representing the human agent who handled the conversations.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource": { + "description": "Configuration for Cloud Storage bucket sources.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource", + "properties": { + "bucketUri": { + "description": "Required. The Cloud Storage bucket containing source objects.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig": { + "description": "Configuration for processing transcript objects.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig", + "properties": { + "medium": { + "description": "Required. The medium transcript objects represent.", + "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" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1IngestConversationsResponse": { + "description": "The response to an IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1IngestConversationsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1Intent": { "description": "The data for an intent. Represents a detected intent in the conversation, for example MAKES_PROMISE.", "id": "GoogleCloudContactcenterinsightsV1Intent", @@ -2387,6 +2711,14 @@ "description": "Immutable. The resource name of the issue. Format: projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}", "type": "string" }, + "sampleUtterances": { + "description": "Output only. Resource names of the sample representative utterances that match to this issue.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "updateTime": { "description": "Output only. The most recent time that this issue was updated.", "format": "google-datetime", @@ -2416,6 +2748,17 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1IssueMatchData": { + "description": "The data for an issue match annotation.", + "id": "GoogleCloudContactcenterinsightsV1IssueMatchData", + "properties": { + "issueAssignment": { + "$ref": "GoogleCloudContactcenterinsightsV1IssueAssignment", + "description": "Information about the issue's assignment." + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1IssueModel": { "description": "The issue model resource.", "id": "GoogleCloudContactcenterinsightsV1IssueModel", @@ -2434,6 +2777,12 @@ "$ref": "GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig", "description": "Configs for the input data that used to create the issue model." }, + "issueCount": { + "description": "Output only. Number of issues in this issue model.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "name": { "description": "Immutable. The resource name of the issue model. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", "type": "string" @@ -2936,6 +3285,10 @@ "description": "Default configuration when creating Analyses in Insights.", "id": "GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig", "properties": { + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelector", + "description": "To select the annotators to run and the phrase matchers to use (if any). If not specified, all annotators will be run." + }, "runtimeIntegrationAnalysisPercentage": { "description": "Percentage of conversations created using Dialogflow runtime integration to analyze automatically, between [0, 100].", "format": "double", @@ -2967,7 +3320,7 @@ "type": "object" }, "queryRecord": { - "description": "Name of the query record. Format: projects/{project}/locations/{location}/queryRecords/{query_record}", + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", "type": "string" }, "suggestion": { @@ -2994,7 +3347,7 @@ "type": "object" }, "queryRecord": { - "description": "Name of the query record. Format: projects/{project}/locations/{location}/queryRecords/{query_record}", + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", "type": "string" }, "reply": { @@ -3069,16 +3422,147 @@ "type": "string" }, "value": { - "description": "String with specific view properties.", + "description": "String with specific view properties, must be non-empty.", "type": "string" } }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector": { + "description": "Selector of all available annotators and phrase matchers to run.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector", + "properties": { + "issueModels": { + "description": "The issue model to run. If not provided, the most recently deployed topic model will be used. The provided issue model will only be used for inference if the issue model is deployed and if run_issue_model_annotator is set to true. If more than one issue model is provided, only the first provided issue model will be used for inference.", + "items": { + "type": "string" + }, + "type": "array" + }, + "phraseMatchers": { + "description": "The list of phrase matchers to run. If not provided, all active phrase matchers will be used. If inactive phrase matchers are provided, they will not be used. Phrase matchers will be run only if run_phrase_matcher_annotator is set to true. Format: projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}", + "items": { + "type": "string" + }, + "type": "array" + }, + "runEntityAnnotator": { + "description": "Whether to run the entity annotator.", + "type": "boolean" + }, + "runIntentAnnotator": { + "description": "Whether to run the intent annotator.", + "type": "boolean" + }, + "runInterruptionAnnotator": { + "description": "Whether to run the interruption annotator.", + "type": "boolean" + }, + "runIssueModelAnnotator": { + "description": "Whether to run the issue model annotator. A model should have already been deployed for this to take effect.", + "type": "boolean" + }, + "runPhraseMatcherAnnotator": { + "description": "Whether to run the active phrase matcher annotator(s).", + "type": "boolean" + }, + "runSentimentAnnotator": { + "description": "Whether to run the sentiment annotator.", + "type": "boolean" + }, + "runSilenceAnnotator": { + "description": "Whether to run the silence annotator.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsMetadata": { + "description": "The metadata for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsMetadata", + "properties": { + "completedAnalysesCount": { + "description": "The number of requested analyses that have completed successfully so far.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "failedAnalysesCount": { + "description": "The number of requested analyses that have failed so far.", + "format": "int32", + "type": "integer" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest", + "description": "The original request for bulk analyze." + }, + "totalRequestedAnalysesCount": { + "description": "Total number of analyses requested. Computed by the number of conversations returned by `filter` multiplied by `analysis_percentage` in the request.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest": { + "description": "The request to analyze conversations in bulk.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsRequest", + "properties": { + "analysisPercentage": { + "description": "Required. Percentage of selected conversation to analyze, between [0, 100].", + "format": "float", + "type": "number" + }, + "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." + }, + "filter": { + "description": "Required. Filter used to select the subset of conversations to analyze.", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource to create analyses in.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsResponse": { + "description": "The response for a bulk analyze conversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1BulkAnalyzeConversationsResponse", + "properties": { + "failedAnalysisCount": { + "description": "Count of failed analyses.", + "format": "int32", + "type": "integer" + }, + "successfulAnalysisCount": { + "description": "Count of successful analyses.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1CreateAnalysisOperationMetadata": { "description": "Metadata for a create analysis operation.", "id": "GoogleCloudContactcenterinsightsV1alpha1CreateAnalysisOperationMetadata", "properties": { + "annotatorSelector": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector", + "description": "Output only. The annotator selector used for the analysis (if any).", + "readOnly": true + }, "conversation": { "description": "Output only. The Conversation that this Analysis Operation belongs to.", "readOnly": true, @@ -3303,6 +3787,110 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadata": { + "description": "The metadata for an IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadata", + "properties": { + "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" + }, + "partialErrors": { + "description": "Output only. Partial errors during ingest operation that might cause the operation output to be incomplete.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "readOnly": true, + "type": "array" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest", + "description": "Output only. The original request for ingest.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest": { + "description": "The request to ingest conversations.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequest", + "properties": { + "conversationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig", + "description": "Configuration that applies to all conversations." + }, + "gcsSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource", + "description": "A cloud storage bucket source." + }, + "parent": { + "description": "Required. The parent resource for new conversations.", + "type": "string" + }, + "transcriptObjectConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig", + "description": "Configuration for when `source` contains conversation transcripts." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig": { + "description": "Configuration that applies to all conversations.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig", + "properties": { + "agentId": { + "description": "An opaque, user-specified string representing the human agent who handled the conversations.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource": { + "description": "Configuration for Cloud Storage bucket sources.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestGcsSource", + "properties": { + "bucketUri": { + "description": "Required. The Cloud Storage bucket containing source objects.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig": { + "description": "Configuration for processing transcript objects.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestTranscriptObjectConfig", + "properties": { + "medium": { + "description": "Required. The medium transcript objects represent.", + "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" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsResponse": { + "description": "The response to an IngestConversations operation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1IssueModel": { "description": "The issue model resource.", "id": "GoogleCloudContactcenterinsightsV1alpha1IssueModel", @@ -3321,6 +3909,12 @@ "$ref": "GoogleCloudContactcenterinsightsV1alpha1IssueModelInputDataConfig", "description": "Configs for the input data that used to create the issue model." }, + "issueCount": { + "description": "Output only. Number of issues in this issue model.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "name": { "description": "Immutable. The resource name of the issue model. Format: projects/{project}/locations/{location}/issueModels/{issue_model}", "type": "string" @@ -3529,7 +4123,7 @@ "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/container/v1/container-api.json b/etc/api/container/v1/container-api.json index 684d9997f9..de9aa8fb3c 100644 --- a/etc/api/container/v1/container-api.json +++ b/etc/api/container/v1/container-api.json @@ -175,7 +175,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -275,7 +275,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -315,7 +315,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -372,7 +372,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -730,6 +730,34 @@ "resources": { "nodePools": { "methods": { + "completeUpgrade": { + "description": "CompleteNodePoolUpgrade will signal an on-going node pool upgrade to complete.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:completeUpgrade", + "httpMethod": "POST", + "id": "container.projects.locations.clusters.nodePools.completeUpgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster, node pool id) of the node pool to complete upgrade. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:completeUpgrade", + "request": { + "$ref": "CompleteNodePoolUpgradeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a node pool for a cluster.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", @@ -785,7 +813,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, @@ -830,7 +858,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, @@ -870,7 +898,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -1110,7 +1138,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -1145,7 +1173,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -1185,7 +1213,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1227,7 +1255,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1268,7 +1296,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1302,7 +1330,7 @@ ], "parameters": { "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -1348,7 +1376,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1391,7 +1419,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1429,7 +1457,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1468,7 +1496,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -1506,7 +1534,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1547,7 +1575,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1588,7 +1616,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1629,7 +1657,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1670,7 +1698,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1711,7 +1739,7 @@ "type": "string" }, "projectId": { - "description": "Required. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840).", + "description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", "location": "path", "required": true, "type": "string" @@ -1752,7 +1780,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1793,7 +1821,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1834,7 +1862,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1875,7 +1903,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1927,7 +1955,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1968,7 +1996,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2021,7 +2049,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2071,7 +2099,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2114,7 +2142,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2159,7 +2187,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2207,7 +2235,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2255,7 +2283,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2303,7 +2331,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2350,7 +2378,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2396,7 +2424,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2432,7 +2460,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2459,7 +2487,7 @@ } } }, - "revision": "20220215", + "revision": "20230104", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2478,6 +2506,10 @@ "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" + }, + "gpuSharingConfig": { + "$ref": "GPUSharingConfig", + "description": "The configuration for GPU sharing options." } }, "type": "object" @@ -2506,6 +2538,10 @@ "$ref": "GcpFilestoreCsiDriverConfig", "description": "Configuration for the GCP Filestore CSI driver." }, + "gkeBackupAgentConfig": { + "$ref": "GkeBackupAgentConfig", + "description": "Configuration for the Backup for GKE agent addon." + }, "horizontalPodAutoscaling": { "$ref": "HorizontalPodAutoscaling", "description": "Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods." @@ -2604,7 +2640,7 @@ "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 cloud.google.com/requested-min-cpu-platform label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", + "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.", "type": "string" }, "oauthScopes": { @@ -2645,8 +2681,91 @@ "id": "BinaryAuthorization", "properties": { "enabled": { - "description": "Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Binary Authorization.", + "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" + }, + "evaluationMode": { + "description": "Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.", + "enum": [ + "EVALUATION_MODE_UNSPECIFIED", + "DISABLED", + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "BlueGreenInfo": { + "description": "Information relevant to blue-green upgrade.", + "id": "BlueGreenInfo", + "properties": { + "blueInstanceGroupUrls": { + "description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "bluePoolDeletionStartTime": { + "description": "Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", + "type": "string" + }, + "greenInstanceGroupUrls": { + "description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "greenPoolVersion": { + "description": "Version of green pool.", + "type": "string" + }, + "phase": { + "description": "Current blue-green upgrade phase.", + "enum": [ + "PHASE_UNSPECIFIED", + "UPDATE_STARTED", + "CREATING_GREEN_POOL", + "CORDONING_BLUE_POOL", + "DRAINING_BLUE_POOL", + "NODE_POOL_SOAKING", + "DELETING_BLUE_POOL", + "ROLLBACK_STARTED" + ], + "enumDescriptions": [ + "Unspecified phase.", + "blue-green upgrade has been initiated.", + "Start creating green pool nodes.", + "Start cordoning blue pool nodes.", + "Start draining blue pool nodes.", + "Start soaking time after draining entire blue pool.", + "Start deleting blue nodes.", + "Rollback has been initiated." + ], + "type": "string" + } + }, + "type": "object" + }, + "BlueGreenSettings": { + "description": "Settings for blue-green upgrade.", + "id": "BlueGreenSettings", + "properties": { + "nodePoolSoakDuration": { + "description": "Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.", + "format": "google-duration", + "type": "string" + }, + "standardRolloutPolicy": { + "$ref": "StandardRolloutPolicy", + "description": "Standard policy for the blue-green upgrade." } }, "type": "object" @@ -2664,7 +2783,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -2764,6 +2883,10 @@ "$ref": "ConfidentialNodes", "description": "Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled." }, + "costManagementConfig": { + "$ref": "CostManagementConfig", + "description": "Configuration for the fine-grained cost management feature." + }, "createTime": { "description": "[Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" @@ -2805,6 +2928,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" }, + "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" + }, "expireTime": { "description": "[Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" @@ -3076,6 +3203,10 @@ "$ref": "ClusterAutoscaling", "description": "Cluster-level autoscaling configuration." }, + "desiredCostManagementConfig": { + "$ref": "CostManagementConfig", + "description": "The desired configuration for the fine-grained cost management feature." + }, "desiredDatabaseEncryption": { "$ref": "DatabaseEncryption", "description": "Configuration of etcd encryption." @@ -3102,6 +3233,14 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnablePrivateEndpoint": { + "description": "Enable/Disable private endpoint for the cluster's master.", + "type": "boolean" + }, + "desiredGatewayApiConfig": { + "$ref": "GatewayAPIConfig", + "description": "The desired config of Gateway API on this cluster." + }, "desiredGcfsConfig": { "$ref": "GcfsConfig", "description": "The desired GCFS config for the cluster" @@ -3169,6 +3308,10 @@ "description": "The node pool to be upgraded. This field is mandatory if \"desired_node_version\", \"desired_image_family\" or \"desired_node_pool_autoscaling\" is specified and there is more than one node pool on the cluster.", "type": "string" }, + "desiredNodePoolLoggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "The desired node pool logging configuration defaults for the cluster." + }, "desiredNodeVersion": { "description": "The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the Kubernetes master version", "type": "string" @@ -3213,6 +3356,20 @@ "$ref": "ShieldedNodes", "description": "Configuration for Shielded Nodes." }, + "desiredStackType": { + "description": "The desired stack type of the cluster. If a stack type is provided and does not match the current stack type of the cluster, update will attempt to change the stack type to the new type.", + "enum": [ + "STACK_TYPE_UNSPECIFIED", + "IPV4", + "IPV4_IPV6" + ], + "enumDescriptions": [ + "Default value, will be defaulted as IPV4 only", + "Cluster is IPV4 only", + "Cluster can use both IPv4 and IPv6" + ], + "type": "string" + }, "desiredVerticalPodAutoscaling": { "$ref": "VerticalPodAutoscaling", "description": "Cluster-level Vertical Pod Autoscaling configuration." @@ -3220,6 +3377,10 @@ "desiredWorkloadIdentityConfig": { "$ref": "WorkloadIdentityConfig", "description": "Configuration for Workload Identity." + }, + "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" } }, "type": "object" @@ -3237,7 +3398,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": { @@ -3247,6 +3408,12 @@ }, "type": "object" }, + "CompleteNodePoolUpgradeRequest": { + "description": "CompleteNodePoolUpgradeRequest sets the name of target node pool to complete upgrade.", + "id": "CompleteNodePoolUpgradeRequest", + "properties": {}, + "type": "object" + }, "ConfidentialNodes": { "description": "ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs.", "id": "ConfidentialNodes", @@ -3280,6 +3447,17 @@ }, "type": "object" }, + "CostManagementConfig": { + "description": "Configuration for fine-grained cost management feature.", + "id": "CostManagementConfig", + "properties": { + "enabled": { + "description": "Whether the feature is enabled or not.", + "type": "boolean" + } + }, + "type": "object" + }, "CreateClusterRequest": { "description": "CreateClusterRequest creates a cluster.", "id": "CreateClusterRequest", @@ -3293,7 +3471,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": { @@ -3320,7 +3498,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": { @@ -3356,10 +3534,12 @@ "description": "cluster_dns_scope indicates the scope of access to cluster DNS records.", "enum": [ "DNS_SCOPE_UNSPECIFIED", + "CLUSTER_SCOPE", "VPC_SCOPE" ], "enumDescriptions": [ "Default value, will be inferred as cluster scope.", + "DNS records are accessible from within the cluster.", "DNS records are accessible from within the VPC." ], "type": "string" @@ -3430,11 +3610,34 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EphemeralStorageLocalSsdConfig": { + "description": "EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSD.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "FastSocket": { + "description": "Configuration of Fast Socket feature.", + "id": "FastSocket", + "properties": { + "enabled": { + "description": "Whether Fast Socket features are enabled in the node pool.", + "type": "boolean" + } + }, + "type": "object" + }, "Filter": { "description": "Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent", "id": "Filter", @@ -3461,6 +3664,53 @@ }, "type": "object" }, + "GPUSharingConfig": { + "description": "GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators.", + "id": "GPUSharingConfig", + "properties": { + "gpuSharingStrategy": { + "description": "The type of GPU sharing strategy to enable on the GPU node.", + "enum": [ + "GPU_SHARING_STRATEGY_UNSPECIFIED", + "TIME_SHARING" + ], + "enumDescriptions": [ + "Default value.", + "GPUs are time-shared between containers." + ], + "type": "string" + }, + "maxSharedClientsPerGpu": { + "description": "The max number of containers that can share a physical GPU.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GatewayAPIConfig": { + "description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster.", + "id": "GatewayAPIConfig", + "properties": { + "channel": { + "description": "The Gateway API release channel to use for Gateway API.", + "enum": [ + "CHANNEL_UNSPECIFIED", + "CHANNEL_DISABLED", + "CHANNEL_EXPERIMENTAL", + "CHANNEL_STANDARD" + ], + "enumDescriptions": [ + "Default value.", + "Gateway API support is disabled", + "Gateway API support is enabled, experimental CRDs are installed", + "Gateway API support is enabled, standard CRDs are installed" + ], + "type": "string" + } + }, + "type": "object" + }, "GcePersistentDiskCsiDriverConfig": { "description": "Configuration for the Compute Engine PD CSI driver.", "id": "GcePersistentDiskCsiDriverConfig", @@ -3566,6 +3816,17 @@ }, "type": "object" }, + "GkeBackupAgentConfig": { + "description": "Configuration for the Backup for GKE Agent.", + "id": "GkeBackupAgentConfig", + "properties": { + "enabled": { + "description": "Whether the Backup for GKE agent is enabled for this cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "HorizontalPodAutoscaling": { "description": "Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.", "id": "HorizontalPodAutoscaling", @@ -3639,6 +3900,20 @@ "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" }, + "ipv6AccessType": { + "description": "The ipv6 access type (internal or external) when create_subnetwork is true", + "enum": [ + "IPV6_ACCESS_TYPE_UNSPECIFIED", + "INTERNAL", + "EXTERNAL" + ], + "enumDescriptions": [ + "Default value, will be defaulted as type external.", + "Access type internal (all v6 addresses are internal IPs)", + "Access type external (all v6 addresses are external IPs)" + ], + "type": "string" + }, "nodeIpv4Cidr": { "description": "This field is deprecated, use node_ipv4_cidr_block.", "type": "string" @@ -3659,6 +3934,20 @@ "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" }, + "stackType": { + "description": "The IP stack type of the cluster", + "enum": [ + "STACK_TYPE_UNSPECIFIED", + "IPV4", + "IPV4_IPV6" + ], + "enumDescriptions": [ + "Default value, will be defaulted as IPV4 only", + "Cluster is IPV4 only", + "Cluster can use both IPv4 and IPv6" + ], + "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" @@ -3769,11 +4058,25 @@ "description": "Parameters that can be configured on Linux nodes.", "id": "LinuxNodeConfig", "properties": { + "cgroupMode": { + "description": "cgroup_mode specifies the cgroup mode to be used on the node.", + "enum": [ + "CGROUP_MODE_UNSPECIFIED", + "CGROUP_MODE_V1", + "CGROUP_MODE_V2" + ], + "enumDescriptions": [ + "CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.", + "CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.", + "CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image." + ], + "type": "string" + }, "sysctls": { "additionalProperties": { "type": "string" }, - "description": "The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse", + "description": "The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse", "type": "object" } }, @@ -3853,6 +4156,18 @@ }, "type": "object" }, + "LocalNvmeSsdBlockConfig": { + "description": "LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSD.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "LoggingComponentConfig": { "description": "LoggingComponentConfig is cluster logging component configuration.", "id": "LoggingComponentConfig", @@ -3863,12 +4178,18 @@ "enum": [ "COMPONENT_UNSPECIFIED", "SYSTEM_COMPONENTS", - "WORKLOADS" + "WORKLOADS", + "APISERVER", + "SCHEDULER", + "CONTROLLER_MANAGER" ], "enumDescriptions": [ "Default value. This shouldn't be used.", "system components", - "workloads" + "workloads", + "kube-apiserver", + "kube-scheduler", + "kube-controller-manager" ], "type": "string" }, @@ -3888,6 +4209,27 @@ }, "type": "object" }, + "LoggingVariantConfig": { + "description": "LoggingVariantConfig specifies the behaviour of the logging component.", + "id": "LoggingVariantConfig", + "properties": { + "variant": { + "description": "Logging variant deployed on nodes.", + "enum": [ + "VARIANT_UNSPECIFIED", + "DEFAULT", + "MAX_THROUGHPUT" + ], + "enumDescriptions": [ + "Default value. This shouldn't be used.", + "default logging variant.", + "maximum logging throughput variant." + ], + "type": "string" + } + }, + "type": "object" + }, "MaintenanceExclusionOptions": { "description": "Represents the Maintenance exclusion option.", "id": "MaintenanceExclusionOptions", @@ -3946,6 +4288,17 @@ }, "type": "object" }, + "ManagedPrometheusConfig": { + "description": "ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus.", + "id": "ManagedPrometheusConfig", + "properties": { + "enabled": { + "description": "Enable Managed Collection.", + "type": "boolean" + } + }, + "type": "object" + }, "MasterAuth": { "description": "The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates.", "id": "MasterAuth", @@ -3991,6 +4344,10 @@ "enabled": { "description": "Whether or not master authorized networks is enabled.", "type": "boolean" + }, + "gcpPublicCidrsAccessEnabled": { + "description": "Whether master is accessbile via Google Compute Engine Public IP addresses.", + "type": "boolean" } }, "type": "object" @@ -4052,11 +4409,17 @@ "items": { "enum": [ "COMPONENT_UNSPECIFIED", - "SYSTEM_COMPONENTS" + "SYSTEM_COMPONENTS", + "APISERVER", + "SCHEDULER", + "CONTROLLER_MANAGER" ], "enumDescriptions": [ "Default value. This shouldn't be used.", - "system components" + "system components", + "kube-apiserver", + "kube-scheduler", + "kube-controller-manager" ], "type": "string" }, @@ -4072,6 +4435,10 @@ "componentConfig": { "$ref": "MonitoringComponentConfig", "description": "Monitoring components configuration" + }, + "managedPrometheusConfig": { + "$ref": "ManagedPrometheusConfig", + "description": "Enable Google Cloud Managed Service for Prometheus in the cluster." } }, "type": "object" @@ -4110,6 +4477,10 @@ "description": "Whether L4ILB Subsetting is enabled for this cluster.", "type": "boolean" }, + "gatewayApiConfig": { + "$ref": "GatewayAPIConfig", + "description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster." + }, "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" @@ -4141,6 +4512,25 @@ }, "type": "object" }, + "NetworkPerformanceConfig": { + "description": "Configuration of all network bandwidth tiers", + "id": "NetworkPerformanceConfig", + "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" + }, "NetworkPolicy": { "description": "Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/", "id": "NetworkPolicy", @@ -4190,7 +4580,7 @@ "type": "object" }, "NodeConfig": { - "description": "Parameters that describe the nodes in a cluster.", + "description": "Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead.", "id": "NodeConfig", "properties": { "accelerators": { @@ -4208,6 +4598,10 @@ "description": " The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption", "type": "string" }, + "confidentialNodes": { + "$ref": "ConfidentialNodes", + "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." + }, "diskSizeGb": { "description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", "format": "int32", @@ -4217,6 +4611,14 @@ "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" }, + "ephemeralStorageLocalSsdConfig": { + "$ref": "EphemeralStorageLocalSsdConfig", + "description": "Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk." + }, + "fastSocket": { + "$ref": "FastSocket", + "description": "Enable or disable NCCL fast socket for the node pool." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "Google Container File System (image streaming) configs." @@ -4244,11 +4646,19 @@ "$ref": "LinuxNodeConfig", "description": "Parameters that can be configured on Linux nodes." }, + "localNvmeSsdBlockConfig": { + "$ref": "LocalNvmeSsdBlockConfig", + "description": "Parameters for using raw-block Local NVMe SSDs." + }, "localSsdCount": { "description": "The number of local 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.", "format": "int32", "type": "integer" }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration." + }, "machineType": { "description": "The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.", "type": "string" @@ -4283,6 +4693,13 @@ "$ref": "ReservationAffinity", "description": "The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool." }, + "resourceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources.", + "type": "object" + }, "sandboxConfig": { "$ref": "SandboxConfig", "description": "Sandbox configuration for this node." @@ -4313,6 +4730,10 @@ }, "type": "array" }, + "windowsNodeConfig": { + "$ref": "WindowsNodeConfig", + "description": "Parameters that can be configured on Windows nodes." + }, "workloadMetadataConfig": { "$ref": "WorkloadMetadataConfig", "description": "The workload metadata configuration for this node." @@ -4326,7 +4747,11 @@ "properties": { "gcfsConfig": { "$ref": "GcfsConfig", - "description": "GCFS (Google Container File System, a.k.a Riptide) options." + "description": "GCFS (Google Container File System, also known as Riptide) options." + }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration for node pools." } }, "type": "object" @@ -4346,6 +4771,25 @@ "cpuManagerPolicy": { "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" + }, + "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", + "type": "string" + } + }, + "type": "object" + }, + "NodeLabels": { + "description": "Collection of node-level [Kubernetes labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).", + "id": "NodeLabels", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of node label keys and node label values.", + "type": "object" } }, "type": "object" @@ -4377,6 +4821,14 @@ "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" }, + "enablePrivateNodes": { + "description": "Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from cluster.privateClusterConfig.enablePrivateNodes", + "type": "boolean" + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig", + "description": "Network bandwidth tier configuration." + }, "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" @@ -4407,13 +4859,17 @@ "$ref": "NodeConfig", "description": "The node configuration of the pool." }, + "etag": { + "description": "This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, "initialNodeCount": { "description": "The initial node count for the pool. 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.", "format": "int32", "type": "integer" }, "instanceGroupUrls": { - "description": "[Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool.", + "description": "[Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.", "items": { "type": "string" }, @@ -4442,6 +4898,10 @@ "$ref": "NodeNetworkConfig", "description": "Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults." }, + "placementPolicy": { + "$ref": "PlacementPolicy", + "description": "Specifies the node placement policy." + }, "podIpv4CidrSize": { "description": "[Output only] The pod CIDR block size per node in this node pool.", "format": "int32", @@ -4477,6 +4937,11 @@ "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.", "type": "string" }, + "updateInfo": { + "$ref": "UpdateInfo", + "description": "Output only. [Output only] Update info contains relevant information during a node pool update.", + "readOnly": true + }, "upgradeSettings": { "$ref": "UpgradeSettings", "description": "Upgrade settings control disruption and speed of the upgrade." @@ -4511,6 +4976,20 @@ "description": "Is autoscaling enabled for this node pool.", "type": "boolean" }, + "locationPolicy": { + "description": "Location policy used when scaling up a nodepool.", + "enum": [ + "LOCATION_POLICY_UNSPECIFIED", + "BALANCED", + "ANY" + ], + "enumDescriptions": [ + "Not set.", + "BALANCED is a best effort policy that aims to balance the sizes of different zones.", + "ANY policy picks zones that have the highest capacity available." + ], + "type": "string" + }, "maxNodeCount": { "description": "Maximum number of nodes for one location in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.", "format": "int32", @@ -4520,6 +4999,16 @@ "description": "Minimum number of nodes for one location in the NodePool. Must be >= 1 and <= max_node_count.", "format": "int32", "type": "integer" + }, + "totalMaxNodeCount": { + "description": "Maximum number of nodes in the node pool. Must be greater than total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", + "format": "int32", + "type": "integer" + }, + "totalMinNodeCount": { + "description": "Minimum number of nodes in the node pool. Must be greater than 1 less than total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -4535,6 +5024,17 @@ }, "type": "object" }, + "NodePoolLoggingConfig": { + "description": "NodePoolLoggingConfig specifies logging configuration for nodepools.", + "id": "NodePoolLoggingConfig", + "properties": { + "variantConfig": { + "$ref": "LoggingVariantConfig", + "description": "Logging variant configuration." + } + }, + "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.", "id": "NodeTaint", @@ -4566,6 +5066,20 @@ }, "type": "object" }, + "NodeTaints": { + "description": "Collection of Kubernetes [node taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration).", + "id": "NodeTaints", + "properties": { + "taints": { + "description": "List of node taints.", + "items": { + "$ref": "NodeTaint" + }, + "type": "array" + } + }, + "type": "object" + }, "NotificationConfig": { "description": "NotificationConfig is the configuration of notifications.", "id": "NotificationConfig", @@ -4747,6 +5261,25 @@ }, "type": "object" }, + "PlacementPolicy": { + "description": "PlacementPolicy defines the placement policy used by the node pool.", + "id": "PlacementPolicy", + "properties": { + "type": { + "description": "The type of placement.", + "enum": [ + "TYPE_UNSPECIFIED", + "COMPACT" + ], + "enumDescriptions": [ + "TYPE_UNSPECIFIED specifies no requirements on nodes placement.", + "COMPACT specifies node placement in the same availability domain to ensure low communication latency." + ], + "type": "string" + } + }, + "type": "object" + }, "PrivateClusterConfig": { "description": "Configuration options for private clusters.", "id": "PrivateClusterConfig", @@ -4775,6 +5308,10 @@ "description": "Output only. The internal IP address of this cluster's master endpoint.", "type": "string" }, + "privateEndpointSubnetwork": { + "description": "Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format.", + "type": "string" + }, "publicEndpoint": { "description": "Output only. The external IP address of this cluster's master endpoint.", "type": "string" @@ -4905,7 +5442,7 @@ "type": "string" }, "key": { - "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify \"googleapis.com/reservation-name\" as the key and specify the name of your reservation as its value.", + "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify \"compute.googleapis.com/reservation-name\" as the key and specify the name of your reservation as its value.", "type": "string" }, "values": { @@ -4918,6 +5455,20 @@ }, "type": "object" }, + "ResourceLabels": { + "description": "Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels).", + "id": "ResourceLabels", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of node label keys and node label values.", + "type": "object" + } + }, + "type": "object" + }, "ResourceLimit": { "description": "Contains information about amount of some resource in the cluster. For memory, value should be in GB.", "id": "ResourceLimit", @@ -4975,9 +5526,13 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, + "respectPdb": { + "description": "Option for rollback to ignore the PodDisruptionBudget. Default value is false.", + "type": "boolean" + }, "zone": { "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" @@ -5131,7 +5686,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5158,7 +5713,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, "resourceLabels": { @@ -5192,7 +5747,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5222,7 +5777,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5249,7 +5804,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5276,7 +5831,7 @@ "type": "string" }, "projectId": { - "description": "Required. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840).", + "description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", "type": "string" }, "zone": { @@ -5315,7 +5870,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, "update": { @@ -5346,7 +5901,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5373,7 +5928,7 @@ "description": "Required. Configuration options for the NetworkPolicy feature." }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": { @@ -5404,7 +5959,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5435,7 +5990,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5467,7 +6022,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5503,6 +6058,28 @@ }, "type": "object" }, + "StandardRolloutPolicy": { + "description": "Standard rollout policy is the default policy for blue-green.", + "id": "StandardRolloutPolicy", + "properties": { + "batchNodeCount": { + "description": "Number of blue nodes to drain in a batch.", + "format": "int32", + "type": "integer" + }, + "batchPercentage": { + "description": "Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].", + "format": "float", + "type": "number" + }, + "batchSoakDuration": { + "description": "Soak time after each batch gets drained. Default to zero.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "StartIPRotationRequest": { "description": "StartIPRotationRequest creates a new IP for the cluster and then performs a node upgrade on each node pool to point to the new IP.", "id": "StartIPRotationRequest", @@ -5516,7 +6093,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, "rotateCredentials": { @@ -5583,7 +6160,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -5666,7 +6243,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, "update": { @@ -5680,6 +6257,17 @@ }, "type": "object" }, + "UpdateInfo": { + "description": "UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade.", + "id": "UpdateInfo", + "properties": { + "blueGreenInfo": { + "$ref": "BlueGreenInfo", + "description": "Information of a blue-green upgrade." + } + }, + "type": "object" + }, "UpdateMasterRequest": { "description": "UpdateMasterRequest updates the master of the cluster.", "id": "UpdateMasterRequest", @@ -5697,7 +6285,7 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5715,6 +6303,18 @@ "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, + "confidentialNodes": { + "$ref": "ConfidentialNodes", + "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." + }, + "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" + }, + "fastSocket": { + "$ref": "FastSocket", + "description": "Enable or disable NCCL fast socket for the node pool." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "GCFS config." @@ -5731,6 +6331,10 @@ "$ref": "NodeKubeletConfig", "description": "Node kubelet configs." }, + "labels": { + "$ref": "NodeLabels", + "description": "The desired node labels to be applied to all nodes in the node pool. If this field is not present, the labels will not be changed. Otherwise, the existing node labels will be *replaced* with the provided labels." + }, "linuxNodeConfig": { "$ref": "LinuxNodeConfig", "description": "Parameters that can be configured on Linux nodes." @@ -5742,10 +6346,18 @@ }, "type": "array" }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration." + }, "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" }, + "nodeNetworkConfig": { + "$ref": "NodeNetworkConfig", + "description": "Node network config." + }, "nodePoolId": { "description": "Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" @@ -5755,13 +6367,29 @@ "type": "string" }, "projectId": { - "description": "Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, + "resourceLabels": { + "$ref": "ResourceLabels", + "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources." + }, + "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." + }, + "taints": { + "$ref": "NodeTaints", + "description": "The desired node taints to be applied to all nodes in the node pool. If this field is not present, the taints will not be changed. Otherwise, the existing node taints will be *replaced* with the provided taints." + }, "upgradeSettings": { "$ref": "UpgradeSettings", "description": "Upgrade settings control disruption and speed of the upgrade." }, + "windowsNodeConfig": { + "$ref": "WindowsNodeConfig", + "description": "Parameters that can be configured on Windows nodes." + }, "workloadMetadataConfig": { "$ref": "WorkloadMetadataConfig", "description": "The desired workload metadata config for the node pool." @@ -5849,9 +6477,13 @@ "type": "object" }, "UpgradeSettings": { - "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.", + "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 ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted.", "id": "UpgradeSettings", "properties": { + "blueGreenSettings": { + "$ref": "BlueGreenSettings", + "description": "Settings for blue-green upgrade strategy." + }, "maxSurge": { "description": "The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.", "format": "int32", @@ -5861,6 +6493,20 @@ "description": "The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.", "format": "int32", "type": "integer" + }, + "strategy": { + "description": "Update strategy of the node pool.", + "enum": [ + "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED", + "BLUE_GREEN", + "SURGE" + ], + "enumDescriptions": [ + "Default value.", + "blue-green upgrade.", + "SURGE is the traditional way of upgrade a node pool. max_surge and max_unavailable determines the level of upgrade parallelism." + ], + "type": "string" } }, "type": "object" @@ -5950,6 +6596,27 @@ }, "type": "object" }, + "WindowsNodeConfig": { + "description": "Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings", + "id": "WindowsNodeConfig", + "properties": { + "osVersion": { + "description": "OSVersion specifies the Windows node config to be used on the node", + "enum": [ + "OS_VERSION_UNSPECIFIED", + "OS_VERSION_LTSC2019", + "OS_VERSION_LTSC2022" + ], + "enumDescriptions": [ + "When OSVersion is not specified", + "LTSC2019 specifies to use LTSC2019 as the Windows Servercore Base Image", + "LTSC2022 specifies to use LTSC2022 as the Windows Servercore Base Image" + ], + "type": "string" + } + }, + "type": "object" + }, "WorkloadIdentityConfig": { "description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.", "id": "WorkloadIdentityConfig", diff --git a/etc/api/container/v1beta1/container-api.json b/etc/api/container/v1beta1/container-api.json index 381cec0808..cfd4cf8f7d 100644 --- a/etc/api/container/v1beta1/container-api.json +++ b/etc/api/container/v1beta1/container-api.json @@ -175,7 +175,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -300,7 +300,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -340,7 +340,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -397,7 +397,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -755,6 +755,34 @@ "resources": { "nodePools": { "methods": { + "completeUpgrade": { + "description": "CompleteNodePoolUpgrade will signal an on-going node pool upgrade to complete.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:completeUpgrade", + "httpMethod": "POST", + "id": "container.projects.locations.clusters.nodePools.completeUpgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name (project, location, cluster, node pool id) of the node pool to complete upgrade. Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:completeUpgrade", + "request": { + "$ref": "CompleteNodePoolUpgradeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a node pool for a cluster.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools", @@ -810,7 +838,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, @@ -855,7 +883,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, @@ -895,7 +923,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -1135,7 +1163,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, @@ -1170,7 +1198,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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" }, @@ -1210,7 +1238,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1252,7 +1280,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1293,7 +1321,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1327,7 +1355,7 @@ ], "parameters": { "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -1373,7 +1401,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1416,7 +1444,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1454,7 +1482,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1493,7 +1521,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -1531,7 +1559,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1572,7 +1600,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1613,7 +1641,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1654,7 +1682,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1695,7 +1723,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1736,7 +1764,7 @@ "type": "string" }, "projectId": { - "description": "Required. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840).", + "description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", "location": "path", "required": true, "type": "string" @@ -1777,7 +1805,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1818,7 +1846,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1859,7 +1887,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1900,7 +1928,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1952,7 +1980,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -1993,7 +2021,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2046,7 +2074,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2096,7 +2124,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2139,7 +2167,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2184,7 +2212,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2232,7 +2260,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2280,7 +2308,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2328,7 +2356,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2375,7 +2403,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2421,7 +2449,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": "path", "required": true, "type": "string" @@ -2457,7 +2485,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": "path", "required": true, "type": "string" @@ -2484,7 +2512,7 @@ } } }, - "revision": "20220215", + "revision": "20230104", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2503,6 +2531,15 @@ "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" + }, + "gpuSharingConfig": { + "$ref": "GPUSharingConfig", + "description": "The configuration for GPU sharing options." + }, + "maxTimeSharedClientsPerGpu": { + "description": "The number of time-shared GPU resources to expose for each physical GPU.", + "format": "int64", + "type": "string" } }, "type": "object" @@ -2641,7 +2678,7 @@ "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 cloud.google.com/requested-min-cpu-platform label selector on the pod. To unset the min cpu platform field pass \"automatic\" as field value.", + "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.", "type": "string" }, "oauthScopes": { @@ -2697,8 +2734,91 @@ "id": "BinaryAuthorization", "properties": { "enabled": { - "description": "Enable Binary Authorization for this cluster. If enabled, all container images will be validated by Google Binauthz.", + "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" + }, + "evaluationMode": { + "description": "Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.", + "enum": [ + "EVALUATION_MODE_UNSPECIFIED", + "DISABLED", + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "BlueGreenInfo": { + "description": "Information relevant to blue-green upgrade.", + "id": "BlueGreenInfo", + "properties": { + "blueInstanceGroupUrls": { + "description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "bluePoolDeletionStartTime": { + "description": "Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", + "type": "string" + }, + "greenInstanceGroupUrls": { + "description": "The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "greenPoolVersion": { + "description": "Version of green pool.", + "type": "string" + }, + "phase": { + "description": "Current blue-green upgrade phase.", + "enum": [ + "PHASE_UNSPECIFIED", + "UPDATE_STARTED", + "CREATING_GREEN_POOL", + "CORDONING_BLUE_POOL", + "DRAINING_BLUE_POOL", + "NODE_POOL_SOAKING", + "DELETING_BLUE_POOL", + "ROLLBACK_STARTED" + ], + "enumDescriptions": [ + "Unspecified phase.", + "blue-green upgrade has been initiated.", + "Start creating green pool nodes.", + "Start cordoning blue pool nodes.", + "Start draining blue pool nodes.", + "Start soaking time after draining entire blue pool.", + "Start deleting blue nodes.", + "Rollback has been initiated." + ], + "type": "string" + } + }, + "type": "object" + }, + "BlueGreenSettings": { + "description": "Settings for blue-green upgrade.", + "id": "BlueGreenSettings", + "properties": { + "nodePoolSoakDuration": { + "description": "Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.", + "format": "google-duration", + "type": "string" + }, + "standardRolloutPolicy": { + "$ref": "StandardRolloutPolicy", + "description": "Standard policy for the blue-green upgrade." } }, "type": "object" @@ -2716,7 +2836,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -2820,6 +2940,10 @@ "$ref": "ConfidentialNodes", "description": "Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled." }, + "costManagementConfig": { + "$ref": "CostManagementConfig", + "description": "Configuration for the fine-grained cost management feature." + }, "createTime": { "description": "[Output only] The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" @@ -2861,6 +2985,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" }, + "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" + }, "expireTime": { "description": "[Output only] The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.", "type": "string" @@ -3009,6 +3137,10 @@ "$ref": "PrivateClusterConfig", "description": "Configuration for private cluster." }, + "protectConfig": { + "$ref": "ProtectConfig", + "description": "Enable/Disable Protect API features for the cluster." + }, "releaseChannel": { "$ref": "ReleaseChannel", "description": "Release channel configuration." @@ -3187,6 +3319,10 @@ "$ref": "ClusterTelemetry", "description": "The desired telemetry integration for the cluster." }, + "desiredCostManagementConfig": { + "$ref": "CostManagementConfig", + "description": "The desired configuration for the fine-grained cost management feature." + }, "desiredDatabaseEncryption": { "$ref": "DatabaseEncryption", "description": "Configuration of etcd encryption." @@ -3213,6 +3349,14 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnablePrivateEndpoint": { + "description": "Enable/Disable private endpoint for the cluster's master.", + "type": "boolean" + }, + "desiredGatewayApiConfig": { + "$ref": "GatewayAPIConfig", + "description": "The desired config of Gateway API on this cluster." + }, "desiredGcfsConfig": { "$ref": "GcfsConfig", "description": "The desired GCFS config for the cluster." @@ -3284,6 +3428,10 @@ "description": "The node pool to be upgraded. This field is mandatory if \"desired_node_version\", \"desired_image_family\", \"desired_node_pool_autoscaling\", or \"desired_workload_metadata_config\" is specified and there is more than one node pool on the cluster.", "type": "string" }, + "desiredNodePoolLoggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "The desired node pool logging configuration defaults for the cluster." + }, "desiredNodeVersion": { "description": "The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - \"latest\": picks the highest valid Kubernetes version - \"1.X\": picks the highest valid patch+gke.N patch in the 1.X version - \"1.X.Y\": picks the highest valid gke.N patch in the 1.X.Y version - \"1.X.Y-gke.N\": picks an explicit Kubernetes version - \"-\": picks the Kubernetes master version", "type": "string" @@ -3316,6 +3464,10 @@ ], "type": "string" }, + "desiredProtectConfig": { + "$ref": "ProtectConfig", + "description": "Enable/Disable Protect API features for the cluster." + }, "desiredReleaseChannel": { "$ref": "ReleaseChannel", "description": "The desired release channel configuration." @@ -3332,6 +3484,20 @@ "$ref": "ShieldedNodes", "description": "Configuration for Shielded Nodes." }, + "desiredStackType": { + "description": "The desired stack type of the cluster. If a stack type is provided and does not match the current stack type of the cluster, update will attempt to change the stack type to the new type.", + "enum": [ + "STACK_TYPE_UNSPECIFIED", + "IPV4", + "IPV4_IPV6" + ], + "enumDescriptions": [ + "By default, the clusters will be IPV4 only", + "The value used if the cluster is a IPV4 only", + "The value used if the cluster is a dual stack cluster" + ], + "type": "string" + }, "desiredTpuConfig": { "$ref": "TpuConfig", "description": "The desired Cloud TPU configuration." @@ -3351,6 +3517,10 @@ "desiredWorkloadIdentityConfig": { "$ref": "WorkloadIdentityConfig", "description": "Configuration for Workload Identity." + }, + "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" } }, "type": "object" @@ -3368,7 +3538,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": { @@ -3378,6 +3548,12 @@ }, "type": "object" }, + "CompleteNodePoolUpgradeRequest": { + "description": "CompleteNodePoolUpgradeRequest sets the name of target node pool to complete upgrade.", + "id": "CompleteNodePoolUpgradeRequest", + "properties": {}, + "type": "object" + }, "ConfidentialNodes": { "description": "ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs.", "id": "ConfidentialNodes", @@ -3411,6 +3587,17 @@ }, "type": "object" }, + "CostManagementConfig": { + "description": "Configuration for fine-grained cost management feature.", + "id": "CostManagementConfig", + "properties": { + "enabled": { + "description": "Whether the feature is enabled or not.", + "type": "boolean" + } + }, + "type": "object" + }, "CreateClusterRequest": { "description": "CreateClusterRequest creates a cluster.", "id": "CreateClusterRequest", @@ -3424,7 +3611,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the parent field.", + "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": { @@ -3451,7 +3638,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the parent field.", + "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": { @@ -3541,7 +3728,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -3585,7 +3772,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3602,6 +3789,29 @@ }, "type": "object" }, + "EphemeralStorageLocalSsdConfig": { + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "FastSocket": { + "description": "Configuration of Fast Socket feature.", + "id": "FastSocket", + "properties": { + "enabled": { + "description": "Whether Fast Socket features are enabled in the node pool.", + "type": "boolean" + } + }, + "type": "object" + }, "Filter": { "description": "Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent", "id": "Filter", @@ -3628,6 +3838,53 @@ }, "type": "object" }, + "GPUSharingConfig": { + "description": "GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators.", + "id": "GPUSharingConfig", + "properties": { + "gpuSharingStrategy": { + "description": "The type of GPU sharing strategy to enable on the GPU node.", + "enum": [ + "GPU_SHARING_STRATEGY_UNSPECIFIED", + "TIME_SHARING" + ], + "enumDescriptions": [ + "Default value.", + "GPUs are time-shared between containers." + ], + "type": "string" + }, + "maxSharedClientsPerGpu": { + "description": "The max number of containers that can share a physical GPU.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GatewayAPIConfig": { + "description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster.", + "id": "GatewayAPIConfig", + "properties": { + "channel": { + "description": "The Gateway API release channel to use for Gateway API.", + "enum": [ + "CHANNEL_UNSPECIFIED", + "CHANNEL_DISABLED", + "CHANNEL_EXPERIMENTAL", + "CHANNEL_STANDARD" + ], + "enumDescriptions": [ + "Default value.", + "Gateway API support is disabled", + "Gateway API support is enabled, experimental CRDs are installed", + "Gateway API support is enabled, standard CRDs are installed" + ], + "type": "string" + } + }, + "type": "object" + }, "GcePersistentDiskCsiDriverConfig": { "description": "Configuration for the Compute Engine PD CSI driver.", "id": "GcePersistentDiskCsiDriverConfig", @@ -3821,6 +4078,20 @@ "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" }, + "ipv6AccessType": { + "description": "The ipv6 access type (internal or external) when create_subnetwork is true", + "enum": [ + "IPV6_ACCESS_TYPE_UNSPECIFIED", + "INTERNAL", + "EXTERNAL" + ], + "enumDescriptions": [ + "Default value, will be defaulted as type external.", + "Access type internal (all v6 addresses are internal IPs)", + "Access type external (all v6 addresses are external IPs)" + ], + "type": "string" + }, "nodeIpv4Cidr": { "description": "This field is deprecated, use node_ipv4_cidr_block.", "type": "string" @@ -3837,10 +4108,34 @@ "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 and create_subnetwork is false.", "type": "string" }, + "stackType": { + "description": "IP stack type", + "enum": [ + "STACK_TYPE_UNSPECIFIED", + "IPV4", + "IPV4_IPV6" + ], + "enumDescriptions": [ + "By default, the clusters will be IPV4 only", + "The value used if the cluster is a IPV4 only", + "The value used if the cluster is a dual stack cluster" + ], + "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" @@ -3985,11 +4280,25 @@ "description": "Parameters that can be configured on Linux nodes.", "id": "LinuxNodeConfig", "properties": { + "cgroupMode": { + "description": "cgroup_mode specifies the cgroup mode to be used on the node.", + "enum": [ + "CGROUP_MODE_UNSPECIFIED", + "CGROUP_MODE_V1", + "CGROUP_MODE_V2" + ], + "enumDescriptions": [ + "CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.", + "CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.", + "CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image." + ], + "type": "string" + }, "sysctls": { "additionalProperties": { "type": "string" }, - "description": "The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse", + "description": "The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse", "type": "object" } }, @@ -4087,6 +4396,18 @@ }, "type": "object" }, + "LocalNvmeSsdBlockConfig": { + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Location": { "description": "Location returns the location name, and if the location is recommended for GKE cluster scheduling.", "id": "Location", @@ -4096,7 +4417,7 @@ "type": "string" }, "recommended": { - "description": "Whether the location is recomended for GKE cluster scheduling.", + "description": "Whether the location is recommended for GKE cluster scheduling.", "type": "boolean" }, "type": { @@ -4126,12 +4447,18 @@ "enum": [ "COMPONENT_UNSPECIFIED", "SYSTEM_COMPONENTS", - "WORKLOADS" + "WORKLOADS", + "APISERVER", + "SCHEDULER", + "CONTROLLER_MANAGER" ], "enumDescriptions": [ "Default value. This shouldn't be used.", "system components", - "workloads" + "workloads", + "kube-apiserver", + "kube-scheduler", + "kube-controller-manager" ], "type": "string" }, @@ -4151,6 +4478,27 @@ }, "type": "object" }, + "LoggingVariantConfig": { + "description": "LoggingVariantConfig specifies the behaviour of the logging component.", + "id": "LoggingVariantConfig", + "properties": { + "variant": { + "description": "Logging variant deployed on nodes.", + "enum": [ + "VARIANT_UNSPECIFIED", + "DEFAULT", + "MAX_THROUGHPUT" + ], + "enumDescriptions": [ + "Default value. This shouldn't be used.", + "default logging variant.", + "maximum logging throughput variant." + ], + "type": "string" + } + }, + "type": "object" + }, "MaintenanceExclusionOptions": { "description": "Represents the Maintenance exclusion option.", "id": "MaintenanceExclusionOptions", @@ -4270,6 +4618,10 @@ "enabled": { "description": "Whether or not master authorized networks is enabled.", "type": "boolean" + }, + "gcpPublicCidrsAccessEnabled": { + "description": "Whether master is accessbile via Google Compute Engine Public IP addresses.", + "type": "boolean" } }, "type": "object" @@ -4332,12 +4684,18 @@ "enum": [ "COMPONENT_UNSPECIFIED", "SYSTEM_COMPONENTS", - "WORKLOADS" + "WORKLOADS", + "APISERVER", + "SCHEDULER", + "CONTROLLER_MANAGER" ], "enumDescriptions": [ "Default value. This shouldn't be used.", "system components", - "workloads" + "Deprecated: Use Google Cloud Managed Service for Prometheus.", + "kube-apiserver", + "kube-scheduler", + "kube-controller-manager" ], "type": "string" }, @@ -4395,6 +4753,10 @@ "description": "Whether L4ILB Subsetting is enabled for this cluster.", "type": "boolean" }, + "gatewayApiConfig": { + "$ref": "GatewayAPIConfig", + "description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster." + }, "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" @@ -4426,6 +4788,37 @@ }, "type": "object" }, + "NetworkPerformanceConfig": { + "description": "Configuration of all network bandwidth tiers", + "id": "NetworkPerformanceConfig", + "properties": { + "externalIpEgressBandwidthTier": { + "description": "Specifies the network bandwidth tier for the NodePool for traffic to external/public IP addresses.", + "enum": [ + "TIER_UNSPECIFIED", + "TIER_1" + ], + "enumDescriptions": [ + "Default value", + "Higher bandwidth, actual values based on VM size." + ], + "type": "string" + }, + "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" + }, "NetworkPolicy": { "description": "Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/", "id": "NetworkPolicy", @@ -4475,7 +4868,7 @@ "type": "object" }, "NodeConfig": { - "description": "Parameters that describe the nodes in a cluster.", + "description": "Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead.", "id": "NodeConfig", "properties": { "accelerators": { @@ -4493,6 +4886,10 @@ "description": " The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption", "type": "string" }, + "confidentialNodes": { + "$ref": "ConfidentialNodes", + "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." + }, "diskSizeGb": { "description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", "format": "int32", @@ -4506,6 +4903,14 @@ "$ref": "EphemeralStorageConfig", "description": "Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk." }, + "ephemeralStorageLocalSsdConfig": { + "$ref": "EphemeralStorageLocalSsdConfig", + "description": "Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk. This field is functionally equivalent to the ephemeral_storage_config" + }, + "fastSocket": { + "$ref": "FastSocket", + "description": "Enable or disable NCCL fast socket for the node pool." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "GCFS (Google Container File System) configs." @@ -4533,11 +4938,19 @@ "$ref": "LinuxNodeConfig", "description": "Parameters that can be configured on Linux nodes." }, + "localNvmeSsdBlockConfig": { + "$ref": "LocalNvmeSsdBlockConfig", + "description": "Parameters for using raw-block Local NVMe SSDs." + }, "localSsdCount": { "description": "The number of local 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.", "format": "int32", "type": "integer" }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration." + }, "machineType": { "description": "The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types). If unspecified, the default machine type is `e2-medium`.", "type": "string" @@ -4550,7 +4963,7 @@ "type": "object" }, "minCpuPlatform": { - "description": "Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: \"Intel Haswell\"` or `minCpuPlatform: \"Intel Sandy Bridge\"`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)", + "description": "Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as `minCpuPlatform: \"Intel Haswell\"` or `minCpuPlatform: \"Intel Sandy Bridge\"`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).", "type": "string" }, "nodeGroup": { @@ -4572,6 +4985,13 @@ "$ref": "ReservationAffinity", "description": "The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool." }, + "resourceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources.", + "type": "object" + }, "sandboxConfig": { "$ref": "SandboxConfig", "description": "Sandbox configuration for this node." @@ -4602,6 +5022,10 @@ }, "type": "array" }, + "windowsNodeConfig": { + "$ref": "WindowsNodeConfig", + "description": "Parameters that can be configured on Windows nodes." + }, "workloadMetadataConfig": { "$ref": "WorkloadMetadataConfig", "description": "The workload metadata configuration for this node." @@ -4615,7 +5039,11 @@ "properties": { "gcfsConfig": { "$ref": "GcfsConfig", - "description": "GCFS (Google Container File System, a.k.a Riptide) options." + "description": "GCFS (Google Container File System, also known as Riptide) options." + }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration for node pools." } }, "type": "object" @@ -4635,6 +5063,11 @@ "cpuManagerPolicy": { "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" + }, + "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", + "type": "string" } }, "type": "object" @@ -4680,6 +5113,14 @@ "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" }, + "enablePrivateNodes": { + "description": "Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from cluster.privateClusterConfig.enablePrivateNodes", + "type": "boolean" + }, + "networkPerformanceConfig": { + "$ref": "NetworkPerformanceConfig", + "description": "Network bandwidth tier configuration." + }, "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" @@ -4710,13 +5151,17 @@ "$ref": "NodeConfig", "description": "The node configuration of the pool." }, + "etag": { + "description": "This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, "initialNodeCount": { "description": "The initial node count for the pool. 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.", "format": "int32", "type": "integer" }, "instanceGroupUrls": { - "description": "[Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool.", + "description": "[Output only] The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.", "items": { "type": "string" }, @@ -4784,6 +5229,11 @@ "description": "[Output only] Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.", "type": "string" }, + "updateInfo": { + "$ref": "UpdateInfo", + "description": "Output only. [Output only] Update info contains relevant information during a node pool update.", + "readOnly": true + }, "upgradeSettings": { "$ref": "UpgradeSettings", "description": "Upgrade settings control disruption and speed of the upgrade." @@ -4818,6 +5268,20 @@ "description": "Is autoscaling enabled for this node pool.", "type": "boolean" }, + "locationPolicy": { + "description": "Location policy used when scaling up a nodepool.", + "enum": [ + "LOCATION_POLICY_UNSPECIFIED", + "BALANCED", + "ANY" + ], + "enumDescriptions": [ + "Not set.", + "BALANCED is a best effort policy that aims to balance the sizes of different zones.", + "ANY policy picks zones that have the highest capacity available." + ], + "type": "string" + }, "maxNodeCount": { "description": "Maximum number of nodes for one location in the NodePool. Must be >= min_node_count. There has to be enough quota to scale up the cluster.", "format": "int32", @@ -4827,6 +5291,16 @@ "description": "Minimum number of nodes for one location in the NodePool. Must be >= 1 and <= max_node_count.", "format": "int32", "type": "integer" + }, + "totalMaxNodeCount": { + "description": "Maximum number of nodes in the node pool. Must be greater than total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", + "format": "int32", + "type": "integer" + }, + "totalMinNodeCount": { + "description": "Minimum number of nodes in the node pool. Must be greater than 1 less than total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -4842,6 +5316,17 @@ }, "type": "object" }, + "NodePoolLoggingConfig": { + "description": "NodePoolLoggingConfig specifies logging configuration for nodepools.", + "id": "NodePoolLoggingConfig", + "properties": { + "variantConfig": { + "$ref": "LoggingVariantConfig", + "description": "Logging variant configuration." + } + }, + "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.", "id": "NodeTaint", @@ -5126,6 +5611,10 @@ "description": "Output only. The internal IP address of this cluster's master endpoint.", "type": "string" }, + "privateEndpointSubnetwork": { + "description": "Subnet to provision the master's private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format.", + "type": "string" + }, "publicEndpoint": { "description": "Output only. The external IP address of this cluster's master endpoint.", "type": "string" @@ -5144,6 +5633,31 @@ }, "type": "object" }, + "ProtectConfig": { + "description": "ProtectConfig defines the flags needed to enable/disable features for the Protect API.", + "id": "ProtectConfig", + "properties": { + "workloadConfig": { + "$ref": "WorkloadConfig", + "description": "WorkloadConfig defines which actions are enabled for a cluster's workload configurations." + }, + "workloadVulnerabilityMode": { + "description": "Sets which mode to use for Protect workload vulnerability scanning feature.", + "enum": [ + "WORKLOAD_VULNERABILITY_MODE_UNSPECIFIED", + "DISABLED", + "BASIC" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Workload Vulnerability Scanning feature on the cluster.", + "Applies basic vulnerability scanning settings for cluster workloads." + ], + "type": "string" + } + }, + "type": "object" + }, "PubSub": { "description": "Pub/Sub specific notification config.", "id": "PubSub", @@ -5263,7 +5777,7 @@ "type": "string" }, "key": { - "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify \"googleapis.com/reservation-name\" as the key and specify the name of your reservation as its value.", + "description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify \"compute.googleapis.com/reservation-name\" as the key and specify the name of your reservation as its value.", "type": "string" }, "values": { @@ -5276,6 +5790,20 @@ }, "type": "object" }, + "ResourceLabels": { + "description": "Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels).", + "id": "ResourceLabels", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Map of node label keys and node label values.", + "type": "object" + } + }, + "type": "object" + }, "ResourceLimit": { "description": "Contains information about amount of some resource in the cluster. For memory, value should be in GB.", "id": "ResourceLimit", @@ -5333,9 +5861,13 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, + "respectPdb": { + "description": "Option for rollback to ignore the PodDisruptionBudget. Default value is false.", + "type": "boolean" + }, "zone": { "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" @@ -5500,7 +6032,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5527,7 +6059,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, "resourceLabels": { @@ -5561,7 +6093,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5591,7 +6123,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5618,7 +6150,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5645,7 +6177,7 @@ "type": "string" }, "projectId": { - "description": "Required. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840).", + "description": "Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).", "type": "string" }, "zone": { @@ -5684,7 +6216,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, "update": { @@ -5715,7 +6247,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5742,7 +6274,7 @@ "description": "Required. Configuration options for the NetworkPolicy feature." }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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": { @@ -5773,7 +6305,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5804,7 +6336,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5836,7 +6368,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -5872,6 +6404,28 @@ }, "type": "object" }, + "StandardRolloutPolicy": { + "description": "Standard rollout policy is the default policy for blue-green.", + "id": "StandardRolloutPolicy", + "properties": { + "batchNodeCount": { + "description": "Number of blue nodes to drain in a batch.", + "format": "int32", + "type": "integer" + }, + "batchPercentage": { + "description": "Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].", + "format": "float", + "type": "number" + }, + "batchSoakDuration": { + "description": "Soak time after each batch gets drained. Default to zero.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "StartIPRotationRequest": { "description": "StartIPRotationRequest creates a new IP for the cluster and then performs a node upgrade on each node pool to point to the new IP.", "id": "StartIPRotationRequest", @@ -5885,7 +6439,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://developers.google.com/console/help/new/#projectnumber). This field has been deprecated and replaced by the name field.", + "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" }, "rotateCredentials": { @@ -5952,7 +6506,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -6054,7 +6608,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, "update": { @@ -6068,6 +6622,17 @@ }, "type": "object" }, + "UpdateInfo": { + "description": "UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade.", + "id": "UpdateInfo", + "properties": { + "blueGreenInfo": { + "$ref": "BlueGreenInfo", + "description": "Information of a blue-green upgrade." + } + }, + "type": "object" + }, "UpdateMasterRequest": { "description": "UpdateMasterRequest updates the master of the cluster.", "id": "UpdateMasterRequest", @@ -6085,7 +6650,7 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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": { @@ -6103,6 +6668,18 @@ "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" }, + "confidentialNodes": { + "$ref": "ConfidentialNodes", + "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." + }, + "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" + }, + "fastSocket": { + "$ref": "FastSocket", + "description": "Enable or disable NCCL fast socket for the node pool." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "GCFS config." @@ -6134,10 +6711,18 @@ }, "type": "array" }, + "loggingConfig": { + "$ref": "NodePoolLoggingConfig", + "description": "Logging configuration." + }, "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" }, + "nodeNetworkConfig": { + "$ref": "NodeNetworkConfig", + "description": "Node network config." + }, "nodePoolId": { "description": "Required. Deprecated. The name of the node pool to upgrade. This field has been deprecated and replaced by the name field.", "type": "string" @@ -6147,9 +6732,13 @@ "type": "string" }, "projectId": { - "description": "Required. Deprecated. The Google Developers Console [project ID or project number](https://support.google.com/cloud/answer/6158840). This field has been deprecated and replaced by the name field.", + "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" }, + "resourceLabels": { + "$ref": "ResourceLabels", + "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources." + }, "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." @@ -6162,6 +6751,10 @@ "$ref": "UpgradeSettings", "description": "Upgrade settings control disruption and speed of the upgrade." }, + "windowsNodeConfig": { + "$ref": "WindowsNodeConfig", + "description": "Parameters that can be configured on Windows nodes." + }, "workloadMetadataConfig": { "$ref": "WorkloadMetadataConfig", "description": "The desired workload metadata config for the node pool." @@ -6253,8 +6846,13 @@ "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.", "id": "UpgradeSettings", "properties": { + "blueGreenSettings": { + "$ref": "BlueGreenSettings", + "description": "Settings for blue-green upgrade strategy." + }, "maxSurge": { "description": "The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.", "format": "int32", @@ -6264,6 +6862,20 @@ "description": "The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.", "format": "int32", "type": "integer" + }, + "strategy": { + "description": "Update strategy of the node pool.", + "enum": [ + "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED", + "BLUE_GREEN", + "SURGE" + ], + "enumDescriptions": [ + "Default value.", + "blue-green upgrade.", + "SURGE is the traditional way of upgrading a node pool. max_surge and max_unavailable determines the level of upgrade parallelism." + ], + "type": "string" } }, "type": "object" @@ -6353,6 +6965,27 @@ }, "type": "object" }, + "WindowsNodeConfig": { + "description": "Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings", + "id": "WindowsNodeConfig", + "properties": { + "osVersion": { + "description": "OSVersion specifies the Windows node config to be used on the node", + "enum": [ + "OS_VERSION_UNSPECIFIED", + "OS_VERSION_LTSC2019", + "OS_VERSION_LTSC2022" + ], + "enumDescriptions": [ + "When OSVersion is not specified", + "LTSC2019 specifies to use LTSC2019 as the Windows Servercore Base Image", + "LTSC2022 specifies to use LTSC2022 as the Windows Servercore Base Image" + ], + "type": "string" + } + }, + "type": "object" + }, "WindowsVersion": { "description": "Windows server version.", "id": "WindowsVersion", @@ -6408,6 +7041,31 @@ }, "type": "object" }, + "WorkloadConfig": { + "description": "WorkloadConfig defines the flags to enable or disable the workload configurations for the cluster.", + "id": "WorkloadConfig", + "properties": { + "auditMode": { + "description": "Sets which mode of auditing should be used for the cluster's workloads.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "BASIC", + "BASELINE", + "RESTRICTED" + ], + "enumDescriptions": [ + "Default value meaning that no mode has been specified.", + "This disables Workload Configuration auditing on the cluster, meaning that nothing is surfaced.", + "Applies the default set of policy auditing to a cluster's workloads.", + "Surfaces configurations that are not in line with the Pod Security Standard Baseline policy.", + "Surfaces configurations that are not in line with the Pod Security Standard Restricted policy." + ], + "type": "string" + } + }, + "type": "object" + }, "WorkloadIdentityConfig": { "description": "Configuration for the use of Kubernetes Service Accounts in GCP IAM policies.", "id": "WorkloadIdentityConfig", diff --git a/etc/api/containeranalysis/v1/containeranalysis-api.json b/etc/api/containeranalysis/v1/containeranalysis-api.json index 68af99b03c..ae86f5d1c9 100644 --- a/etc/api/containeranalysis/v1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1/containeranalysis-api.json @@ -230,7 +230,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -333,7 +333,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -361,7 +361,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -546,7 +546,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -704,7 +704,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -732,7 +732,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -755,7 +755,7 @@ } } }, - "revision": "20220225", + "revision": "20230106", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -785,6 +785,19 @@ }, "type": "object" }, + "AnalysisCompleted": { + "description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", + "id": "AnalysisCompleted", + "properties": { + "analysisType": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Artifact": { "description": "Artifact describes a build product.", "id": "Artifact", @@ -909,7 +922,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1027,6 +1040,128 @@ }, "type": "object" }, + "BuildStep": { + "description": "A step in the build pipeline. Next ID: 20", + "id": "BuildStep", + "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "entrypoint": { + "description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", + "type": "string" + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", + "type": "string" + }, + "name": { + "description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", + "type": "string" + }, + "pullTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pulling this build step's builder image only." + }, + "script": { + "description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build has been received and is being queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "type": "string" + }, + "timeout": { + "description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for executing this build step." + }, + "volumes": { + "description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "BuilderConfig": { "id": "BuilderConfig", "properties": { @@ -1037,7 +1172,7 @@ "type": "object" }, "CVSS": { - "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing multiple versions of CVSS. The intention is that as new versions of CVSS scores get added, we will be able to modify this message rather than adding new protos for each new version of the score.", + "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version.", "id": "CVSS", "properties": { "attackComplexity": { @@ -1505,6 +1640,10 @@ "description": "Describes the CIS benchmark version that is applicable to a given OS and os version.", "id": "ComplianceVersion", "properties": { + "benchmarkDocument": { + "description": "The name of the document that defines this benchmark, e.g. \"CIS Container-Optimized OS\".", + "type": "string" + }, "cpeUri": { "description": "The CPE URI (https://cpe.mitre.org/specification/) this benchmark is applicable to.", "type": "string" @@ -1578,9 +1717,23 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact" + }, + "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." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -1608,6 +1761,51 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "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", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Build": { "description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Build", @@ -1782,7 +1980,7 @@ "additionalProperties": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan" }, - "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all specified images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", "readOnly": true, "type": "object" }, @@ -1871,7 +2069,7 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { "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 1000GB; builds that request more than the maximum are rejected with an error.", + "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", "type": "string" }, @@ -1949,8 +2147,8 @@ "VERIFIED" ], "enumDescriptions": [ - "Not a verifiable build. (default)", - "Verified build." + "Not a verifiable build (the default).", + "Build must be verified." ], "type": "string" }, @@ -2019,6 +2217,18 @@ "description": "A step in the build pipeline.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep", "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, "args": { "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", "items": { @@ -2041,6 +2251,12 @@ }, "type": "array" }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "id": { "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", "type": "string" @@ -2274,12 +2490,12 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Results", "properties": { "artifactManifest": { - "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.", + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "type": "string" }, "artifactTiming": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", - "description": "Time to push all non-container artifacts." + "description": "Time to push all non-container artifacts to Cloud Storage." }, "buildStepImages": { "description": "List of build step digests, in the order corresponding to build step indices.", @@ -2303,10 +2519,24 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact" + }, + "type": "array" + }, "numArtifacts": { - "description": "Number of artifacts uploaded. Only populated when artifacts are uploaded.", + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -2469,6 +2699,46 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume", @@ -2649,6 +2919,22 @@ }, "type": "object" }, + "Digest": { + "description": "Digest information.", + "id": "Digest", + "properties": { + "algo": { + "description": "`SHA1`, `SHA512` etc.", + "type": "string" + }, + "digestBytes": { + "description": "Value of the digest.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "DiscoveryNote": { "description": "A note that indicates a type of analysis a provider would perform. This note exists in a provider's project. A `Discovery` occurrence is created in a consumer's project at the start of analysis.", "id": "DiscoveryNote", @@ -2690,6 +2976,16 @@ "description": "Provides information about the analysis status of a discovered resource.", "id": "DiscoveryOccurrence", "properties": { + "analysisCompleted": { + "$ref": "AnalysisCompleted" + }, + "analysisError": { + "description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, "analysisStatus": { "description": "The status of discovery for the resource.", "enum": [ @@ -2697,6 +2993,7 @@ "PENDING", "SCANNING", "FINISHED_SUCCESS", + "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ], @@ -2705,8 +3002,9 @@ "Resource is known but no action has been taken yet.", "Resource is being analyzed.", "Analysis has finished successfully.", + "Analysis has completed.", "Analysis has finished unsuccessfully, the analysis itself is in a bad state.", - "The resource is known not to be supported" + "The resource is known not to be supported." ], "type": "string" }, @@ -2788,7 +3086,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3004,6 +3302,126 @@ }, "type": "object" }, + "GrafeasV1FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "GrafeasV1FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder": { + "description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder", + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness": { + "description": "Indicates that the builder claims certain fields in this message to be complete.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness", + "properties": { + "environment": { + "type": "boolean" + }, + "materials": { + "type": "boolean" + }, + "parameters": { + "type": "boolean" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource": { + "description": "Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "entryPoint": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation": { + "description": "Identifies the event that kicked off the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation", + "properties": { + "configSource": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource" + }, + "environment": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "parameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial": { + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata": { + "description": "Other properties of the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata", + "properties": { + "buildFinishedOn": { + "format": "google-datetime", + "type": "string" + }, + "buildInvocationId": { + "type": "string" + }, + "buildStartedOn": { + "format": "google-datetime", + "type": "string" + }, + "completeness": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness" + }, + "reproducible": { + "type": "boolean" + } + }, + "type": "object" + }, "Hash": { "description": "Container message for hash values.", "id": "Hash", @@ -3131,6 +3549,9 @@ "slsaProvenance": { "$ref": "SlsaProvenance" }, + "slsaProvenanceZeroTwo": { + "$ref": "SlsaProvenanceZeroTwo" + }, "subject": { "items": { "$ref": "Subject" @@ -3179,6 +3600,21 @@ }, "type": "object" }, + "License": { + "description": "License information.", + "id": "License", + "properties": { + "comments": { + "description": "Comments", + "type": "string" + }, + "expression": { + "description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", + "type": "string" + } + }, + "type": "object" + }, "ListNoteOccurrencesResponse": { "description": "Response for listing occurrences for a note.", "id": "ListNoteOccurrencesResponse", @@ -3238,7 +3674,7 @@ "id": "Location", "properties": { "cpeUri": { - "description": "Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", + "description": "Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/)", "type": "string" }, "path": { @@ -3247,7 +3683,7 @@ }, "version": { "$ref": "Version", - "description": "The version installed at this location." + "description": "Deprecated. The version installed at this location." } }, "type": "object" @@ -3577,6 +4013,13 @@ "readOnly": true, "type": "string" }, + "fileLocation": { + "description": "The location at which this package was found.", + "items": { + "$ref": "GrafeasV1FileLocation" + }, + "type": "array" + }, "fixAvailable": { "description": "Output only. Whether a fix is available for this package.", "type": "boolean" @@ -3601,19 +4044,68 @@ "type": "object" }, "PackageNote": { - "description": "This represents a particular package that is distributed over various channels. E.g., glibc (aka libc6) is distributed by many, at various versions.", + "description": "PackageNote represents a particular package version.", "id": "PackageNote", "properties": { + "architecture": { + "description": "The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "type": "string" + }, + "cpeUri": { + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "type": "string" + }, + "description": { + "description": "The description of this package.", + "type": "string" + }, + "digest": { + "description": "Hash value, typically a file digest, that allows unique identification a specific package.", + "items": { + "$ref": "Digest" + }, + "type": "array" + }, "distribution": { - "description": "The various channels by which a package is distributed.", + "description": "Deprecated. The various channels by which a package is distributed.", "items": { "$ref": "Distribution" }, "type": "array" }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, + "maintainer": { + "description": "A freeform text denoting the maintainer of this package.", + "type": "string" + }, "name": { "description": "Required. Immutable. The name of the package.", "type": "string" + }, + "packageType": { + "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "type": "string" + }, + "url": { + "description": "The homepage for this package.", + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "The version of the package." } }, "type": "object" @@ -3622,16 +4114,51 @@ "description": "Details on how a particular software package was installed on a system.", "id": "PackageOccurrence", "properties": { + "architecture": { + "description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "readOnly": true, + "type": "string" + }, + "cpeUri": { + "description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "readOnly": true, + "type": "string" + }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, "location": { - "description": "Required. All of the places within the filesystem versions of this package have been found.", + "description": "All of the places within the filesystem versions of this package have been found.", "items": { "$ref": "Location" }, "type": "array" }, "name": { - "description": "Output only. The name of the installed package.", + "description": "Required. Output only. The name of the installed package.", + "readOnly": true, "type": "string" + }, + "packageType": { + "description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "readOnly": true, + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "Output only. The version of the package.", + "readOnly": true } }, "type": "object" @@ -3753,7 +4280,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -3855,6 +4382,38 @@ }, "type": "object" }, + "SlsaProvenanceZeroTwo": { + "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", + "id": "SlsaProvenanceZeroTwo", + "properties": { + "buildConfig": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "buildType": { + "type": "string" + }, + "builder": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder" + }, + "invocation": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation" + }, + "materials": { + "items": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial" + }, + "type": "array" + }, + "metadata": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata" + } + }, + "type": "object" + }, "SlsaRecipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "SlsaRecipe", @@ -3994,7 +4553,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -4017,6 +4576,23 @@ }, "type": "object" }, + "TimeSpan": { + "description": "Start and end times for a build execution phase. Next ID: 3", + "id": "TimeSpan", + "properties": { + "endTime": { + "description": "End of time span.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time span.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "UpgradeDistribution": { "description": "The Upgrade Distribution represents metadata about the Upgrade for each operating system (CPE). Some distributions have additional metadata around updates, classifying them into various categories and severities.", "id": "UpgradeDistribution", @@ -4136,6 +4712,21 @@ }, "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", + "properties": { + "name": { + "description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", + "type": "string" + }, + "path": { + "description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityNote": { "description": "A security vulnerability that can be found in resources.", "id": "VulnerabilityNote", @@ -4149,6 +4740,20 @@ "$ref": "CVSSv3", "description": "The full description of the CVSSv3 for this vulnerability." }, + "cvssVersion": { + "description": "CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "details": { "description": "Details of all known distros and packages affected by this vulnerability.", "items": { @@ -4200,6 +4805,20 @@ "format": "float", "type": "number" }, + "cvssVersion": { + "description": "Output only. CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "cvssv3": { "$ref": "CVSS", "description": "The cvss v3 score for the vulnerability." diff --git a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json index 7e590ce818..f8ff7595e4 100644 --- a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json @@ -207,7 +207,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -315,7 +315,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -343,7 +343,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -505,7 +505,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -707,7 +707,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -735,7 +735,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -1023,7 +1023,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^providers/[^/]+/notes/[^/]+$", "required": true, @@ -1131,7 +1131,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^providers/[^/]+/notes/[^/]+$", "required": true, @@ -1159,7 +1159,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^providers/[^/]+/notes/[^/]+$", "required": true, @@ -1229,9 +1229,23 @@ } } }, - "revision": "20220225", + "revision": "20230106", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { + "AnalysisCompleted": { + "description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", + "id": "AnalysisCompleted", + "properties": { + "analysisType": { + "description": "type of analysis that were completed on a resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Artifact": { "description": "Artifact describes a build product.", "id": "Artifact", @@ -1313,7 +1327,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1453,6 +1467,128 @@ }, "type": "object" }, + "BuildStep": { + "description": "A step in the build pipeline. Next ID: 20", + "id": "BuildStep", + "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "entrypoint": { + "description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", + "type": "string" + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", + "type": "string" + }, + "name": { + "description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", + "type": "string" + }, + "pullTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pulling this build step's builder image only." + }, + "script": { + "description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build has been received and is being queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "type": "string" + }, + "timeout": { + "description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for executing this build step." + }, + "volumes": { + "description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "BuildType": { "description": "Note holding the version of the provider's builder and the signature of the provenance message in linked BuildDetails.", "id": "BuildType", @@ -1478,24 +1614,27 @@ "type": "object" }, "CVSS": { - "description": "Common Vulnerability Scoring System.", + "description": "Common Vulnerability Scoring System. This message is compatible with CVSS v2 and v3. For CVSS v2 details, see https://www.first.org/cvss/v2/guide CVSS v2 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator For CVSS v3 details, see https://www.first.org/cvss/specification-document CVSS v3 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator", "id": "CVSS", "properties": { "attackComplexity": { + "description": "Defined in CVSS v3, CVSS v2", "enum": [ "ATTACK_COMPLEXITY_UNSPECIFIED", "ATTACK_COMPLEXITY_LOW", - "ATTACK_COMPLEXITY_HIGH" + "ATTACK_COMPLEXITY_HIGH", + "ATTACK_COMPLEXITY_MEDIUM" ], "enumDescriptions": [ - "", - "", - "" + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2" ], "type": "string" }, "attackVector": { - "description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments.", + "description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. Defined in CVSS v3, CVSS v2", "enum": [ "ATTACK_VECTOR_UNSPECIFIED", "ATTACK_VECTOR_NETWORK", @@ -1504,15 +1643,16 @@ "ATTACK_VECTOR_PHYSICAL" ], "enumDescriptions": [ - "", - "", - "", - "", - "" + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3" ], "type": "string" }, "authentication": { + "description": "Defined in CVSS v2", "enum": [ "AUTHENTICATION_UNSPECIFIED", "AUTHENTICATION_MULTIPLE", @@ -1520,25 +1660,30 @@ "AUTHENTICATION_NONE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Defined in CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" ], "type": "string" }, "availabilityImpact": { + "description": "Defined in CVSS v3, CVSS v2", "enum": [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" ], "type": "string" }, @@ -1548,17 +1693,22 @@ "type": "number" }, "confidentialityImpact": { + "description": "Defined in CVSS v3, CVSS v2", "enum": [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" ], "type": "string" }, @@ -1571,21 +1721,27 @@ "type": "number" }, "integrityImpact": { + "description": "Defined in CVSS v3, CVSS v2", "enum": [ "IMPACT_UNSPECIFIED", "IMPACT_HIGH", "IMPACT_LOW", - "IMPACT_NONE" + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" ], "type": "string" }, "privilegesRequired": { + "description": "Defined in CVSS v3", "enum": [ "PRIVILEGES_REQUIRED_UNSPECIFIED", "PRIVILEGES_REQUIRED_NONE", @@ -1593,36 +1749,38 @@ "PRIVILEGES_REQUIRED_HIGH" ], "enumDescriptions": [ - "", - "", - "", - "" + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" ], "type": "string" }, "scope": { + "description": "Defined in CVSS v3", "enum": [ "SCOPE_UNSPECIFIED", "SCOPE_UNCHANGED", "SCOPE_CHANGED" ], "enumDescriptions": [ - "", - "", - "" + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" ], "type": "string" }, "userInteraction": { + "description": "Defined in CVSS v3", "enum": [ "USER_INTERACTION_UNSPECIFIED", "USER_INTERACTION_NONE", "USER_INTERACTION_REQUIRED" ], "enumDescriptions": [ - "", - "", - "" + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" ], "type": "string" } @@ -1781,6 +1939,10 @@ "description": "Describes the CIS benchmark version that is applicable to a given OS and os version.", "id": "ComplianceVersion", "properties": { + "benchmarkDocument": { + "description": "The name of the document that defines this benchmark, e.g. \"CIS Container-Optimized OS\".", + "type": "string" + }, "cpeUri": { "description": "The CPE URI (https://cpe.mitre.org/specification/) this benchmark is applicable to.", "type": "string" @@ -1854,9 +2016,23 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact" + }, + "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." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -1884,6 +2060,51 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "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", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Build": { "description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Build", @@ -2058,7 +2279,7 @@ "additionalProperties": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan" }, - "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all specified images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", "readOnly": true, "type": "object" }, @@ -2147,7 +2368,7 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { "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 1000GB; builds that request more than the maximum are rejected with an error.", + "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", "type": "string" }, @@ -2225,8 +2446,8 @@ "VERIFIED" ], "enumDescriptions": [ - "Not a verifiable build. (default)", - "Verified build." + "Not a verifiable build (the default).", + "Build must be verified." ], "type": "string" }, @@ -2295,6 +2516,18 @@ "description": "A step in the build pipeline.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep", "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, "args": { "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", "items": { @@ -2317,6 +2550,12 @@ }, "type": "array" }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "id": { "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", "type": "string" @@ -2550,12 +2789,12 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Results", "properties": { "artifactManifest": { - "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.", + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "type": "string" }, "artifactTiming": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", - "description": "Time to push all non-container artifacts." + "description": "Time to push all non-container artifacts to Cloud Storage." }, "buildStepImages": { "description": "List of build step digests, in the order corresponding to build step indices.", @@ -2579,10 +2818,24 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact" + }, + "type": "array" + }, "numArtifacts": { - "description": "Number of artifacts uploaded. Only populated when artifacts are uploaded.", + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -2745,6 +2998,46 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume", @@ -2859,7 +3152,7 @@ "type": "string" }, "resourceUri": { - "description": "Output only. Resource URI for the artifact being deployed taken from the deployable field with the same name.", + "description": "Resource URI for the artifact being deployed taken from the deployable field with the same name.", "items": { "type": "string" }, @@ -2955,16 +3248,44 @@ }, "type": "object" }, + "Digest": { + "description": "Digest information.", + "id": "Digest", + "properties": { + "algo": { + "description": "`SHA1`, `SHA512` etc.", + "type": "string" + }, + "digestBytes": { + "description": "Value of the digest.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "Discovered": { "description": "Provides information about the scan status of a discovered resource.", "id": "Discovered", "properties": { + "analysisCompleted": { + "$ref": "AnalysisCompleted", + "description": "The list of analysis that were completed for a resource." + }, + "analysisError": { + "description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, "analysisStatus": { "description": "The status of discovery for the resource.", "enum": [ "ANALYSIS_STATUS_UNSPECIFIED", "PENDING", "SCANNING", + "COMPLETE", "FINISHED_SUCCESS", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" @@ -2973,6 +3294,7 @@ "Unknown", "Resource is known but no action has been taken yet.", "Resource is being analyzed.", + "Analysis has completed", "Analysis has finished successfully.", "Analysis has finished unsuccessfully, the analysis itself is in a bad state.", "The resource is known not to be supported." @@ -3170,7 +3492,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3288,6 +3610,17 @@ }, "type": "object" }, + "FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, "FileNote": { "description": "FileNote represents an SPDX File Information section: https://spdx.github.io/spdx-spec/4-file-information/", "id": "FileNote", @@ -3576,6 +3909,132 @@ }, "type": "object" }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaBuilder": { + "description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaBuilder", + "properties": { + "id": { + "description": "URI indicating the builder\u2019s identity.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaCompleteness": { + "description": "Indicates that the builder claims certain fields in this message to be complete.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaCompleteness", + "properties": { + "environment": { + "description": "If true, the builder claims that invocation.environment is complete.", + "type": "boolean" + }, + "materials": { + "description": "If true, the builder claims that materials is complete.", + "type": "boolean" + }, + "parameters": { + "description": "If true, the builder claims that invocation.parameters is complete.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaConfigSource": { + "description": "Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaConfigSource", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "Collection of cryptographic digests for the contents of the artifact specified by invocation.configSource.uri.", + "type": "object" + }, + "entryPoint": { + "description": "String identifying the entry point into the build.", + "type": "string" + }, + "uri": { + "description": "URI indicating the identity of the source of the config.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaInvocation": { + "description": "Identifies the event that kicked off the build.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaInvocation", + "properties": { + "configSource": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaConfigSource", + "description": "Describes where the config file that kicked off the build came from." + }, + "environment": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Any other builder-controlled inputs necessary for correctly evaluating the build.", + "type": "object" + }, + "parameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Collection of all external inputs that influenced the build on top of invocation.configSource.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMaterial": { + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMaterial", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "description": "Collection of cryptographic digests for the contents of this artifact.", + "type": "object" + }, + "uri": { + "description": "The method by which this artifact was referenced during the build.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMetadata": { + "description": "Other properties of the build.", + "id": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMetadata", + "properties": { + "buildFinishedOn": { + "description": "The timestamp of when the build completed.", + "format": "google-datetime", + "type": "string" + }, + "buildInvocationId": { + "description": "Identifies this particular build invocation, which can be useful for finding associated logs or other ad-hoc analysis.", + "type": "string" + }, + "buildStartedOn": { + "description": "The timestamp of when the build started.", + "format": "google-datetime", + "type": "string" + }, + "completeness": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaCompleteness", + "description": "Indicates that the builder claims certain fields in this message to be complete." + }, + "reproducible": { + "description": "If true, the builder claims that running invocation on materials will produce bit-for-bit identical output.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleDevtoolsContaineranalysisV1alpha1SourceContext": { "description": "A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.", "id": "GoogleDevtoolsContaineranalysisV1alpha1SourceContext", @@ -3664,11 +4123,15 @@ }, "provenance": { "$ref": "InTotoProvenance", - "description": "provenance is a predicate of type intotoprovenance" + "description": "Generic Grafeas provenance." }, "slsaProvenance": { "$ref": "SlsaProvenance", - "description": "slsa_provenance is a predicate of type slsaProvenance" + "description": "SLSA 0.1 provenance." + }, + "slsaProvenanceZeroTwo": { + "$ref": "SlsaProvenanceZeroTwo", + "description": "SLSA 0.2 provenance." }, "subject": { "description": "subject is the subjects of the intoto statement", @@ -3684,6 +4147,30 @@ "description": "This represents how a particular software package may be installed on a system.", "id": "Installation", "properties": { + "architecture": { + "description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture", + "X86 architecture", + "X64 architecture" + ], + "readOnly": true, + "type": "string" + }, + "cpeUri": { + "description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "readOnly": true, + "type": "string" + }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, "location": { "description": "All of the places within the filesystem versions of this package have been found.", "items": { @@ -3693,7 +4180,18 @@ }, "name": { "description": "Output only. The name of the installed package.", + "readOnly": true, "type": "string" + }, + "packageType": { + "description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "readOnly": true, + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "Output only. The version of the package.", + "readOnly": true } }, "type": "object" @@ -3754,7 +4252,7 @@ "type": "object" }, "License": { - "description": "License information: https://spdx.github.io/spdx-spec/3-package-information/#315-declared-license", + "description": "License information.", "id": "License", "properties": { "comments": { @@ -3762,7 +4260,7 @@ "type": "string" }, "expression": { - "description": "Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/", + "description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", "type": "string" } }, @@ -3845,7 +4343,7 @@ "id": "Location", "properties": { "cpeUri": { - "description": "The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", + "description": "Deprecated. The cpe_uri in [cpe format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", "type": "string" }, "path": { @@ -3854,7 +4352,7 @@ }, "version": { "$ref": "Version", - "description": "The version installed at this location." + "description": "Deprecated. The version installed at this location." } }, "type": "object" @@ -4234,6 +4732,35 @@ "description": "This represents a particular package that is distributed over various channels. e.g. glibc (aka libc6) is distributed by many, at various versions.", "id": "Package", "properties": { + "architecture": { + "description": "The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture", + "X86 architecture", + "X64 architecture" + ], + "type": "string" + }, + "cpeUri": { + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "type": "string" + }, + "description": { + "description": "The description of this package.", + "type": "string" + }, + "digest": { + "description": "Hash value, typically a file digest, that allows unique identification a specific package.", + "items": { + "$ref": "Digest" + }, + "type": "array" + }, "distribution": { "description": "The various channels by which a package is distributed.", "items": { @@ -4241,9 +4768,29 @@ }, "type": "array" }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, + "maintainer": { + "description": "A freeform text denoting the maintainer of this package.", + "type": "string" + }, "name": { "description": "The name of the package.", "type": "string" + }, + "packageType": { + "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "type": "string" + }, + "url": { + "description": "The homepage for this package.", + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "The version of the package." } }, "type": "object" @@ -4832,7 +5379,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -4954,6 +5501,44 @@ }, "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", + "properties": { + "buildConfig": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Lists the steps in the build.", + "type": "object" + }, + "buildType": { + "description": "URI indicating what type of build was performed.", + "type": "string" + }, + "builder": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaBuilder", + "description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance." + }, + "invocation": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaInvocation", + "description": "Identifies the event that kicked off the build." + }, + "materials": { + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", + "items": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMaterial" + }, + "type": "array" + }, + "metadata": { + "$ref": "GoogleDevtoolsContaineranalysisV1alpha1SlsaProvenanceZeroTwoSlsaMetadata", + "description": "Other properties of the build." + } + }, + "type": "object" + }, "SlsaRecipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "SlsaRecipe", @@ -5022,7 +5607,7 @@ }, "storageSource": { "$ref": "StorageSource", - "description": "If provided, get the source from this location in in Google Cloud Storage." + "description": "If provided, get the source from this location in Google Cloud Storage." } }, "type": "object" @@ -5097,7 +5682,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -5120,6 +5705,23 @@ }, "type": "object" }, + "TimeSpan": { + "description": "Start and end times for a build execution phase. Next ID: 3", + "id": "TimeSpan", + "properties": { + "endTime": { + "description": "End of time span.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time span.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "UpdateOperationRequest": { "description": "Request for updating an existing operation", "id": "UpdateOperationRequest", @@ -5241,6 +5843,21 @@ }, "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", + "properties": { + "name": { + "description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", + "type": "string" + }, + "path": { + "description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", + "type": "string" + } + }, + "type": "object" + }, "VulnerabilityDetails": { "description": "Used by Occurrence to point to where the vulnerability exists and how to fix it.", "id": "VulnerabilityDetails", @@ -5316,6 +5933,13 @@ "description": "The cpe_uri in [cpe format] (https://cpe.mitre.org/specification/) format. Examples include distro or storage location for vulnerable jar. This field can be used as a filter in list requests.", "type": "string" }, + "fileLocation": { + "description": "The file location at which this package was found.", + "items": { + "$ref": "FileLocation" + }, + "type": "array" + }, "package": { "description": "The package being described.", "type": "string" @@ -5336,6 +5960,17 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The full description of the CVSS for version 2." + }, + "cwe": { + "description": "A list of CWE for this vulnerability. For details, see: https://cwe.mitre.org/index.html", + "items": { + "type": "string" + }, + "type": "array" + }, "details": { "description": "All information about the package to specifically identify this vulnerability. One entry per (version range and cpe_uri) the package vulnerability has manifested in.", "items": { diff --git a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json index 8bf6786be7..7299b0e640 100644 --- a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json @@ -230,7 +230,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -333,7 +333,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -361,7 +361,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/notes/[^/]+$", "required": true, @@ -546,7 +546,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -704,7 +704,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -732,7 +732,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/occurrences/[^/]+$", "required": true, @@ -751,109 +751,11 @@ ] } } - }, - "scanConfigs": { - "methods": { - "get": { - "description": "Gets the specified scan configuration.", - "flatPath": "v1beta1/projects/{projectsId}/scanConfigs/{scanConfigsId}", - "httpMethod": "GET", - "id": "containeranalysis.projects.scanConfigs.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the scan configuration in the form of `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`.", - "location": "path", - "pattern": "^projects/[^/]+/scanConfigs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "ScanConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists scan configurations for the specified project.", - "flatPath": "v1beta1/projects/{projectsId}/scanConfigs", - "httpMethod": "GET", - "id": "containeranalysis.projects.scanConfigs.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Required. The filter expression.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "The number of scan configs to return in the list.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Token to provide to skip to a particular spot in the list.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The name of the project to list scan configurations for in the form of `projects/[PROJECT_ID]`.", - "location": "path", - "pattern": "^projects/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/scanConfigs", - "response": { - "$ref": "ListScanConfigsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "update": { - "description": "Updates the specified scan configuration.", - "flatPath": "v1beta1/projects/{projectsId}/scanConfigs/{scanConfigsId}", - "httpMethod": "PUT", - "id": "containeranalysis.projects.scanConfigs.update", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the scan configuration in the form of `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`.", - "location": "path", - "pattern": "^projects/[^/]+/scanConfigs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "request": { - "$ref": "ScanConfig" - }, - "response": { - "$ref": "ScanConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } } } } }, - "revision": "20220225", + "revision": "20230106", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -883,6 +785,19 @@ }, "type": "object" }, + "AnalysisCompleted": { + "description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", + "id": "AnalysisCompleted", + "properties": { + "analysisType": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Artifact": { "description": "Artifact describes a build product.", "id": "Artifact", @@ -1033,7 +948,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1166,6 +1081,128 @@ }, "type": "object" }, + "BuildStep": { + "description": "A step in the build pipeline. Next ID: 20", + "id": "BuildStep", + "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "entrypoint": { + "description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", + "type": "string" + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "type": "integer" + }, + "id": { + "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", + "type": "string" + }, + "name": { + "description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", + "type": "string" + }, + "pullTiming": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for pulling this build step's builder image only." + }, + "script": { + "description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build has been received and is being queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "type": "string" + }, + "timeout": { + "description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "$ref": "TimeSpan", + "description": "Output only. Stores timing information for executing this build step." + }, + "volumes": { + "description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "Volume" + }, + "type": "array" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ByProducts": { "description": "Defines an object for the byproducts field in in-toto links. The suggested fields are \"stderr\", \"stdout\", and \"return-value\".", "id": "ByProducts", @@ -1179,8 +1216,182 @@ }, "type": "object" }, + "CVSS": { + "description": "Common Vulnerability Scoring System. This message is compatible with CVSS v2 and v3. For CVSS v2 details, see https://www.first.org/cvss/v2/guide CVSS v2 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator For CVSS v3 details, see https://www.first.org/cvss/specification-document CVSS v3 calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator", + "id": "CVSS", + "properties": { + "attackComplexity": { + "description": "Defined in CVSS v3, CVSS v2", + "enum": [ + "ATTACK_COMPLEXITY_UNSPECIFIED", + "ATTACK_COMPLEXITY_LOW", + "ATTACK_COMPLEXITY_HIGH", + "ATTACK_COMPLEXITY_MEDIUM" + ], + "enumDescriptions": [ + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2" + ], + "type": "string" + }, + "attackVector": { + "description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. Defined in CVSS v3, CVSS v2", + "enum": [ + "ATTACK_VECTOR_UNSPECIFIED", + "ATTACK_VECTOR_NETWORK", + "ATTACK_VECTOR_ADJACENT", + "ATTACK_VECTOR_LOCAL", + "ATTACK_VECTOR_PHYSICAL" + ], + "enumDescriptions": [ + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3" + ], + "type": "string" + }, + "authentication": { + "description": "Defined in CVSS v2", + "enum": [ + "AUTHENTICATION_UNSPECIFIED", + "AUTHENTICATION_MULTIPLE", + "AUTHENTICATION_SINGLE", + "AUTHENTICATION_NONE" + ], + "enumDescriptions": [ + "Defined in CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" + ], + "type": "string" + }, + "availabilityImpact": { + "description": "Defined in CVSS v3, CVSS v2", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" + ], + "enumDescriptions": [ + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" + ], + "type": "string" + }, + "baseScore": { + "description": "The base score is a function of the base metric scores.", + "format": "float", + "type": "number" + }, + "confidentialityImpact": { + "description": "Defined in CVSS v3, CVSS v2", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" + ], + "enumDescriptions": [ + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" + ], + "type": "string" + }, + "exploitabilityScore": { + "format": "float", + "type": "number" + }, + "impactScore": { + "format": "float", + "type": "number" + }, + "integrityImpact": { + "description": "Defined in CVSS v3, CVSS v2", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE", + "IMPACT_PARTIAL", + "IMPACT_COMPLETE" + ], + "enumDescriptions": [ + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3, CVSS v2", + "Defined in CVSS v2", + "Defined in CVSS v2" + ], + "type": "string" + }, + "privilegesRequired": { + "description": "Defined in CVSS v3", + "enum": [ + "PRIVILEGES_REQUIRED_UNSPECIFIED", + "PRIVILEGES_REQUIRED_NONE", + "PRIVILEGES_REQUIRED_LOW", + "PRIVILEGES_REQUIRED_HIGH" + ], + "enumDescriptions": [ + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" + ], + "type": "string" + }, + "scope": { + "description": "Defined in CVSS v3", + "enum": [ + "SCOPE_UNSPECIFIED", + "SCOPE_UNCHANGED", + "SCOPE_CHANGED" + ], + "enumDescriptions": [ + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" + ], + "type": "string" + }, + "userInteraction": { + "description": "Defined in CVSS v3", + "enum": [ + "USER_INTERACTION_UNSPECIFIED", + "USER_INTERACTION_NONE", + "USER_INTERACTION_REQUIRED" + ], + "enumDescriptions": [ + "Defined in CVSS v3", + "Defined in CVSS v3", + "Defined in CVSS v3" + ], + "type": "string" + } + }, + "type": "object" + }, "CVSSv3": { - "description": "Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document", + "description": "Deprecated. Common Vulnerability Scoring System version 3. For details, see https://www.first.org/cvss/specification-document", "id": "CVSSv3", "properties": { "attackComplexity": { @@ -1437,9 +1648,23 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact" + }, + "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." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -1467,6 +1692,51 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1ArtifactsMavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "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", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Build": { "description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Build", @@ -1641,7 +1911,7 @@ "additionalProperties": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan" }, - "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all specified images. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", "readOnly": true, "type": "object" }, @@ -1730,7 +2000,7 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions", "properties": { "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 1000GB; builds that request more than the maximum are rejected with an error.", + "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", "type": "string" }, @@ -1808,8 +2078,8 @@ "VERIFIED" ], "enumDescriptions": [ - "Not a verifiable build. (default)", - "Verified build." + "Not a verifiable build (the default).", + "Build must be verified." ], "type": "string" }, @@ -1878,6 +2148,18 @@ "description": "A step in the build pipeline.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep", "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, "args": { "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", "items": { @@ -1900,6 +2182,12 @@ }, "type": "array" }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, "id": { "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", "type": "string" @@ -2133,12 +2421,12 @@ "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Results", "properties": { "artifactManifest": { - "description": "Path to the artifact manifest. Only populated when artifacts are uploaded.", + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "type": "string" }, "artifactTiming": { "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", - "description": "Time to push all non-container artifacts." + "description": "Time to push all non-container artifacts to Cloud Storage." }, "buildStepImages": { "description": "List of build step digests, in the order corresponding to build step indices.", @@ -2162,10 +2450,24 @@ }, "type": "array" }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact" + }, + "type": "array" + }, "numArtifacts": { - "description": "Number of artifacts uploaded. Only populated when artifacts are uploaded.", + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", "format": "int64", "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage" + }, + "type": "array" } }, "type": "object" @@ -2328,6 +2630,46 @@ }, "type": "object" }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "ContaineranalysisGoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume": { "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", "id": "ContaineranalysisGoogleDevtoolsCloudbuildV1Volume", @@ -2503,10 +2845,36 @@ }, "type": "object" }, + "Digest": { + "description": "Digest information.", + "id": "Digest", + "properties": { + "algo": { + "description": "`SHA1`, `SHA512` etc.", + "type": "string" + }, + "digestBytes": { + "description": "Value of the digest.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "Discovered": { "description": "Provides information about the analysis status of a discovered resource.", "id": "Discovered", "properties": { + "analysisCompleted": { + "$ref": "AnalysisCompleted" + }, + "analysisError": { + "description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, "analysisStatus": { "description": "The status of discovery for the resource.", "enum": [ @@ -2514,6 +2882,7 @@ "PENDING", "SCANNING", "FINISHED_SUCCESS", + "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ], @@ -2522,6 +2891,7 @@ "Resource is known but no action has been taken yet.", "Resource is being analyzed.", "Analysis has finished successfully.", + "Analysis has completed.", "Analysis has finished unsuccessfully, the analysis itself is in a bad state.", "The resource is known not to be supported" ], @@ -2636,7 +3006,7 @@ "type": "object" }, "DocumentNote": { - "description": "DocumentNote represents an SPDX Document Creation Infromation section: https://spdx.github.io/spdx-spec/2-document-creation-information/", + "description": "DocumentNote represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/v2.3/document-creation-information/", "id": "DocumentNote", "properties": { "dataLicence": { @@ -2651,7 +3021,7 @@ "type": "object" }, "DocumentOccurrence": { - "description": "DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/2-document-creation-information/", + "description": "DocumentOccurrence represents an SPDX Document Creation Information section: https://spdx.github.io/spdx-spec/v2.3/document-creation-information/", "id": "DocumentOccurrence", "properties": { "createTime": { @@ -2701,11 +3071,44 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "Envelope": { + "description": "MUST match https://github.com/secure-systems-lab/dsse/blob/master/envelope.proto. An authenticated message of arbitrary type.", + "id": "Envelope", + "properties": { + "payload": { + "format": "byte", + "type": "string" + }, + "payloadType": { + "type": "string" + }, + "signatures": { + "items": { + "$ref": "EnvelopeSignature" + }, + "type": "array" + } + }, + "type": "object" + }, + "EnvelopeSignature": { + "id": "EnvelopeSignature", + "properties": { + "keyid": { + "type": "string" + }, + "sig": { + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "Environment": { "description": "Defines an object for the environment field in in-toto links. The suggested fields are \"variables\", \"filesystem\", and \"workdir\".", "id": "Environment", @@ -3172,6 +3575,20 @@ "format": "float", "type": "number" }, + "cvssVersion": { + "description": "Output only. CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "effectiveSeverity": { "description": "The distro assigned severity for this vulnerability when it is available, and note provider assigned severity when distro has not yet assigned a severity for this vulnerability. When there are multiple PackageIssues for this vulnerability, they can have different effective severities because some might be provided by the distro while others are provided by the language ecosystem for a language pack. For this reason, it is advised to use the effective severity on the PackageIssue level. In the case where multiple PackageIssues have differing effective severities, this field should be the highest severity for any of the PackageIssues.", "enum": [ @@ -3323,16 +3740,51 @@ "description": "This represents how a particular software package may be installed on a system.", "id": "Installation", "properties": { + "architecture": { + "description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "readOnly": true, + "type": "string" + }, + "cpeUri": { + "description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "readOnly": true, + "type": "string" + }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, "location": { - "description": "Required. All of the places within the filesystem versions of this package have been found.", + "description": "All of the places within the filesystem versions of this package have been found.", "items": { "$ref": "Location" }, "type": "array" }, "name": { - "description": "Output only. The name of the installed package.", + "description": "Required. Output only. The name of the installed package.", + "readOnly": true, "type": "string" + }, + "packageType": { + "description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "readOnly": true, + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "Output only. The version of the package.", + "readOnly": true } }, "type": "object" @@ -3407,7 +3859,7 @@ "type": "object" }, "License": { - "description": "License information: https://spdx.github.io/spdx-spec/3-package-information/#315-declared-license", + "description": "License information.", "id": "License", "properties": { "comments": { @@ -3415,7 +3867,7 @@ "type": "string" }, "expression": { - "description": "Expression: https://spdx.github.io/spdx-spec/appendix-IV-SPDX-license-expressions/", + "description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", "type": "string" } }, @@ -3511,30 +3963,12 @@ }, "type": "object" }, - "ListScanConfigsResponse": { - "description": "Response for listing scan configurations.", - "id": "ListScanConfigsResponse", - "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 results.", - "type": "string" - }, - "scanConfigs": { - "description": "The scan configurations requested.", - "items": { - "$ref": "ScanConfig" - }, - "type": "array" - } - }, - "type": "object" - }, "Location": { "description": "An occurrence of a particular package installation found within a system's filesystem. E.g., glibc was found in `/var/lib/dpkg/status`.", "id": "Location", "properties": { "cpeUri": { - "description": "Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", + "description": "Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", "type": "string" }, "path": { @@ -3543,7 +3977,7 @@ }, "version": { "$ref": "Version", - "description": "The version installed at this location." + "description": "Deprecated. The version installed at this location." } }, "type": "object" @@ -3707,6 +4141,10 @@ "$ref": "GrafeasV1beta1DiscoveryDetails", "description": "Describes when a resource was discovered." }, + "envelope": { + "$ref": "Envelope", + "description": "https://github.com/secure-systems-lab/dsse" + }, "installation": { "$ref": "GrafeasV1beta1PackageDetails", "description": "Describes the installation of a package on the linked resource." @@ -3794,9 +4232,38 @@ "type": "object" }, "Package": { - "description": "This represents a particular package that is distributed over various channels. E.g., glibc (aka libc6) is distributed by many, at various versions.", + "description": "Package represents a particular package version.", "id": "Package", "properties": { + "architecture": { + "description": "The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "type": "string" + }, + "cpeUri": { + "description": "The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "type": "string" + }, + "description": { + "description": "The description of this package.", + "type": "string" + }, + "digest": { + "description": "Hash value, typically a file digest, that allows unique identification a specific package.", + "items": { + "$ref": "Digest" + }, + "type": "array" + }, "distribution": { "description": "The various channels by which a package is distributed.", "items": { @@ -3804,9 +4271,29 @@ }, "type": "array" }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, + "maintainer": { + "description": "A freeform text denoting the maintainer of this package.", + "type": "string" + }, "name": { "description": "Required. Immutable. The name of the package.", "type": "string" + }, + "packageType": { + "description": "The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "type": "string" + }, + "url": { + "description": "The homepage for this package.", + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "The version of the package." } }, "type": "object" @@ -4005,7 +4492,7 @@ "type": "string" }, "pgpKeyId": { - "description": "The cryptographic fingerprint of the key used to generate the signature, as output by, e.g. `gpg --list-keys`. This should be the version 4, full 160-bit fingerprint, expressed as a 40 character hexidecimal string. See https://tools.ietf.org/html/rfc4880#section-12.2 for details. Implementations may choose to acknowledge \"LONG\", \"SHORT\", or other abbreviated key IDs, but only the full fingerprint is guaranteed to work. In gpg, the full fingerprint can be retrieved from the `fpr` field returned when calling --list-keys with --with-colons. For example: ``` gpg --with-colons --with-fingerprint --force-v4-certs \\ --list-keys attester@example.com tru::1:1513631572:0:3:1:5 pub:...... fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: ``` Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`.", + "description": "The cryptographic fingerprint of the key used to generate the signature, as output by, e.g. `gpg --list-keys`. This should be the version 4, full 160-bit fingerprint, expressed as a 40 character hexadecimal string. See https://tools.ietf.org/html/rfc4880#section-12.2 for details. Implementations may choose to acknowledge \"LONG\", \"SHORT\", or other abbreviated key IDs, but only the full fingerprint is guaranteed to work. In gpg, the full fingerprint can be retrieved from the `fpr` field returned when calling --list-keys with --with-colons. For example: ``` gpg --with-colons --with-fingerprint --force-v4-certs \\ --list-keys attester@example.com tru::1:1513631572:0:3:1:5 pub:...... fpr:::::::::24FF6481B76AC91E66A00AC657A93A81EF3AE6FB: ``` Above, the fingerprint is `24FF6481B76AC91E66A00AC657A93A81EF3AE6FB`.", "type": "string" }, "signature": { @@ -4322,42 +4809,13 @@ }, "type": "object" }, - "ScanConfig": { - "description": "A scan configuration specifies whether Cloud components in a project have a particular type of analysis being run. For example, it can configure whether vulnerability scanning is being done on Docker images or not.", - "id": "ScanConfig", - "properties": { - "createTime": { - "description": "Output only. The time this scan config was created.", - "format": "google-datetime", - "type": "string" - }, - "description": { - "description": "Output only. A human-readable description of what the scan configuration does.", - "type": "string" - }, - "enabled": { - "description": "Whether the scan is enabled.", - "type": "boolean" - }, - "name": { - "description": "Output only. The name of the scan configuration in the form of `projects/[PROJECT_ID]/scanConfigs/[SCAN_CONFIG_ID]`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The time this scan config was last updated.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -4488,7 +4946,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -4511,6 +4969,23 @@ }, "type": "object" }, + "TimeSpan": { + "description": "Start and end times for a build execution phase. Next ID: 3", + "id": "TimeSpan", + "properties": { + "endTime": { + "description": "End of time span.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time span.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Version": { "description": "Version contains structured information about the version of a package.", "id": "Version", @@ -4551,6 +5026,21 @@ }, "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", + "properties": { + "name": { + "description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", + "type": "string" + }, + "path": { + "description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", + "type": "string" + } + }, + "type": "object" + }, "Vulnerability": { "description": "Vulnerability provides metadata about a security vulnerability in a Note.", "id": "Vulnerability", @@ -4560,9 +5050,34 @@ "format": "float", "type": "number" }, + "cvssV2": { + "$ref": "CVSS", + "description": "The full description of the CVSS for version 2." + }, "cvssV3": { "$ref": "CVSSv3", - "description": "The full description of the CVSSv3." + "description": "The full description of the CVSS for version 3." + }, + "cvssVersion": { + "description": "CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "cwe": { + "description": "A list of CWE for this vulnerability. For details, see: https://cwe.mitre.org/index.html", + "items": { + "type": "string" + }, + "type": "array" }, "details": { "description": "All information about the package to specifically identify this vulnerability. One entry per (version range and cpe_uri) the package vulnerability has manifested in.", diff --git a/etc/api/content/v2.1/content-api.json b/etc/api/content/v2.1/content-api.json index 4dac64840d..62864d255c 100644 --- a/etc/api/content/v2.1/content-api.json +++ b/etc/api/content/v2.1/content-api.json @@ -1103,7 +1103,7 @@ "buyongoogleprograms": { "methods": { "activate": { - "description": "Reactivates the BoG program in your Merchant Center account. Moves the program to the active state when allowed, e.g. when paused. Important: This method is only whitelisted for selected merchants.", + "description": "Reactivates the BoG program in your Merchant Center account. Moves the program to the active state when allowed, for example, when paused. This method is only available to selected merchants.", "flatPath": "{merchantId}/buyongoogleprograms/{regionCode}/activate", "httpMethod": "POST", "id": "content.buyongoogleprograms.activate", @@ -1240,7 +1240,7 @@ ] }, "pause": { - "description": "Pauses the BoG program in your Merchant Center account. Important: This method is only whitelisted for selected merchants.", + "description": "Pauses the BoG program in your Merchant Center account. This method is only available to selected merchants.", "flatPath": "{merchantId}/buyongoogleprograms/{regionCode}/pause", "httpMethod": "POST", "id": "content.buyongoogleprograms.pause", @@ -1272,7 +1272,7 @@ ] }, "requestreview": { - "description": "Requests review and then activates the BoG program in your Merchant Center account for the first time. Moves the program to the REVIEW_PENDING state. Important: This method is only whitelisted for selected merchants.", + "description": "Requests review and then activates the BoG program in your Merchant Center account for the first time. Moves the program to the REVIEW_PENDING state. This method is only available to selected merchants.", "flatPath": "{merchantId}/buyongoogleprograms/{regionCode}/requestreview", "httpMethod": "POST", "id": "content.buyongoogleprograms.requestreview", @@ -1666,7 +1666,7 @@ ] }, "fetchnow": { - "description": "Invokes a fetch for the datafeed in your Merchant Center account. If you need to call this method more than once per day, we recommend you use the Products service to update your product data.", + "description": "Invokes a fetch for the datafeed in your Merchant Center account. If you need to call this method more than once per day, we recommend you use the [Products service](https://developers.google.com/shopping-content/reference/rest/v2.1/products) to update your product data.", "flatPath": "{merchantId}/datafeeds/{datafeedId}/fetchNow", "httpMethod": "POST", "id": "content.datafeeds.fetchnow", @@ -1864,7 +1864,7 @@ ], "parameters": { "country": { - "description": "The country for which to get the datafeed status. If this parameter is provided then language must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", + "description": "Deprecated. Use `feedLabel` instead. The country to get the datafeed status for. If this parameter is provided then `language` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", "location": "query", "type": "string" }, @@ -1875,8 +1875,13 @@ "required": true, "type": "string" }, + "feedLabel": { + "description": "The feed label to get the datafeed status for. If this parameter is provided then `language` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", + "location": "query", + "type": "string" + }, "language": { - "description": "The language for which to get the datafeed status. If this parameter is provided then country must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", + "description": "The language to get the datafeed status for. If this parameter is provided then `country` must also be provided. Note that this parameter is required for feeds targeting multiple countries and languages, since a feed may have a different status for each target.", "location": "query", "type": "string" }, @@ -1937,7 +1942,7 @@ "freelistingsprogram": { "methods": { "get": { - "description": "Retrieves the status and review eligibility for the free listing program.", + "description": "Retrieves the status and review eligibility for the free listing program. Returns errors and warnings if they require action to resolve, will become disapprovals, or impact impressions. Use `accountstatuses` to view all issues for an account.", "flatPath": "{merchantId}/freelistingsprogram", "httpMethod": "GET", "id": "content.freelistingsprogram.get", @@ -1962,7 +1967,7 @@ ] }, "requestreview": { - "description": "Requests a review for Free Listings program in the provided region. Important: This method is only whitelisted for selected merchants.", + "description": "Requests a review of free listings in a specific region. This method is only available to selected merchants.", "flatPath": "{merchantId}/freelistingsprogram/requestreview", "httpMethod": "POST", "id": "content.freelistingsprogram.requestreview", @@ -3993,6 +3998,99 @@ } } }, + "productdeliverytime": { + "methods": { + "create": { + "description": "Creates or updates the delivery time of a product.", + "flatPath": "{merchantId}/productdeliverytime", + "httpMethod": "POST", + "id": "content.productdeliverytime.create", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/productdeliverytime", + "request": { + "$ref": "ProductDeliveryTime" + }, + "response": { + "$ref": "ProductDeliveryTime" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "delete": { + "description": "Deletes the delivery time of a product.", + "flatPath": "{merchantId}/productdeliverytime/{productId}", + "httpMethod": "DELETE", + "id": "content.productdeliverytime.delete", + "parameterOrder": [ + "merchantId", + "productId" + ], + "parameters": { + "merchantId": { + "description": "Required. The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/productdeliverytime/{productId}", + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "description": "Gets `productDeliveryTime` by `productId`.", + "flatPath": "{merchantId}/productdeliverytime/{productId}", + "httpMethod": "GET", + "id": "content.productdeliverytime.get", + "parameterOrder": [ + "merchantId", + "productId" + ], + "parameters": { + "merchantId": { + "description": "Required. The Google merchant ID of the account that contains the product. This account cannot be a multi-client account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/productdeliverytime/{productId}", + "response": { + "$ref": "ProductDeliveryTime" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "products": { "methods": { "custombatch": { @@ -4174,7 +4272,7 @@ "type": "string" }, "updateMask": { - "description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged.", + "description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. *You must specify the update mask to delete attributes.* Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4362,7 +4460,7 @@ "promotions": { "methods": { "create": { - "description": "Inserts a promotion for your Merchant Center account. If the promotion already exists, then it will update the promotion instead.", + "description": "Inserts a promotion for your Merchant Center account. If the promotion already exists, then it updates the promotion instead. To [end or delete] (https://developers.google.com/shopping-content/guides/promotions#end_a_promotion) a promotion update the time period of the promotion to a time that has already passed.", "flatPath": "{merchantId}/promotions", "httpMethod": "POST", "id": "content.promotions.create", @@ -4480,6 +4578,46 @@ } } }, + "quotas": { + "methods": { + "list": { + "description": "Lists the daily call quota and usage per method for your Merchant Center account.", + "flatPath": "{merchantId}/quotas", + "httpMethod": "GET", + "id": "content.quotas.list", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "Required. The ID of the account that has quota. This account must be an admin.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of quotas to return in the response, used for paging. Defaults to 500; values above 1000 will be coerced to 1000.", + "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" + } + }, + "path": "{merchantId}/quotas", + "response": { + "$ref": "ListMethodQuotasResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, "regionalinventory": { "methods": { "custombatch": { @@ -4501,7 +4639,7 @@ ] }, "insert": { - "description": "Update the regional inventory of a product in your Merchant Center account. If a regional inventory with the same region ID already exists, this method updates that entry.", + "description": "Updates the regional inventory of a product in your Merchant Center account. If a regional inventory with the same region ID already exists, this method updates that entry.", "flatPath": "{merchantId}/products/{productId}/regionalinventory", "httpMethod": "POST", "id": "content.regionalinventory.insert", @@ -5763,7 +5901,7 @@ "shoppingadsprogram": { "methods": { "get": { - "description": "Retrieves the status and review eligibility for the Shopping Ads program.", + "description": "Retrieves the status and review eligibility for the Shopping Ads program. Returns errors and warnings if they require action to resolve, will become disapprovals, or impact impressions. Use `accountstatuses` to view all issues for an account.", "flatPath": "{merchantId}/shoppingadsprogram", "httpMethod": "GET", "id": "content.shoppingadsprogram.get", @@ -5788,7 +5926,7 @@ ] }, "requestreview": { - "description": "Requests a review for Shopping Ads program in the provided country.", + "description": "Requests a review of Shopping ads in a specific region. This method is only available to selected merchants.", "flatPath": "{merchantId}/shoppingadsprogram/requestreview", "httpMethod": "POST", "id": "content.shoppingadsprogram.requestreview", @@ -5815,7 +5953,7 @@ } } }, - "revision": "20220303", + "revision": "20230112", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { @@ -5828,7 +5966,7 @@ "type": "string" }, "adsLinks": { - "description": "Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.", + "description": "Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the Google Ads API. To delete an active link, or to cancel a link request, remove it from the list.", "items": { "$ref": "AccountAdsLink" }, @@ -5864,7 +6002,7 @@ "description": "The Business Profile which is linked or in the process of being linked with the Merchant Center account." }, "id": { - "description": "Required for update. Merchant Center account ID.", + "description": "Required. 64-bit Merchant Center account ID.", "format": "uint64", "type": "string" }, @@ -5929,7 +6067,7 @@ "type": "string" }, "streetAddress": { - "description": "Street-level part of the address.", + "description": "Street-level part of the address. Use `\\n` to add a second line.", "type": "string" } }, @@ -5974,7 +6112,7 @@ "properties": { "address": { "$ref": "AccountAddress", - "description": "The address of the business." + "description": "The address of the business. Use `\\n` to add a second address line." }, "customerService": { "$ref": "AccountCustomerService", @@ -6483,6 +6621,10 @@ "paymentsManager": { "description": "Whether user can manage payment settings.", "type": "boolean" + }, + "reportingManager": { + "description": "Whether user is a reporting manager.", + "type": "boolean" } }, "type": "object" @@ -6652,7 +6794,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsCustomBatchResponseEntry`\"", @@ -6847,7 +6989,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." } }, "type": "object" @@ -6947,7 +7089,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accounttaxCustomBatchResponseEntry`\"", @@ -7002,7 +7144,7 @@ "type": "string" }, "streetAddress": { - "description": "Street-level part of the address.", + "description": "Street-level part of the address. Use `\\n` to add a second line.", "type": "string" } }, @@ -7022,6 +7164,117 @@ }, "type": "object" }, + "BestSellers": { + "description": "Fields related to the [Best Sellers reports](https://support.google.com/merchants/answer/9488679).", + "id": "BestSellers", + "properties": { + "categoryId": { + "description": "Google product category ID to calculate the ranking for, represented in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436). If a `WHERE` condition on `best_sellers.category_id` is not specified in the query, rankings for all top-level categories are returned.", + "format": "int64", + "type": "string" + }, + "countryCode": { + "description": "Country where the ranking is calculated. A `WHERE` condition on `best_sellers.country_code` is required in the query.", + "type": "string" + }, + "previousRank": { + "description": "Popularity rank in the previous week or month.", + "format": "int64", + "type": "string" + }, + "previousRelativeDemand": { + "description": "Estimated demand in relation to the item with the highest popularity rank in the same category and country in the previous week or month.", + "enum": [ + "RELATIVE_DEMAND_UNSPECIFIED", + "VERY_LOW", + "LOW", + "MEDIUM", + "HIGH", + "VERY_HIGH" + ], + "enumDescriptions": [ + "Relative demand is unknown.", + "Demand is 0-5% of the demand of the highest ranked product clusters or brands.", + "Demand is 6-10% of the demand of the highest ranked product clusters or brands.", + "Demand is 11-20% of the demand of the highest ranked product clusters or brands.", + "Demand is 21-50% of the demand of the highest ranked product clusters or brands.", + "Demand is 51-100% of the demand of the highest ranked product clusters or brands." + ], + "type": "string" + }, + "rank": { + "description": "Popularity on Shopping ads and free listings, in the selected category and country, based on the estimated number of units sold.", + "format": "int64", + "type": "string" + }, + "relativeDemand": { + "description": "Estimated demand in relation to the item with the highest popularity rank in the same category and country.", + "enum": [ + "RELATIVE_DEMAND_UNSPECIFIED", + "VERY_LOW", + "LOW", + "MEDIUM", + "HIGH", + "VERY_HIGH" + ], + "enumDescriptions": [ + "Relative demand is unknown.", + "Demand is 0-5% of the demand of the highest ranked product clusters or brands.", + "Demand is 6-10% of the demand of the highest ranked product clusters or brands.", + "Demand is 11-20% of the demand of the highest ranked product clusters or brands.", + "Demand is 21-50% of the demand of the highest ranked product clusters or brands.", + "Demand is 51-100% of the demand of the highest ranked product clusters or brands." + ], + "type": "string" + }, + "relativeDemandChange": { + "description": "Change in the estimated demand. Whether it rose, sank or remained flat.", + "enum": [ + "RELATIVE_DEMAND_CHANGE_TYPE_UNSPECIFIED", + "SINKER", + "FLAT", + "RISER" + ], + "enumDescriptions": [ + "Relative demand change is unknown.", + "Relative demand is lower than previous time period.", + "Relative demand is equal to previous time period.", + "Relative demand is higher than the previous time period." + ], + "type": "string" + }, + "reportDate": { + "$ref": "Date", + "description": "Report date. The value of this field can only be one of the following: * The first day of the week (Monday) for weekly reports. * The first day of the month for monthly reports. If a `WHERE` condition on `best_sellers.report_date` is not specified in the query, the latest available weekly or monthly report is returned." + }, + "reportGranularity": { + "description": "Granularity of the report. The ranking can be done over a week or a month timeframe. A `WHERE` condition on `best_sellers.report_granularity` is required in the query.", + "enum": [ + "REPORT_GRANULARITY_UNSPECIFIED", + "WEEKLY", + "MONTHLY" + ], + "enumDescriptions": [ + "Report granularity is unknown.", + "Ranking is done over a week timeframe.", + "Ranking is done over a month timeframe." + ], + "type": "string" + } + }, + "type": "object" + }, + "Brand": { + "description": "Brand fields. Values are only set for fields requested explicitly in the request's search query.", + "id": "Brand", + "properties": { + "name": { + "description": "Name of the brand.", + "type": "string" + } + }, + "type": "object" + }, "BusinessDayConfig": { "id": "BusinessDayConfig", "properties": { @@ -7317,7 +7570,7 @@ "type": "array" }, "creationDate": { - "description": "Date on which the collection has been created in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, e.g. \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", + "description": "Date on which the collection has been created in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", "type": "string" }, "destinationStatuses": { @@ -7332,7 +7585,7 @@ "type": "string" }, "lastUpdateDate": { - "description": "Date on which the collection has been last updated in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, e.g. \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", + "description": "Date on which the collection has been last updated in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", "type": "string" } }, @@ -7342,12 +7595,33 @@ "description": "Destination status message.", "id": "CollectionStatusDestinationStatus", "properties": { + "approvedCountries": { + "description": "Country codes (ISO 3166-1 alpha-2) where the collection is approved.", + "items": { + "type": "string" + }, + "type": "array" + }, "destination": { "description": "The name of the destination", "type": "string" }, + "disapprovedCountries": { + "description": "Country codes (ISO 3166-1 alpha-2) where the collection is disapproved.", + "items": { + "type": "string" + }, + "type": "array" + }, + "pendingCountries": { + "description": "Country codes (ISO 3166-1 alpha-2) where the collection is pending approval.", + "items": { + "type": "string" + }, + "type": "array" + }, "status": { - "description": "The status for the specified destination.", + "description": "The status for the specified destination in the collections target country.", "type": "string" } }, @@ -7357,6 +7631,13 @@ "description": "Issue associated with the collection.", "id": "CollectionStatusItemLevelIssue", "properties": { + "applicableCountries": { + "description": "Country codes (ISO 3166-1 alpha-2) where issue applies to the offer.", + "items": { + "type": "string" + }, + "type": "array" + }, "attributeName": { "description": "The attribute's name, if the issue is caused by a single attribute.", "type": "string" @@ -7620,6 +7901,10 @@ }, "type": "array" }, + "feedLabel": { + "description": "The feed label status is reported for.", + "type": "string" + }, "itemsTotal": { "description": "The number of items in the feed that were processed.", "format": "uint64", @@ -7707,16 +7992,20 @@ "id": "DatafeedTarget", "properties": { "country": { - "description": "The country where the items in the feed will be included in the search index, represented as a CLDR territory code.", + "description": "Deprecated. Use `feedLabel` instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.", "type": "string" }, "excludedDestinations": { - "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center).", + "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", "items": { "type": "string" }, "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.", + "type": "string" + }, "includedDestinations": { "description": "The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.", "items": { @@ -7727,6 +8016,13 @@ "language": { "description": "The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for `targets[].country`.", "type": "string" + }, + "targetCountries": { + "description": "The countries where the items may be displayed. Represented as a CLDR territory code. Will be ignored for \"product inventory\" feeds.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -7806,7 +8102,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." } }, "type": "object" @@ -7864,7 +8160,7 @@ "type": "integer" }, "country": { - "description": "The country for which to get the datafeed status. If this parameter is provided then language must also be provided. Note that for multi-target datafeeds this parameter is required.", + "description": "Deprecated. Use `feedLabel` instead. The country to get the datafeed status for. If this parameter is provided, then `language` must also be provided. Note that for multi-target datafeeds this parameter is required.", "type": "string" }, "datafeedId": { @@ -7872,8 +8168,12 @@ "format": "uint64", "type": "string" }, + "feedLabel": { + "description": "The feed label to get the datafeed status for. If this parameter is provided, then `language` must also be provided. Note that for multi-target datafeeds this parameter is required.", + "type": "string" + }, "language": { - "description": "The language for which to get the datafeed status. If this parameter is provided then country must also be provided. Note that for multi-target datafeeds this parameter is required.", + "description": "The language to get the datafeed status for. If this parameter is provided then `country` must also be provided. Note that for multi-target datafeeds this parameter is required.", "type": "string" }, "merchantId": { @@ -7920,7 +8220,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." } }, "type": "object" @@ -7968,36 +8268,36 @@ "type": "object" }, "DateTime": { - "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", + "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", "id": "DateTime", "properties": { "day": { - "description": "Required. Day of month. Must be from 1 to 31 and valid for the year and month.", + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", "format": "int32", "type": "integer" }, "hours": { - "description": "Required. 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.", + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", "format": "int32", "type": "integer" }, "minutes": { - "description": "Required. Minutes of hour of day. Must be from 0 to 59.", + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", "format": "int32", "type": "integer" }, "month": { - "description": "Required. Month of year. Must be from 1 to 12.", + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", "format": "int32", "type": "integer" }, "nanos": { - "description": "Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", "format": "int32", "type": "integer" }, "seconds": { - "description": "Required. 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.", + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", "format": "int32", "type": "integer" }, @@ -8018,6 +8318,40 @@ }, "type": "object" }, + "DeliveryArea": { + "description": "A delivery area for the product. Only one of `countryCode` or `postalCodeRange` must be set.", + "id": "DeliveryArea", + "properties": { + "countryCode": { + "description": "Required. The country that the product can be delivered to. Submit a [unicode CLDR region](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) such as `US` or `CH`.", + "type": "string" + }, + "postalCodeRange": { + "$ref": "DeliveryAreaPostalCodeRange", + "description": "A postal code, postal code range or postal code prefix that defines this area. Limited to US and AUS." + }, + "regionCode": { + "description": "A state, territory, or prefecture. This is supported for the United States, Australia, and Japan. Provide a subdivision code from the ISO 3166-2 code tables ([US](https://en.wikipedia.org/wiki/ISO_3166-2:US), [AU](https://en.wikipedia.org/wiki/ISO_3166-2:AU), or [JP](https://en.wikipedia.org/wiki/ISO_3166-2:JP)) without country prefix (for example, `\"NY\"`, `\"NSW\"`, `\"03\"`).", + "type": "string" + } + }, + "type": "object" + }, + "DeliveryAreaPostalCodeRange": { + "description": "A range of postal codes that defines the delivery area. Only set `firstPostalCode` when specifying a single postal code.", + "id": "DeliveryAreaPostalCodeRange", + "properties": { + "firstPostalCode": { + "description": "Required. A postal code or a pattern of the form prefix* denoting the inclusive lower bound of the range defining the area. Examples values: `\"94108\"`, `\"9410*\"`, `\"9*\"`.", + "type": "string" + }, + "lastPostalCode": { + "description": "A postal code or a pattern of the form prefix* denoting the inclusive upper bound of the range defining the area (for example [070* - 078*] results in the range [07000 - 07899]). It must have the same length as `firstPostalCode`: if `firstPostalCode` is a postal code then `lastPostalCode` must be a postal code too; if firstPostalCode is a pattern then `lastPostalCode` must be a pattern with the same prefix length. Ignored if not set, then the area is defined as being all the postal codes matching `firstPostalCode`.", + "type": "string" + } + }, + "type": "object" + }, "DeliveryTime": { "id": "DeliveryTime", "properties": { @@ -8132,7 +8466,7 @@ "id": "FreeListingsProgramStatus", "properties": { "globalState": { - "description": "State of the program, It is set to enabled if there are offers for at least one region.", + "description": "State of the program. `ENABLED` if there are offers for at least one region.", "enum": [ "PROGRAM_STATE_UNSPECIFIED", "NOT_ENABLED", @@ -8140,9 +8474,9 @@ "ENABLED" ], "enumDescriptions": [ - "State is not known.", + "State is unknown.", "Program is not enabled for any country.", - "Offers are not uploaded targeting even a single country for this program.", + "No products have been uploaded for any region. Upload products to Merchant Center.", "Program is enabled and offers are uploaded for at least one country." ], "type": "string" @@ -8162,7 +8496,7 @@ "id": "FreeListingsProgramStatusRegionStatus", "properties": { "disapprovalDate": { - "description": "Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in ISO 8601 format: YYYY-MM-DD", + "description": "Date by which eligibilityStatus will go from `WARNING` to `DISAPPROVED`. Only visible when your eligibilityStatus is WARNING. In [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DD`.", "type": "string" }, "eligibilityStatus": { @@ -8181,14 +8515,14 @@ "If the account has no issues and review is completed successfully.", "There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", "If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", - "Account is under review. Deprecated: This state is not created.", + "Account is under review.", "Account is waiting for review to start.", "Program is currently onboarding. Upload valid offers to complete onboarding." ], "type": "string" }, "onboardingIssues": { - "description": "These issues must be fixed to become eligible for the review.", + "description": "Issues that must be fixed to be eligible for review.", "items": { "type": "string" }, @@ -8202,14 +8536,14 @@ "type": "array" }, "reviewEligibilityStatus": { - "description": "If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.", + "description": "If a program is eligible for review in a specific region. Only visible if `eligibilityStatus` is `DISAPPROVED`.", "enum": [ "REVIEW_ELIGIBILITY_UNSPECIFIED", "ELIGIBLE", "INELIGIBLE" ], "enumDescriptions": [ - "Review eligibility reason state is unknown.", + "Review eligibility state is unknown.", "Account is eligible for review for a specified region code.", "Account is not eligible for review for a specified region code." ], @@ -8223,7 +8557,10 @@ "NOT_ENOUGH_OFFERS", "IN_COOLDOWN_PERIOD", "ALREADY_UNDER_REVIEW", - "NO_REVIEW_REQUIRED" + "NO_REVIEW_REQUIRED", + "WILL_BE_REVIEWED_AUTOMATICALLY", + "IS_RETIRED", + "ALREADY_REVIEWED" ], "enumDescriptions": [ "Requesting a review from Google is not possible.", @@ -8231,20 +8568,23 @@ "Not enough offers uploaded for this country.", "Cooldown period applies. Wait until cooldown period ends.", "Account is already under review.", - "No issues available to review." + "No issues available to review.", + "Account will be automatically reviewed at the end of the grace period.", + "Account is retired. Should not appear in MC.", + "Account was already reviewd." ], "type": "string" }, "reviewIneligibilityReasonDescription": { - "description": "Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.", + "description": "Reason a program in a specific region isn\u2019t eligible for review. Only visible if `reviewEligibilityStatus` is `INELIGIBLE`.", "type": "string" }, "reviewIneligibilityReasonDetails": { "$ref": "FreeListingsProgramStatusReviewIneligibilityReasonDetails", - "description": "This contains additional information specific to review ineligibility reasons. If review is ineligible because of `IN_COOLDOWN_PERIOD`, it will contain timestamp for cooldown period." + "description": "Additional information for ineligibility. If `reviewIneligibilityReason` is `IN_COOLDOWN_PERIOD`, a timestamp for the end of the cooldown period is provided." }, "reviewIssues": { - "description": "These issues will be evaluated in review process. Fix all the issues before requesting the review.", + "description": "Issues evaluated in the review process. Fix all issues before requesting a review.", "items": { "type": "string" }, @@ -8961,6 +9301,24 @@ }, "type": "object" }, + "ListMethodQuotasResponse": { + "description": "Response message for the ListMethodQuotas method.", + "id": "ListMethodQuotasResponse", + "properties": { + "methodQuotas": { + "description": "The current quota usage and limits per each method.", + "items": { + "$ref": "MethodQuota" + }, + "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" + }, "ListRegionsResponse": { "description": "Response message for the `ListRegions` method.", "id": "ListRegionsResponse", @@ -9055,6 +9413,13 @@ "description": "Availability of the product. For accepted attribute values, see the local product inventory feed specification.", "type": "string" }, + "customAttributes": { + "description": "A list of custom (merchant-provided) attributes. Can also be used to submit any attribute of the feed specification in its generic form, for example, `{ \"name\": \"size type\", \"value\": \"regular\" }`.", + "items": { + "$ref": "CustomAttribute" + }, + "type": "array" + }, "instoreProductLocation": { "description": "In-store product location.", "type": "string" @@ -9165,7 +9530,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#localinventoryCustomBatchResponseEntry`\"", @@ -9315,17 +9680,38 @@ }, "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.", + "id": "MethodQuota", + "properties": { + "method": { + "description": "The method name, for example `products.list`. Method name does not contain version because quota can be shared between different API versions of the same method.", + "type": "string" + }, + "quotaLimit": { + "description": "The current quota limit per day, meaning the maximum number of calls for the method.", + "format": "int64", + "type": "string" + }, + "quotaUsage": { + "description": "The current quota usage, meaning the number of calls already made to the method.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Metrics": { "description": "Performance metrics. Values are only set for metrics requested explicitly in the request's search query.", "id": "Metrics", "properties": { "aos": { - "description": "Average order size - the average number of items in an order. **This metric cannot be segmented by product dimensions.**", + "description": "Average order size - the average number of items in an order. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "double", "type": "number" }, "aovMicros": { - "description": "Average order value - the average value (total price of items) of all placed orders. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by product dimensions.**", + "description": "Average order value in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) - the average value (total price of items) of all placed orders. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "double", "type": "number" }, @@ -9334,13 +9720,28 @@ "format": "int64", "type": "string" }, + "conversionRate": { + "description": "Number of conversions divided by the number of clicks, reported on the impression date. The metric is currently available only for the FREE_PRODUCT_LISTING program.", + "format": "double", + "type": "number" + }, + "conversionValueMicros": { + "description": "Value of conversions in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) attributed to the product, reported on the conversion date. The metric is currently available only for the FREE_PRODUCT_LISTING program. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", + "format": "int64", + "type": "string" + }, + "conversions": { + "description": "Number of conversions attributed to the product, reported on the conversion date. Depending on the attribution model, a conversion might be distributed across multiple clicks, where each click gets its own credit assigned. This metric is a sum of all such credits. The metric is currently available only for the FREE_PRODUCT_LISTING program.", + "format": "double", + "type": "number" + }, "ctr": { "description": "Click-through rate - the number of clicks merchant's products receive (clicks) divided by the number of times the products are shown (impressions).", "format": "double", "type": "number" }, "daysToShip": { - "description": "Average number of days between an order being placed and the order being fully shipped, reported on the last shipment date. **This metric cannot be segmented by product dimensions.**", + "description": "Average number of days between an order being placed and the order being fully shipped, reported on the last shipment date. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "double", "type": "number" }, @@ -9350,72 +9751,72 @@ "type": "string" }, "itemDaysToShip": { - "description": "Average number of days between an item being ordered and the item being", + "description": "Average number of days between an item being ordered and the item being **This metric cannot be segmented by customer_country_code.**", "format": "double", "type": "number" }, "itemFillRate": { - "description": "Percentage of shipped items in relation to all finalized items (shipped or rejected by the merchant; unshipped items are not taken into account), reported on the order date. Item fill rate is lowered by merchant rejections.", + "description": "Percentage of shipped items in relation to all finalized items (shipped or rejected by the merchant; unshipped items are not taken into account), reported on the order date. Item fill rate is lowered by merchant rejections. **This metric cannot be segmented by customer_country_code.**", "format": "double", "type": "number" }, "orderedItemSalesMicros": { - "description": "Total price of ordered items. Excludes shipping, taxes (US only), and customer cancellations that happened within 30 minutes of placing the order. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", + "description": "Total price of ordered items in micros (1 millionth of a standard unit, 1 USD = 1000000 micros). Excludes shipping, taxes (US only), and customer cancellations that happened within 30 minutes of placing the order. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "orderedItems": { - "description": "Number of ordered items. Excludes customer cancellations that happened within 30 minutes of placing the order.", + "description": "Number of ordered items. Excludes customer cancellations that happened within 30 minutes of placing the order. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "orders": { - "description": "Number of placed orders. Excludes customer cancellations that happened within 30 minutes of placing the order. **This metric cannot be segmented by product dimensions.**", + "description": "Number of placed orders. Excludes customer cancellations that happened within 30 minutes of placing the order. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "int64", "type": "string" }, "rejectedItems": { - "description": "Number of ordered items canceled by the merchant, reported on the order date.", + "description": "Number of ordered items canceled by the merchant, reported on the order date. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "returnRate": { - "description": "Total price of returned items divided by the total price of shipped items, reported on the order date. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", + "description": "Total price of returned items divided by the total price of shipped items, reported on the order date. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", "format": "double", "type": "number" }, "returnedItems": { - "description": "Number of ordered items sent back for return, reported on the date when the merchant accepted the return.", + "description": "Number of ordered items sent back for return, reported on the date when the merchant accepted the return. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "returnsMicros": { - "description": "Total price of ordered items sent back for return, reported on the date when the merchant accepted the return. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", + "description": "Total price of ordered items sent back for return in micros (1 millionth of a standard unit, 1 USD = 1000000 micros), reported on the date when the merchant accepted the return. The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "shippedItemSalesMicros": { - "description": "Total price of shipped items, reported on the order date. Excludes shipping and taxes (US only). The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response.", + "description": "Total price of shipped items in micros (1 millionth of a standard unit, 1 USD = 1000000 micros), reported on the order date. Excludes shipping and taxes (US only). The currency of the returned value is stored in the currency_code segment. If this metric is selected, 'segments.currency_code' is automatically added to the SELECT clause in the search query (unless it is explicitly selected by the user) and the currency_code segment is populated in the response. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "shippedItems": { - "description": "Number of shipped items, reported on the shipment date.", + "description": "Number of shipped items, reported on the shipment date. **This metric cannot be segmented by customer_country_code.**", "format": "int64", "type": "string" }, "shippedOrders": { - "description": "Number of fully shipped orders, reported on the last shipment date. **This metric cannot be segmented by product dimensions.**", + "description": "Number of fully shipped orders, reported on the last shipment date. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "int64", "type": "string" }, "unshippedItems": { - "description": "Number of ordered items not shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped items over the days in the queried period.", + "description": "Number of ordered items not shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped items over the days in the queried period. **This metric cannot be segmented by customer_country_code.**", "format": "double", "type": "number" }, "unshippedOrders": { - "description": "Number of orders not shipped or partially shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped orders over the days in the queried period. **This metric cannot be segmented by product dimensions.**", + "description": "Number of orders not shipped or partially shipped up until the end of the queried day. If a multi-day period is specified in the search query, the returned value is the average number of unshipped orders over the days in the queried period. **This metric cannot be segmented by product dimensions and customer_country_code.**", "format": "double", "type": "number" } @@ -9622,7 +10023,7 @@ "type": "string" }, "streetAddress": { - "description": "Street-level part of the address.", + "description": "Street-level part of the address. Use `\\n` to add a second line.", "items": { "type": "string" }, @@ -10290,7 +10691,7 @@ "id": "OrderShipment", "properties": { "carrier": { - "description": "The carrier handling the shipment. For supported carriers, Google includes the carrier name and tracking URL in emails to customers. For select supported carriers, Google also automatically updates the shipment status based on the provided shipment ID. *Note:* You can also use unsupported carriers, but emails to customers won't include the carrier name or tracking URL, and there will be no automatic order status updates. Supported carriers for \"US\" are: - \"`ups`\" (United Parcel Service) *automatic status updates* - \"`usps`\" (United States Postal Service) *automatic status updates* - \"`fedex`\" (FedEx) *automatic status updates * - \"`dhl`\" (DHL eCommerce) *automatic status updates* (US only) - \"`ontrac`\" (OnTrac) *automatic status updates * - \"`dhl express`\" (DHL Express) - \"`deliv`\" (Deliv) - \"`dynamex`\" (TForce) - \"`lasership`\" (LaserShip) - \"`mpx`\" (Military Parcel Xpress) - \"`uds`\" (United Delivery Service) - \"`efw`\" (Estes Forwarding Worldwide) - \"`jd logistics`\" (JD Logistics) - \"`yunexpress`\" (YunExpress) - \"`china post`\" (China Post) - \"`china ems`\" (China Post Express Mail Service) - \"`singapore post`\" (Singapore Post) - \"`pos malaysia`\" (Pos Malaysia) - \"`postnl`\" (PostNL) - \"`ptt`\" (PTT Turkish Post) - \"`eub`\" (ePacket) - \"`chukou1`\" (Chukou1 Logistics) - \"`bestex`\" (Best Express) - \"`canada post`\" (Canada Post) - \"`purolator`\" (Purolator) - \"`canpar`\" (Canpar) - \"`india post`\" (India Post) - \"`blue dart`\" (Blue Dart) - \"`delhivery`\" (Delhivery) - \"`dtdc`\" (DTDC) - \"`tpc india`\" (TPC India) - \"`lso`\" (Lone Star Overnight) - \"`tww`\" (Team Worldwide) Supported carriers for FR are: - \"`la poste`\" (La Poste) *automatic status updates * - \"`colissimo`\" (Colissimo by La Poste) *automatic status updates* - \"`ups`\" (United Parcel Service) *automatic status updates * - \"`chronopost`\" (Chronopost by La Poste) - \"`gls`\" (General Logistics Systems France) - \"`dpd`\" (DPD Group by GeoPost) - \"`bpost`\" (Belgian Post Group) - \"`colis prive`\" (Colis Priv\u00e9) - \"`boxtal`\" (Boxtal) - \"`geodis`\" (GEODIS) - \"`tnt`\" (TNT) - \"`db schenker`\" (DB Schenker) - \"`aramex`\" (Aramex) ", + "description": "The carrier handling the shipment. For supported carriers, Google includes the carrier name and tracking URL in emails to customers. For select supported carriers, Google also automatically updates the shipment status based on the provided shipment ID. *Note:* You can also use unsupported carriers, but emails to customers won't include the carrier name or tracking URL, and there will be no automatic order status updates. Supported carriers for \"US\" are: - \"`ups`\" (United Parcel Service) *automatic status updates* - \"`usps`\" (United States Postal Service) *automatic status updates* - \"`fedex`\" (FedEx) *automatic status updates * - \"`dhl`\" (DHL eCommerce) *automatic status updates* (US only) - \"`ontrac`\" (OnTrac) *automatic status updates * - \"`dhl express`\" (DHL Express) - \"`deliv`\" (Deliv) - \"`dynamex`\" (TForce) - \"`lasership`\" (LaserShip) - \"`mpx`\" (Military Parcel Xpress) - \"`uds`\" (United Delivery Service) - \"`efw`\" (Estes Forwarding Worldwide) - \"`jd logistics`\" (JD Logistics) - \"`yunexpress`\" (YunExpress) - \"`china post`\" (China Post) - \"`china ems`\" (China Post Express Mail Service) - \"`singapore post`\" (Singapore Post) - \"`pos malaysia`\" (Pos Malaysia) - \"`postnl`\" (PostNL) - \"`ptt`\" (PTT Turkish Post) - \"`eub`\" (ePacket) - \"`chukou1`\" (Chukou1 Logistics) - \"`bestex`\" (Best Express) - \"`canada post`\" (Canada Post) - \"`purolator`\" (Purolator) - \"`canpar`\" (Canpar) - \"`india post`\" (India Post) - \"`blue dart`\" (Blue Dart) - \"`delhivery`\" (Delhivery) - \"`dtdc`\" (DTDC) - \"`tpc india`\" (TPC India) - \"`lso`\" (Lone Star Overnight) - \"`tww`\" (Team Worldwide) - \"`deliver-it`\" (Deliver-IT) - \"`cdl last mile`\" (CDL Last Mile) Supported carriers for FR are: - \"`la poste`\" (La Poste) *automatic status updates * - \"`colissimo`\" (Colissimo by La Poste) *automatic status updates* - \"`ups`\" (United Parcel Service) *automatic status updates * - \"`chronopost`\" (Chronopost by La Poste) - \"`gls`\" (General Logistics Systems France) - \"`dpd`\" (DPD Group by GeoPost) - \"`bpost`\" (Belgian Post Group) - \"`colis prive`\" (Colis Priv\u00e9) - \"`boxtal`\" (Boxtal) - \"`geodis`\" (GEODIS) - \"`tnt`\" (TNT) - \"`db schenker`\" (DB Schenker) - \"`aramex`\" (Aramex) ", "type": "string" }, "creationDate": { @@ -12271,8 +12672,73 @@ }, "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", + "id": "PriceCompetitiveness", + "properties": { + "benchmarkPriceCurrencyCode": { + "description": "The price benchmark currency (ISO 4217 code).", + "type": "string" + }, + "benchmarkPriceMicros": { + "description": "The latest available price benchmark in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) for the product's catalog in the benchmark country.", + "format": "int64", + "type": "string" + }, + "countryCode": { + "description": "The country of the price benchmark (ISO 3166 code).", + "type": "string" + } + }, + "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", + "id": "PriceInsights", + "properties": { + "predictedClicksChangeFraction": { + "description": "The predicted change in clicks as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in clicks.", + "format": "double", + "type": "number" + }, + "predictedConversionsChangeFraction": { + "description": "The predicted change in conversions as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in conversions).", + "format": "double", + "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.", + "format": "double", + "type": "number" + }, + "predictedImpressionsChangeFraction": { + "description": "The predicted change in impressions as a fraction after introducing the suggested price compared to current active price. For example, 0.05 is a 5% predicted increase in impressions.", + "format": "double", + "type": "number" + }, + "predictedMonthlyGrossProfitChangeCurrencyCode": { + "description": "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.", + "format": "int64", + "type": "string" + }, + "suggestedPriceCurrencyCode": { + "description": "The suggested price currency (ISO 4217 code).", + "type": "string" + }, + "suggestedPriceMicros": { + "description": "The latest suggested price in micros (1 millionth of a standard unit, 1 USD = 1000000 micros) for the product.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Product": { - "description": " Required product attributes are primarily defined by the products data specification. See the Products Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.", + "description": " Required product attributes are primarily defined by the product data specification. See the Product Data Specification Help Center article for information. Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.", "id": "Product", "properties": { "additionalImageLinks": { @@ -12405,7 +12871,7 @@ "type": "string" }, "excludedDestinations": { - "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center).", + "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", "items": { "type": "string" }, @@ -12415,6 +12881,14 @@ "description": "Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in `productstatuses` as `googleExpirationDate` and might be earlier if `expirationDate` is too far in the future.", "type": "string" }, + "externalSellerId": { + "description": "Required for multi-seller accounts. Use this attribute if you're a marketplace uploading products for various sellers to your multi-seller account.", + "type": "string" + }, + "feedLabel": { + "description": "Feed label for the item. Either `targetCountry` or `feedLabel` is required.", + "type": "string" + }, "gender": { "description": "Target gender of the item.", "type": "string" @@ -12462,6 +12936,13 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#product`\"", "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.", + "items": { + "type": "string" + }, + "type": "array" + }, "link": { "description": "URL directly linking to your item's page on your website.", "type": "string" @@ -12521,6 +13002,10 @@ "description": "The item's pattern (for example, polka dots).", "type": "string" }, + "pause": { + "description": "Publication of this item should be temporarily paused. Acceptable values are: - \"`ads`\" ", + "type": "string" + }, "pickupMethod": { "description": "The pick up option for the item. Acceptable values are: - \"`buy`\" - \"`reserve`\" - \"`ship to store`\" - \"`not supported`\" ", "type": "string" @@ -12556,7 +13041,7 @@ "description": "The length of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive)." }, "productTypes": { - "description": "Categories of the item (formatted as in products data specification).", + "description": "Categories of the item (formatted as in product data specification).", "items": { "type": "string" }, @@ -12582,7 +13067,7 @@ "description": "Advertised sale price of the item." }, "salePriceEffectiveDate": { - "description": "Date range during which the item is on sale (see products data specification ).", + "description": "Date range during which the item is on sale (see product data specification ).", "type": "string" }, "sellOnGoogleQuantity": { @@ -12648,7 +13133,7 @@ "description": "Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract." }, "targetCountry": { - "description": "Required. The CLDR territory code for the item.", + "description": "Required. The CLDR territory code for the item's country of sale.", "type": "string" }, "taxCategory": { @@ -12699,6 +13184,140 @@ }, "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", + "properties": { + "brand": { + "description": "Brand of the product cluster.", + "type": "string" + }, + "brandInventoryStatus": { + "description": "Tells if there is at least one product of the brand currently `IN_STOCK` in your product feed across multiple countries, all products are `OUT_OF_STOCK` in your product feed, or `NOT_IN_INVENTORY`. The field doesn't take the Best Sellers report country filter into account.", + "enum": [ + "INVENTORY_STATUS_UNSPECIFIED", + "IN_STOCK", + "OUT_OF_STOCK", + "NOT_IN_INVENTORY" + ], + "enumDescriptions": [ + "Inventory status is unknown.", + "Merchant has a product for this product cluster or brand in stock.", + "Merchant has a product for this product cluster or brand in inventory but it is currently out of stock.", + "Merchant does not have a product for this product cluster or brand in inventory." + ], + "type": "string" + }, + "categoryL1": { + "description": "Product category (1st level) of the product cluster, represented in Google's product taxonomy.", + "type": "string" + }, + "categoryL2": { + "description": "Product category (2nd level) of the product cluster, represented in Google's product taxonomy.", + "type": "string" + }, + "categoryL3": { + "description": "Product category (3rd level) of the product cluster, represented in Google's product taxonomy.", + "type": "string" + }, + "categoryL4": { + "description": "Product category (4th level) of the product cluster, represented in Google's product taxonomy.", + "type": "string" + }, + "categoryL5": { + "description": "Product category (5th level) of the product cluster, represented in Google's product taxonomy.", + "type": "string" + }, + "inventoryStatus": { + "description": "Tells whether the product cluster is `IN_STOCK` in your product feed across multiple countries, `OUT_OF_STOCK` in your product feed, or `NOT_IN_INVENTORY` at all. The field doesn't take the Best Sellers report country filter into account.", + "enum": [ + "INVENTORY_STATUS_UNSPECIFIED", + "IN_STOCK", + "OUT_OF_STOCK", + "NOT_IN_INVENTORY" + ], + "enumDescriptions": [ + "Inventory status is unknown.", + "Merchant has a product for this product cluster or brand in stock.", + "Merchant has a product for this product cluster or brand in inventory but it is currently out of stock.", + "Merchant does not have a product for this product cluster or brand in inventory." + ], + "type": "string" + }, + "title": { + "description": "Title of the product cluster.", + "type": "string" + }, + "variantGtins": { + "description": "GTINs of example variants of the product cluster.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ProductDeliveryTime": { + "description": "The estimated days to deliver a product after an order is placed. Only authorized shipping signals partners working with a merchant can use this resource. Merchants should use the [`products`](https://developers.google.com/shopping-content/reference/rest/v2.1/products#productshipping) resource instead.", + "id": "ProductDeliveryTime", + "properties": { + "areaDeliveryTimes": { + "description": "Required. A set of associations between `DeliveryArea` and `DeliveryTime` entries. The total number of `areaDeliveryTimes` can be at most 100.", + "items": { + "$ref": "ProductDeliveryTimeAreaDeliveryTime" + }, + "type": "array" + }, + "productId": { + "$ref": "ProductId", + "description": "Required. The `id` of the product." + } + }, + "type": "object" + }, + "ProductDeliveryTimeAreaDeliveryTime": { + "description": "A pairing of `DeliveryArea` associated with a `DeliveryTime` for this product.", + "id": "ProductDeliveryTimeAreaDeliveryTime", + "properties": { + "deliveryArea": { + "$ref": "DeliveryArea", + "description": "Required. The delivery area associated with `deliveryTime` for this product." + }, + "deliveryTime": { + "$ref": "ProductDeliveryTimeAreaDeliveryTimeDeliveryTime", + "description": "Required. The delivery time associated with `deliveryArea` for this product." + } + }, + "type": "object" + }, + "ProductDeliveryTimeAreaDeliveryTimeDeliveryTime": { + "description": "A delivery time for this product.", + "id": "ProductDeliveryTimeAreaDeliveryTimeDeliveryTime", + "properties": { + "maxHandlingTimeDays": { + "description": "Required. The maximum number of business days (inclusive) between when an order is placed and when the product ships. If a product ships in the same day, set this value to 0.", + "format": "int32", + "type": "integer" + }, + "maxTransitTimeDays": { + "description": "Required. The maximum number of business days (inclusive) between when the product ships and when the product is delivered.", + "format": "int32", + "type": "integer" + }, + "minHandlingTimeDays": { + "description": "Required. The minimum number of business days (inclusive) between when an order is placed and when the product ships. If a product ships in the same day, set this value to 0.", + "format": "int32", + "type": "integer" + }, + "minTransitTimeDays": { + "description": "Required. The minimum number of business days (inclusive) between when the product ships and when the product is delivered.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ProductDimension": { "id": "ProductDimension", "properties": { @@ -12714,6 +13333,17 @@ }, "type": "object" }, + "ProductId": { + "description": "The Content API ID of the product.", + "id": "ProductId", + "properties": { + "productId": { + "description": "The Content API ID of the product, in the form `channel:contentLanguage:targetCountry:offerId`.", + "type": "string" + } + }, + "type": "object" + }, "ProductProductDetail": { "id": "ProductProductDetail", "properties": { @@ -12744,7 +13374,7 @@ "type": "string" }, "locationId": { - "description": "The numeric ID of a location that the shipping rate applies to as defined in the AdWords API.", + "description": "The numeric ID of a location that the shipping rate applies to as defined in the Google Ads API.", "format": "int64", "type": "string" }, @@ -12973,7 +13603,7 @@ "type": "string" }, "locationId": { - "description": "The numeric ID of a location that the tax rate applies to as defined in the AdWords API.", + "description": "The numeric ID of a location that the tax rate applies to as defined in the Google Ads API.", "format": "int64", "type": "string" }, @@ -13027,6 +13657,248 @@ }, "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.", + "id": "ProductView", + "properties": { + "aggregatedDestinationStatus": { + "description": "Aggregated destination status.", + "enum": [ + "AGGREGATED_STATUS_UNSPECIFIED", + "NOT_ELIGIBLE_OR_DISAPPROVED", + "PENDING", + "ELIGIBLE_LIMITED", + "ELIGIBLE" + ], + "enumDescriptions": [ + "Undefined aggregated status.", + "Offer isn't eligible, or is disapproved for all destinations.", + "Offer's status is pending in all destinations.", + "Offer is eligible for some (but not all) destinations.", + "Offer is eligible for all destinations." + ], + "type": "string" + }, + "availability": { + "description": "Availability of the product.", + "type": "string" + }, + "brand": { + "description": "Brand of the product.", + "type": "string" + }, + "categoryL1": { + "description": "First level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "categoryL2": { + "description": "Second level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "categoryL3": { + "description": "Third level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "categoryL4": { + "description": "Fourth level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "categoryL5": { + "description": "Fifth level of the product category in [Google's product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "channel": { + "description": "Channel of the product (online versus local).", + "enum": [ + "CHANNEL_UNSPECIFIED", + "LOCAL", + "ONLINE" + ], + "enumDescriptions": [ + "Indicates that the channel is unspecified.", + "Indicates that the channel is local.", + "Indicates that the channel is online." + ], + "type": "string" + }, + "condition": { + "description": "Condition of the product.", + "type": "string" + }, + "creationTime": { + "description": "The time the merchant created the product in timestamp seconds.", + "format": "google-datetime", + "type": "string" + }, + "currencyCode": { + "description": "Product price currency code (for example, ISO 4217). Absent if product price is not available.", + "type": "string" + }, + "expirationDate": { + "$ref": "Date", + "description": "Expiration date for the product. Specified on insertion." + }, + "gtin": { + "description": "GTIN of the product.", + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The REST ID of the product, in the form of channel:contentLanguage:targetCountry:offerId. Content API methods that operate on products take this as their productId parameter. Should always be included in the SELECT clause.", + "type": "string" + }, + "itemGroupId": { + "description": "Item group ID provided by the merchant for grouping variants together.", + "type": "string" + }, + "itemIssues": { + "description": "List of item issues for the product.", + "items": { + "$ref": "ProductViewItemIssue" + }, + "type": "array" + }, + "languageCode": { + "description": "Language code of the product in BCP 47 format.", + "type": "string" + }, + "offerId": { + "description": "Merchant-provided id of the product.", + "type": "string" + }, + "priceMicros": { + "description": "Product price specified as micros (1 millionth of a standard unit, 1 USD = 1000000 micros) in the product currency. Absent in case the information about the price of the product is not available.", + "format": "int64", + "type": "string" + }, + "productTypeL1": { + "description": "First level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "productTypeL2": { + "description": "Second level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "productTypeL3": { + "description": "Third level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "productTypeL4": { + "description": "Fourth level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "productTypeL5": { + "description": "Fifth level of the product type in merchant's own [product taxonomy](https://support.google.com/merchants/answer/6324436).", + "type": "string" + }, + "shippingLabel": { + "description": "The normalized shipping label specified in the feed", + "type": "string" + }, + "title": { + "description": "Title of the product.", + "type": "string" + } + }, + "type": "object" + }, + "ProductViewItemIssue": { + "description": "Item issue associated with the product.", + "id": "ProductViewItemIssue", + "properties": { + "issueType": { + "$ref": "ProductViewItemIssueItemIssueType", + "description": "Item issue type." + }, + "resolution": { + "description": "Item issue resolution.", + "enum": [ + "UNKNOWN", + "MERCHANT_ACTION", + "PENDING_PROCESSING" + ], + "enumDescriptions": [ + "Unknown resolution type.", + "The merchant has to fix the issue.", + "The issue will be resolved automatically (for example, image crawl), or Google review. No merchant action is required now. Resolution might lead to another issue (for example, if crawl fails)." + ], + "type": "string" + }, + "severity": { + "$ref": "ProductViewItemIssueItemIssueSeverity", + "description": "Item issue severity." + } + }, + "type": "object" + }, + "ProductViewItemIssueIssueSeverityPerDestination": { + "description": "Issue severity for all affected regions in a destination.", + "id": "ProductViewItemIssueIssueSeverityPerDestination", + "properties": { + "demotedCountries": { + "description": "List of demoted countries in the destination.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destination": { + "description": "Issue destination.", + "type": "string" + }, + "disapprovedCountries": { + "description": "List of disapproved countries in the destination.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ProductViewItemIssueItemIssueSeverity": { + "description": "Severity of an issue per destination in a region, and aggregated severity.", + "id": "ProductViewItemIssueItemIssueSeverity", + "properties": { + "aggregatedSeverity": { + "description": "Severity of an issue aggregated for destination.", + "enum": [ + "AGGREGATED_ISSUE_SEVERITY_UNSPECIFIED", + "DISAPPROVED", + "DEMOTED", + "PENDING" + ], + "enumDescriptions": [ + "Undefined Issue severity.", + "Issue disapproves the product in at least one of the selected destinations.", + "Issue demotes the product in all selected destinations it affects.", + "Issue resolution is `PENDING_PROCESSING`." + ], + "type": "string" + }, + "severityPerDestination": { + "description": "Item issue severity for every destination.", + "items": { + "$ref": "ProductViewItemIssueIssueSeverityPerDestination" + }, + "type": "array" + } + }, + "type": "object" + }, + "ProductViewItemIssueItemIssueType": { + "description": "Type of the item issue.", + "id": "ProductViewItemIssueItemIssueType", + "properties": { + "canonicalAttribute": { + "description": "Canonical attribute name for attribute-specific issues.", + "type": "string" + } + }, + "type": "object" + }, "ProductWeight": { "id": "ProductWeight", "properties": { @@ -13087,7 +13959,7 @@ "type": "string" }, "updateMask": { - "description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged. Only defined if the method is `update`.", + "description": "The comma-separated list of product attributes to be updated. Example: `\"title,salePrice\"`. Attributes specified in the update mask without a value specified in the body will be deleted from the product. *You must specify the update mask to delete attributes.* Only top-level product attributes can be updated. If not defined, product attributes with set values will be updated and other attributes will stay unchanged. Only defined if the method is `update`.", "format": "google-fieldmask", "type": "string" } @@ -13122,7 +13994,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productsCustomBatchResponseEntry`\"", @@ -13185,6 +14057,7 @@ "type": "array" }, "includeAttributes": { + "description": "Deprecated: Setting this field has no effect and attributes are never included.", "type": "boolean" }, "merchantId": { @@ -13231,7 +14104,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors, if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#productstatusesCustomBatchResponseEntry`\"", @@ -13265,7 +14138,7 @@ "type": "object" }, "Promotion": { - "description": " The Promotions feature is currently in alpha and is not yet publicly available in Content API for Shopping. This documentation is provided for reference only may be subject to change. Represents a promotion. See the following articles for more details. * [Promotions feed specification](https://support.google.com/merchants/answer/2906014) * [Local promotions feed specification](https://support.google.com/merchants/answer/10146130) * [Promotions on Buy on Google product data specification](https://support.google.com/merchants/answer/9173673)", + "description": "Represents a promotion. See the following articles for more details. * [Promotions feed specification](https://support.google.com/merchants/answer/2906014) * [Local promotions feed specification](https://support.google.com/merchants/answer/10146130) * [Promotions on Buy on Google product data specification](https://support.google.com/merchants/answer/9173673)", "id": "Promotion", "properties": { "brand": { @@ -13283,7 +14156,7 @@ "type": "array" }, "contentLanguage": { - "description": "Required. The content language used as part of the unique identifier.", + "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.", "type": "string" }, "couponValueType": { @@ -13307,13 +14180,13 @@ "Indicates that the coupon value type is unspecified.", "Money off coupon value type.", "Percent off coupon value type.", - "Buy M quantity, get N money off coupon value type. buy_this_quantity and get_this_quantity must be present. money_off_amount must also be present.", - "Buy M quantity, get N percent off coupon value type. buy_this_quantity and get_this_quantity must be present. percent_off_percentage must also be present.", - "Buy M quantity, get money off. buy_this_quantity and money_off_amount must be present.", - "Buy M quantity, get money off. buy_this_quantity and percent_off_percentage must be present.", - "Free gift with description only", + "Buy M quantity, get N money off coupon value type. `buy_this_quantity` and `get_this_quantity` must be present. `money_off_amount` must also be present.", + "Buy M quantity, get N percent off coupon value type. `buy_this_quantity` and `get_this_quantity` must be present. `percent_off_percentage` must also be present.", + "Buy M quantity, get money off. `buy_this_quantity` and `money_off_amount` must be present.", + "Buy M quantity, get money off. `buy_this_quantity` and `percent_off_percentage` must be present.", + "Free gift with description only.", "Free gift with value (description is optional).", - "Free gift with item id (description is optional).", + "Free gift with item ID (description is optional).", "Standard free shipping coupon value type.", "Overnight free shipping coupon value type.", "Two day free shipping coupon value type." @@ -13325,7 +14198,7 @@ "type": "string" }, "freeGiftItemId": { - "description": "Free gift item id for the promotion.", + "description": "Free gift item ID for the promotion.", "type": "string" }, "freeGiftValue": { @@ -13333,7 +14206,7 @@ "description": "Free gift value for the promotion." }, "genericRedemptionCode": { - "description": "Generic redemption code for the promotion. To be used with the above field.", + "description": "Generic redemption code for the promotion. To be used with the `offerType` field.", "type": "string" }, "getThisQuantityDiscounted": { @@ -13342,33 +14215,33 @@ "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 will have a value of \"online\", \"in_store\", or \"online_in_store\".", + "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\"`.", "readOnly": true, "type": "string" }, "itemGroupId": { - "description": "Product filter by item group id for the promotion.", + "description": "Product filter by item group ID for the promotion.", "items": { "type": "string" }, "type": "array" }, "itemGroupIdExclusion": { - "description": "Product filter by item group id exclusion for the promotion.", + "description": "Product filter by item group ID exclusion for the promotion.", "items": { "type": "string" }, "type": "array" }, "itemId": { - "description": "Product filter by item id for the promotion.", + "description": "Product filter by item ID for the promotion.", "items": { "type": "string" }, "type": "array" }, "itemIdExclusion": { - "description": "Product filter by item id exclusion for the promotion.", + "description": "Product filter by item ID exclusion for the promotion.", "items": { "type": "string" }, @@ -13384,7 +14257,7 @@ "description": "Maximum purchase value for the promotion." }, "longTitle": { - "description": "Long title for the promotion.", + "description": "Required. Long title for the promotion.", "type": "string" }, "minimumPurchaseAmount": { @@ -13398,7 +14271,7 @@ }, "moneyBudget": { "$ref": "PriceAmount", - "description": "Promotion cost cap of the promotion." + "description": "Cost cap for the promotion." }, "moneyOffAmount": { "$ref": "PriceAmount", @@ -13436,7 +14309,7 @@ "SPECIFIC_PRODUCTS" ], "enumDescriptions": [ - "Unknown product applicability.", + "Which products the promotion applies to is unknown.", "Applicable to all products.", "Applicable to only a single product or list of products." ], @@ -13464,23 +14337,32 @@ "type": "array" }, "promotionDisplayDates": { - "description": "String representation of the promotion display dates (deprecated: Use promotion_display_time_period instead).", + "description": "String representation of the promotion display dates. Deprecated. Use `promotion_display_time_period` instead.", "type": "string" }, "promotionDisplayTimePeriod": { "$ref": "TimePeriod", - "description": "TimePeriod representation of the promotion display dates." + "description": "`TimePeriod` representation of the promotion's display dates." }, "promotionEffectiveDates": { - "description": "String representation of the promotion effective dates (deprecated: Use promotion_effective_time_period instead).", + "description": "String representation of the promotion effective dates. Deprecated. Use `promotion_effective_time_period` instead.", "type": "string" }, "promotionEffectiveTimePeriod": { "$ref": "TimePeriod", - "description": "Required. TimePeriod representation of the promotion effective dates." + "description": "Required. `TimePeriod` representation of the promotion's effective dates." }, "promotionId": { - "description": "Required. The user provided promotion id to uniquely identify the promotion.", + "description": "Required. The user provided promotion ID to uniquely identify the promotion.", + "type": "string" + }, + "promotionStatus": { + "$ref": "PromotionPromotionStatus", + "description": "Output only. The current status of the promotion.", + "readOnly": true + }, + "promotionUrl": { + "description": "URL to the page on the merchant's site where the promotion shows. Local Inventory ads promotions throw an error if no promo url is included. URL is used to confirm that the promotion is valid and can be redeemed.", "type": "string" }, "redemptionChannel": { @@ -13501,14 +14383,119 @@ "type": "array" }, "shippingServiceNames": { - "description": "Shipping service names for thse promotion.", + "description": "Shipping service names for the promotion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "storeApplicability": { + "description": "Whether the promotion applies to all stores, or only specified stores. Local Inventory ads promotions throw an error if no store applicability is included. An INVALID_ARGUMENT error is thrown if store_applicability is set to ALL_STORES and store_code or score_code_exclusion is set to a value.", + "enum": [ + "STORE_APPLICABILITY_UNSPECIFIED", + "ALL_STORES", + "SPECIFIC_STORES" + ], + "enumDescriptions": [ + "Which store codes the promotion applies to is unknown.", + "Promotion applies to all stores.", + "Promotion applies to only the specified stores." + ], + "type": "string" + }, + "storeCode": { + "description": "Store codes to include for the promotion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "storeCodeExclusion": { + "description": "Store codes to exclude for the promotion.", "items": { "type": "string" }, "type": "array" }, "targetCountry": { - "description": "Required. The target country used as part of the unique identifier.", + "description": "Required. The target country used as part of the unique identifier. Can be `AU`, `CA`, `DE`, `FR`, `GB`, `IN` or `US`.", + "type": "string" + } + }, + "type": "object" + }, + "PromotionPromotionStatus": { + "description": "The status of the promotion.", + "id": "PromotionPromotionStatus", + "properties": { + "creationDate": { + "description": "Date on which the promotion has been created in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", + "type": "string" + }, + "destinationStatuses": { + "description": "The intended destinations for the promotion.", + "items": { + "$ref": "PromotionPromotionStatusDestinationStatus" + }, + "type": "array" + }, + "lastUpdateDate": { + "description": "Date on which the promotion status has been last updated in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format: Date, time, and offset, for example \"2020-01-02T09:00:00+01:00\" or \"2020-01-02T09:00:00Z\"", + "type": "string" + }, + "promotionIssue": { + "description": "A list of issues associated with the promotion.", + "items": { + "$ref": "PromotionPromotionStatusPromotionIssue" + }, + "type": "array" + } + }, + "type": "object" + }, + "PromotionPromotionStatusDestinationStatus": { + "description": "The destination status of the promotion.", + "id": "PromotionPromotionStatusDestinationStatus", + "properties": { + "destination": { + "description": "The name of the destination.", + "type": "string" + }, + "status": { + "description": "The status for the specified destination.", + "enum": [ + "STATE_UNSPECIFIED", + "IN_REVIEW", + "REJECTED", + "LIVE", + "STOPPED", + "EXPIRED", + "PENDING" + ], + "enumDescriptions": [ + "Unknown promotion state.", + "The promotion is under review.", + "The promotion is disapproved", + "The promotion is approved and active.", + "The promotion is stopped by merchant.", + "The promotion is no longer active.", + "The promotion is not stopped, and all reviews are approved, but the active date is in the future." + ], + "type": "string" + } + }, + "type": "object" + }, + "PromotionPromotionStatusPromotionIssue": { + "description": "The issue associated with the promotion.", + "id": "PromotionPromotionStatusPromotionIssue", + "properties": { + "code": { + "description": "Code of the issue.", + "type": "string" + }, + "detail": { + "description": "Explanation of the issue.", "type": "string" } }, @@ -13785,7 +14772,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if and only if the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#regionalinventoryCustomBatchResponseEntry`\".", @@ -13802,10 +14789,34 @@ "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`." + }, + "brand": { + "$ref": "Brand", + "description": "Brand fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersBrandView`." + }, "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`." + }, + "priceInsights": { + "$ref": "PriceInsights", + "description": "Price Insights fields requested by the merchant in the query. Field values are only set if the merchant queries `PriceInsightsProductView`." + }, + "productCluster": { + "$ref": "ProductCluster", + "description": "Product cluster fields requested by the merchant in the query. Field values are only set if the merchant queries `BestSellersProductClusterView`." + }, + "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." + }, "segments": { "$ref": "Segments", "description": "Segmentation dimensions requested by the merchant in the query. Dimension values are only set for dimensions requested explicitly in the query." @@ -13895,7 +14906,7 @@ "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. Next ID: 24", + "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": { @@ -14941,7 +15952,7 @@ "type": "object" }, "Segments": { - "description": "Dimensions according to which metrics are segmented in the response. Values of product dimensions, e.g., offer id, reflect the state of a product at the time of the corresponding event, e.g., impression or order. Segment fields cannot be selected in queries without also selecting at least one metric field. Values are only set for dimensions requested explicitly in the request's search query.", + "description": "Dimensions according to which metrics are segmented in the response. Values of product dimensions, such as `offer_id`, reflect the state of a product at the time of the corresponding event, for example, impression or order. Segment fields cannot be selected in queries without also selecting at least one metric field. Values are only set for dimensions requested explicitly in the request's search query.", "id": "Segments", "properties": { "brand": { @@ -14969,7 +15980,7 @@ "type": "string" }, "currencyCode": { - "description": "Currency in which price metrics are represented, e.g., if you select `ordered_item_sales_micros`, the returned value will be represented by this currency.", + "description": "Currency in which price metrics are represented, for example, if you select `ordered_item_sales_micros`, the returned value will be represented by this currency.", "type": "string" }, "customLabel0": { @@ -14992,6 +16003,10 @@ "description": "Custom label 4 for custom grouping of products.", "type": "string" }, + "customerCountryCode": { + "description": "Code of the country where the customer is located at the time of the event. Represented in the ISO 3166 format. If the customer country cannot be determined, a special 'ZZ' code is returned.", + "type": "string" + }, "date": { "$ref": "Date", "description": "Date in the merchant timezone to which metrics apply." @@ -15021,7 +16036,7 @@ "type": "string" }, "program": { - "description": "Program to which metrics apply, e.g., Free Product Listing.", + "description": "Program to which metrics apply, for example, Free Product Listing.", "enum": [ "PROGRAM_UNSPECIFIED", "SHOPPING_ADS", @@ -15453,7 +16468,7 @@ }, "errors": { "$ref": "Errors", - "description": "A list of errors defined if, and only if, the request failed." + "description": "A list of errors for failed custombatch entries. *Note:* Schema errors fail the whole request." }, "kind": { "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#shippingsettingsCustomBatchResponseEntry`\"", @@ -15542,7 +16557,7 @@ "id": "ShoppingAdsProgramStatus", "properties": { "globalState": { - "description": "State of the program, It is set to enabled if there are offers for at least one region.", + "description": "State of the program. `ENABLED` if there are offers for at least one region.", "enum": [ "PROGRAM_STATE_UNSPECIFIED", "NOT_ENABLED", @@ -15550,9 +16565,9 @@ "ENABLED" ], "enumDescriptions": [ - "State is not known.", + "State is unknown.", "Program is not enabled for any country.", - "Offers are not uploaded targeting even a single country for this program.", + "No products have been uploaded for any region. Upload products to Merchant Center.", "Program is enabled and offers are uploaded for at least one country." ], "type": "string" @@ -15572,7 +16587,7 @@ "id": "ShoppingAdsProgramStatusRegionStatus", "properties": { "disapprovalDate": { - "description": "Date by which `eligibility_status` will go from `WARNING` to `DISAPPROVED`. It will be present when `eligibility_status` is `WARNING`. Date will be provided in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: YYYY-MM-DD", + "description": "Date by which eligibilityStatus will go from `WARNING` to `DISAPPROVED`. Only visible when your eligibilityStatus is WARNING. In [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DD`.", "type": "string" }, "eligibilityStatus": { @@ -15591,14 +16606,14 @@ "If the account has no issues and review is completed successfully.", "There are one or more issues that needs to be resolved for account to be active for the program. Detailed list of account issues are available in [accountstatuses](https://developers.google.com/shopping-content/reference/rest/v2.1/accountstatuses) API.", "If account has issues but offers are servable. Some of the issue can make account DISAPPROVED after a certain deadline.", - "Account is under review. Deprecated: This state is not created.", + "Account is under review.", "Account is waiting for review to start.", "Program is currently onboarding. Upload valid offers to complete onboarding." ], "type": "string" }, "onboardingIssues": { - "description": "These issues must be fixed to become eligible for the review.", + "description": "Issues that must be fixed to be eligible for review.", "items": { "type": "string" }, @@ -15612,14 +16627,14 @@ "type": "array" }, "reviewEligibilityStatus": { - "description": "If a program in a given country is eligible for review. It will be present only if eligibility status is `DISAPPROVED`.", + "description": "If a program is eligible for review in a specific region. Only visible if `eligibilityStatus` is `DISAPPROVED`.", "enum": [ "REVIEW_ELIGIBILITY_UNSPECIFIED", "ELIGIBLE", "INELIGIBLE" ], "enumDescriptions": [ - "Review eligibility reason state is unknown.", + "Review eligibility state is unknown.", "Account is eligible for review for a specified region code.", "Account is not eligible for review for a specified region code." ], @@ -15633,7 +16648,10 @@ "NOT_ENOUGH_OFFERS", "IN_COOLDOWN_PERIOD", "ALREADY_UNDER_REVIEW", - "NO_REVIEW_REQUIRED" + "NO_REVIEW_REQUIRED", + "WILL_BE_REVIEWED_AUTOMATICALLY", + "IS_RETIRED", + "ALREADY_REVIEWED" ], "enumDescriptions": [ "Requesting a review from Google is not possible.", @@ -15641,20 +16659,23 @@ "Not enough offers uploaded for this country.", "Cooldown period applies. Wait until cooldown period ends.", "Account is already under review.", - "No issues available to review." + "No issues available to review.", + "Account will be automatically reviewed at the end of the grace period.", + "Account is retired. Should not appear in MC.", + "Account was already reviewd." ], "type": "string" }, "reviewIneligibilityReasonDescription": { - "description": "Reason if a program in a given country is not eligible for review. Populated only if `review_eligibility_status` is `INELIGIBLE`.", + "description": "Reason a program in a specific region isn\u2019t eligible for review. Only visible if `reviewEligibilityStatus` is `INELIGIBLE`.", "type": "string" }, "reviewIneligibilityReasonDetails": { "$ref": "ShoppingAdsProgramStatusReviewIneligibilityReasonDetails", - "description": "This contains additional information specific to review ineligibility reasons. If review is ineligible because of `IN_COOLDOWN_PERIOD`, it will contain timestamp for cooldown period." + "description": "Additional information for ineligibility. If `reviewIneligibilityReason` is `IN_COOLDOWN_PERIOD`, a timestamp for the end of the cooldown period is provided." }, "reviewIssues": { - "description": "These issues will be evaluated in review process. Fix all the issues before requesting the review.", + "description": "Issues evaluated in the review process. Fix all issues before requesting a review.", "items": { "type": "string" }, @@ -15799,7 +16820,7 @@ "type": "string" }, "streetAddress": { - "description": "Street-level part of the address.", + "description": "Street-level part of the address. Use `\\n` to add a second line.", "items": { "type": "string" }, diff --git a/etc/api/customsearch/v1/customsearch-api.json b/etc/api/customsearch/v1/customsearch-api.json index 91317a8484..fc2bc0138a 100644 --- a/etc/api/customsearch/v1/customsearch-api.json +++ b/etc/api/customsearch/v1/customsearch-api.json @@ -674,7 +674,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://customsearch.googleapis.com/", "schemas": { "Promotion": { diff --git a/etc/api/datacatalog/v1/datacatalog-api.json b/etc/api/datacatalog/v1/datacatalog-api.json index 8120fc2b54..b761d7dc0a 100644 --- a/etc/api/datacatalog/v1/datacatalog-api.json +++ b/etc/api/datacatalog/v1/datacatalog-api.json @@ -272,7 +272,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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, @@ -370,7 +370,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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, @@ -398,7 +398,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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, @@ -513,7 +513,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/entries/[^/]+$", "required": true, @@ -531,6 +531,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries:import", + "httpMethod": "POST", + "id": "datacatalog.projects.locations.entryGroups.entries.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Target entry group for ingested entries.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries:import", + "request": { + "$ref": "GoogleCloudDatacatalogV1ImportEntriesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists entries. Note: Currently, this method can list only custom entries. To get a list of both custom and automatically created entries, use SearchCatalog.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries", @@ -701,7 +729,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/entries/[^/]+$", "required": true, @@ -1007,6 +1035,126 @@ } } }, + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "datacatalog.projects.locations.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "datacatalog.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": "datacatalog.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. 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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "datacatalog.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "tagTemplates": { "methods": { "create": { @@ -1107,7 +1255,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1169,7 +1317,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1197,7 +1345,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1508,7 +1656,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1563,6 +1711,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Supported field for filter is 'service' and value is 'dataplex'. Eg: service=dataplex.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of items to return. Must be a value between 1 and 1000 inclusively. If not set, defaults to 50.", "format": "int32", @@ -1662,7 +1815,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1690,7 +1843,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1800,7 +1953,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1898,7 +2051,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1926,7 +2079,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1953,7 +2106,7 @@ } } }, - "revision": "20220224", + "revision": "20230117", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -1965,7 +2118,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1979,7 +2132,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2183,14 +2336,49 @@ "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" + }, "subcolumns": { "description": "Optional. Schema of sub-columns. A column can have zero or more sub-columns.", "items": { @@ -2205,6 +2393,45 @@ }, "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", + "PAREMETER" + ], + "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", @@ -2280,12 +2507,12 @@ "type": "object" }, "GoogleCloudDatacatalogV1DataSourceConnectionSpec": { - "description": "Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.", + "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": "Fields specific to BigQuery connections." + "description": "Output only. Fields specific to BigQuery connections." } }, "type": "object" @@ -2294,9 +2521,14 @@ "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": "Fields specific to a Dataplex table and present only in the Dataplex table entries." + "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.", @@ -2315,6 +2547,35 @@ }, "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", @@ -2338,14 +2599,18 @@ "BIGQUERY", "CLOUD_PUBSUB", "DATAPROC_METASTORE", - "DATAPLEX" + "DATAPLEX", + "CLOUD_SQL", + "LOOKER" ], "enumDescriptions": [ "Default unknown system.", "BigQuery.", "Cloud Pub/Sub.", "Dataproc Metastore.", - "Dataplex." + "Dataplex.", + "Cloud Sql", + "Looker" ], "type": "string" } @@ -2414,11 +2679,13 @@ "properties": { "bigqueryDateShardedSpec": { "$ref": "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)." + "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": "Specification that applies to a BigQuery table. Valid only for entries with the `TABLE` type." + "description": "Output only. Specification that applies to a BigQuery table. Valid only for entries with the `TABLE` type.", + "readOnly": true }, "businessContext": { "$ref": "GoogleCloudDatacatalogV1BusinessContext", @@ -2435,14 +2702,14 @@ }, "databaseTableSpec": { "$ref": "GoogleCloudDatacatalogV1DatabaseTableSpec", - "description": "Specification that applies to a table resource. Valid only for entries with the `TABLE` type." + "description": "Specification that applies to a table resource. Valid only for entries with the `TABLE` or `EXPLORE` type." }, "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 name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and can't start or end with spaces. The maximum size is 200 bytes when encoded in UTF-8. Default value is an empty string.", + "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" }, "filesetSpec": { @@ -2464,14 +2731,18 @@ "BIGQUERY", "CLOUD_PUBSUB", "DATAPROC_METASTORE", - "DATAPLEX" + "DATAPLEX", + "CLOUD_SQL", + "LOOKER" ], "enumDescriptions": [ "Default unknown system.", "BigQuery.", "Cloud Pub/Sub.", "Dataproc Metastore.", - "Dataplex." + "Dataplex.", + "Cloud Sql", + "Looker" ], "readOnly": true, "type": "string" @@ -2487,6 +2758,10 @@ "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`" + }, "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, @@ -2507,7 +2782,11 @@ }, "sourceSystemTimestamps": { "$ref": "GoogleCloudDatacatalogV1SystemTimestamps", - "description": "Timestamps from the underlying resource, not from the Data Catalog entry. Output only when the entry has a type listed in the `EntryType` enum. For entries with `user_specified_type`, this field is optional and defaults to an empty timestamp." + "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. 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`.", @@ -2523,11 +2802,15 @@ "ROUTINE", "LAKE", "ZONE", - "SERVICE" + "SERVICE", + "DATABASE_SCHEMA", + "DASHBOARD", + "EXPLORE", + "LOOK" ], "enumDescriptions": [ "Default unknown type.", - "Output only. The entry type that has a GoogleSQL schema, including logical views.", + "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).", "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.", @@ -2537,14 +2820,17 @@ "Output only. Routine, for example, a BigQuery routine.", "A Dataplex lake.", "A Dataplex zone.", - "A service, for example, a Dataproc Metastore service." + "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)." ], "type": "string" }, "usageSignal": { "$ref": "GoogleCloudDatacatalogV1UsageSignal", - "description": "Output only. Resource usage statistics.", - "readOnly": true + "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.", @@ -2714,6 +3000,66 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ImportEntriesMetadata": { + "description": "Metadata message for long-running operation returned by the ImportEntries.", + "id": "GoogleCloudDatacatalogV1ImportEntriesMetadata", + "properties": { + "errors": { + "description": "Partial errors that are encountered during the ImportEntries operation. There is no guarantee that all the encountered errors are reported. However, if no errors are reported, it means that no errors were encountered.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, + "state": { + "description": "State of the import operation.", + "enum": [ + "IMPORT_STATE_UNSPECIFIED", + "IMPORT_QUEUED", + "IMPORT_IN_PROGRESS", + "IMPORT_DONE", + "IMPORT_OBSOLETE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The dump with entries has been queued for import.", + "The import of entries is in progress.", + "The import of entries has been finished.", + "The import of entries has been abandoned in favor of a newer request." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ImportEntriesRequest": { + "description": "Request message for ImportEntries method.", + "id": "GoogleCloudDatacatalogV1ImportEntriesRequest", + "properties": { + "gcsBucketPath": { + "description": "Path to a Cloud Storage bucket that contains a dump ready for ingestion.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ImportEntriesResponse": { + "description": "Response message for long-running operation returned by the ImportEntries.", + "id": "GoogleCloudDatacatalogV1ImportEntriesResponse", + "properties": { + "deletedEntriesCount": { + "description": "Number of entries deleted as a result of import operation.", + "format": "int64", + "type": "string" + }, + "upsertedEntriesCount": { + "description": "Cumulative number of entries created and entries updated as a result of import operation.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1ImportTaxonomiesRequest": { "description": "Request message for ImportTaxonomies.", "id": "GoogleCloudDatacatalogV1ImportTaxonomiesRequest", @@ -2847,6 +3193,37 @@ }, "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" + }, "GoogleCloudDatacatalogV1ModifyEntryContactsRequest": { "description": "Request message for ModifyEntryContacts.", "id": "GoogleCloudDatacatalogV1ModifyEntryContactsRequest", @@ -3237,14 +3614,18 @@ "BIGQUERY", "CLOUD_PUBSUB", "DATAPROC_METASTORE", - "DATAPLEX" + "DATAPLEX", + "CLOUD_SQL", + "LOOKER" ], "enumDescriptions": [ "Default unknown system.", "BigQuery.", "Cloud Pub/Sub.", "Dataproc Metastore.", - "Dataplex." + "Dataplex.", + "Cloud Sql", + "Looker" ], "readOnly": true, "type": "string" @@ -3352,6 +3733,25 @@ }, "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" + }, "GoogleCloudDatacatalogV1StarEntryRequest": { "description": "Request message for StarEntry.", "id": "GoogleCloudDatacatalogV1StarEntryRequest", @@ -3586,7 +3986,7 @@ "type": "string" }, "displayName": { - "description": "Required. User-defined name of this taxonomy. The name can't start or end with spaces, must contain only Unicode letters, numbers, underscores, dashes, and spaces, and be at most 200 bytes long when encoded in UTF-8.", + "description": "Required. User-defined name of this taxonomy. The name can't start or end with spaces, must contain only Unicode letters, numbers, underscores, dashes, and spaces, and be at most 200 bytes long when encoded in UTF-8. The taxonomy display name must be unique within an organization.", "type": "string" }, "name": { @@ -3600,6 +4000,11 @@ "readOnly": true, "type": "integer" }, + "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.", + "readOnly": true + }, "taxonomyTimestamps": { "$ref": "GoogleCloudDatacatalogV1SystemTimestamps", "description": "Output only. Creation and modification timestamps of this taxonomy.", @@ -3608,6 +4013,31 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1TaxonomyService": { + "description": "The source system of the Taxonomy.", + "id": "GoogleCloudDatacatalogV1TaxonomyService", + "properties": { + "identity": { + "description": "P4SA Identity of the service.", + "type": "string" + }, + "name": { + "description": "The GCP service name.", + "enum": [ + "MANAGING_SYSTEM_UNSPECIFIED", + "MANAGING_SYSTEM_DATAPLEX", + "MANAGING_SYSTEM_OTHER" + ], + "enumDescriptions": [ + "Default value", + "Dataplex.", + "Other" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1UnstarEntryRequest": { "description": "Request message for UnstarEntry.", "id": "GoogleCloudDatacatalogV1UnstarEntryRequest", @@ -3624,6 +4054,18 @@ "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", @@ -3633,7 +4075,8 @@ "additionalProperties": { "$ref": "GoogleCloudDatacatalogV1UsageStats" }, - "description": "Usage statistics over each of the predefined time ranges. Supported time ranges are `{\"24H\", \"7D\", \"30D\"}`.", + "description": "Output only. BigQuery usage statistics over each of the predefined time ranges. Supported time ranges are `{\"24H\", \"7D\", \"30D\"}`.", + "readOnly": true, "type": "object" } }, @@ -3678,6 +4121,59 @@ }, "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" + }, + "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 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" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -3708,7 +4204,34 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + } + }, + "type": "object" + }, + "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" @@ -3718,7 +4241,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/datacatalog/v1beta1/datacatalog-api.json b/etc/api/datacatalog/v1beta1/datacatalog-api.json index ad18fdf627..7c8bcf9787 100644 --- a/etc/api/datacatalog/v1beta1/datacatalog-api.json +++ b/etc/api/datacatalog/v1beta1/datacatalog-api.json @@ -267,7 +267,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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, @@ -365,7 +365,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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, @@ -393,7 +393,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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, @@ -508,7 +508,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/entries/[^/]+$", "required": true, @@ -612,7 +612,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/entries/[^/]+$", "required": true, @@ -990,7 +990,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1052,7 +1052,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1080,7 +1080,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1391,7 +1391,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1446,6 +1446,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Supported field for filter is 'service' and value is 'dataplex'. Eg: service=dataplex.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of items to return. Must be a value between 1 and 1000. If not set, defaults to 50.", "format": "int32", @@ -1517,7 +1522,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1545,7 +1550,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+$", "required": true, @@ -1655,7 +1660,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1753,7 +1758,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1781,7 +1786,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -1808,7 +1813,7 @@ } } }, - "revision": "20220224", + "revision": "20230117", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -1820,7 +1825,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1834,7 +1839,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1885,6 +1890,55 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ImportEntriesMetadata": { + "description": "Metadata message for long-running operation returned by the ImportEntries.", + "id": "GoogleCloudDatacatalogV1ImportEntriesMetadata", + "properties": { + "errors": { + "description": "Partial errors that are encountered during the ImportEntries operation. There is no guarantee that all the encountered errors are reported. However, if no errors are reported, it means that no errors were encountered.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, + "state": { + "description": "State of the import operation.", + "enum": [ + "IMPORT_STATE_UNSPECIFIED", + "IMPORT_QUEUED", + "IMPORT_IN_PROGRESS", + "IMPORT_DONE", + "IMPORT_OBSOLETE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The dump with entries has been queued for import.", + "The import of entries is in progress.", + "The import of entries has been finished.", + "The import of entries has been abandoned in favor of a newer request." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDatacatalogV1ImportEntriesResponse": { + "description": "Response message for long-running operation returned by the ImportEntries.", + "id": "GoogleCloudDatacatalogV1ImportEntriesResponse", + "properties": { + "deletedEntriesCount": { + "description": "Number of entries deleted as a result of import operation.", + "format": "int64", + "type": "string" + }, + "upsertedEntriesCount": { + "description": "Cumulative number of entries created and entries updated as a result of import operation.", + "format": "int64", + "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", @@ -2774,7 +2828,7 @@ "type": "string" }, "displayName": { - "description": "Required. User defined name of this taxonomy. It must: contain only unicode letters, numbers, underscores, dashes and spaces; not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8.", + "description": "Required. User defined name of this taxonomy. It must: contain only unicode letters, numbers, underscores, dashes and spaces; not start or end with spaces; and be at most 200 bytes long when encoded in UTF-8. The taxonomy display name must be unique within an organization.", "type": "string" }, "name": { @@ -2788,6 +2842,11 @@ "readOnly": true, "type": "integer" }, + "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.", + "readOnly": true + }, "taxonomyTimestamps": { "$ref": "GoogleCloudDatacatalogV1beta1SystemTimestamps", "description": "Output only. Timestamps about this taxonomy. Only create_time and update_time are used.", @@ -2796,6 +2855,31 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1beta1TaxonomyService": { + "description": "The source system of the Taxonomy.", + "id": "GoogleCloudDatacatalogV1beta1TaxonomyService", + "properties": { + "identity": { + "description": "P4SA Identity of the service.", + "type": "string" + }, + "name": { + "description": "The GCP service name.", + "enum": [ + "MANAGING_SYSTEM_UNSPECIFIED", + "MANAGING_SYSTEM_DATAPLEX", + "MANAGING_SYSTEM_OTHER" + ], + "enumDescriptions": [ + "Default value", + "Dataplex.", + "Other" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1beta1UsageSignal": { "description": "The set of all usage signals that we store in Data Catalog.", "id": "GoogleCloudDatacatalogV1beta1UsageSignal", @@ -2884,7 +2968,34 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + } + }, + "type": "object" + }, + "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" @@ -2894,7 +3005,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/dataflow/v1b3/dataflow-api.json b/etc/api/dataflow/v1b3/dataflow-api.json index 36ce2e9eeb..fef7436ad1 100644 --- a/etc/api/dataflow/v1b3/dataflow-api.json +++ b/etc/api/dataflow/v1b3/dataflow-api.json @@ -218,6 +218,11 @@ "location": "query", "type": "string" }, + "name": { + "description": "Optional. The job name. Optional.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", "format": "int32", @@ -265,7 +270,7 @@ ] }, "create": { - "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`.", + "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`. Do not enter confidential information when you supply string values using the API.", "flatPath": "v1b3/projects/{projectId}/jobs", "httpMethod": "POST", "id": "dataflow.projects.jobs.create", @@ -453,6 +458,11 @@ "location": "query", "type": "string" }, + "name": { + "description": "Optional. The job name. Optional.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", "format": "int32", @@ -910,7 +920,7 @@ "jobs": { "methods": { "create": { - "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`.", + "description": "Creates a Cloud Dataflow job. To create a job, we recommend using `projects.locations.jobs.create` with a [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints). Using `projects.jobs.create` is not recommended, as your job will always start in `us-central1`. Do not enter confidential information when you supply string values using the API.", "flatPath": "v1b3/projects/{projectId}/locations/{location}/jobs", "httpMethod": "POST", "id": "dataflow.projects.locations.jobs.create", @@ -1158,6 +1168,11 @@ "required": true, "type": "string" }, + "name": { + "description": "Optional. The job name. Optional.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "If there are many jobs, limit response to at most this many. The actual number of jobs returned will be the lesser of max_responses and an unspecified server-defined limit.", "format": "int32", @@ -1858,7 +1873,7 @@ "templates": { "methods": { "create": { - "description": "Creates a Cloud Dataflow job from a template.", + "description": "Creates a Cloud Dataflow job from a template. Do not enter confidential information when you supply string values using the API.", "flatPath": "v1b3/projects/{projectId}/locations/{location}/templates", "httpMethod": "POST", "id": "dataflow.projects.locations.templates.create", @@ -2088,7 +2103,7 @@ "templates": { "methods": { "create": { - "description": "Creates a Cloud Dataflow job from a template.", + "description": "Creates a Cloud Dataflow job from a template. Do not enter confidential information when you supply string values using the API.", "flatPath": "v1b3/projects/{projectId}/templates", "httpMethod": "POST", "id": "dataflow.projects.templates.create", @@ -2225,7 +2240,7 @@ } } }, - "revision": "20220218", + "revision": "20230106", "rootUrl": "https://dataflow.googleapis.com/", "schemas": { "ApproximateProgress": { @@ -2541,6 +2556,18 @@ "description": "Name of the docker container image. E.g., gcr.io/project/some-image", "type": "string" }, + "imageRepositoryCertPath": { + "description": "Cloud Storage path to self-signed certificate of private registry.", + "type": "string" + }, + "imageRepositoryPasswordSecretId": { + "description": "Secret Manager secret id for password to authenticate to private registry.", + "type": "string" + }, + "imageRepositoryUsernameSecretId": { + "description": "Secret Manager secret id for username to authenticate to private registry.", + "type": "string" + }, "metadata": { "$ref": "TemplateMetadata", "description": "Metadata describing a template including description and validation rules." @@ -3334,7 +3361,11 @@ "type": "integer" }, "dumpHeapOnOom": { - "description": "If true, save a heap dump before killing a thread or process which is GC thrashing or out of memory. The location of the heap file will either be echoed back to the user, or the user will be given the opportunity to download the heap file.", + "description": "If true, when processing time is spent almost entirely on garbage collection (GC), saves a heap dump before ending the thread or process. If false, ends the thread or process without saving a heap dump. Does not save a heap dump when the Java Virtual Machine (JVM) has an out of memory error during processing. The location of the heap file is either echoed back to the user, or the user is given the opportunity to download the heap file.", + "type": "boolean" + }, + "enableLauncherVmSerialPortLogging": { + "description": "If true serial port logging will be enabled for the launcher VM.", "type": "boolean" }, "enableStreamingEngine": { @@ -3396,7 +3427,7 @@ "type": "integer" }, "saveHeapDumpsToGcsPath": { - "description": "Cloud Storage bucket (directory) to upload heap dumps to the given location. Enabling this implies that heap dumps should be generated on OOM (dump_heap_on_oom is set to true).", + "description": "Cloud Storage bucket (directory) to upload heap dumps to. Enabling this field implies that `dump_heap_on_oom` is set to true.", "type": "string" }, "sdkContainerImage": { @@ -3548,6 +3579,20 @@ }, "type": "object" }, + "HotKeyDebuggingInfo": { + "description": "Information useful for debugging a hot key detection.", + "id": "HotKeyDebuggingInfo", + "properties": { + "detectedHotKeys": { + "additionalProperties": { + "$ref": "HotKeyInfo" + }, + "description": "Debugging information for each detected hot key. Keyed by a hash of the key.", + "type": "object" + } + }, + "type": "object" + }, "HotKeyDetection": { "description": "Proto describing a hot key detected on a given WorkItem.", "id": "HotKeyDetection", @@ -3568,6 +3613,26 @@ }, "type": "object" }, + "HotKeyInfo": { + "description": "Information about a hot key.", + "id": "HotKeyInfo", + "properties": { + "hotKeyAge": { + "description": "The age of the hot key measured from when it was first detected.", + "format": "google-duration", + "type": "string" + }, + "key": { + "description": "A detected hot key that is causing limited parallelism. This field will be populated only if the following flag is set to true: \"--enable_hot_key_logging\".", + "type": "string" + }, + "keyTruncated": { + "description": "If true, then the above key is truncated and cannot be deserialized. This occurs if the key above is populated and the key size is >5MB.", + "type": "boolean" + } + }, + "type": "object" + }, "InstructionInput": { "description": "An input of an instruction, as a reference to an output of a producer instruction.", "id": "InstructionInput", @@ -3666,7 +3731,7 @@ "type": "object" }, "Job": { - "description": "Defines a job to be run by the Cloud Dataflow service.", + "description": "Defines a job to be run by the Cloud Dataflow service. Do not enter confidential information when you supply string values using the API.", "id": "Job", "properties": { "clientRequestId": { @@ -3749,7 +3814,7 @@ "type": "string" }, "name": { - "description": "The user-specified Cloud Dataflow job name. Only one Job with a given name may exist in a project at any given time. 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,38}[a-z0-9])?`", + "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])?`", "type": "string" }, "pipelineDescription": { @@ -4139,7 +4204,7 @@ "type": "object" }, "LaunchTemplateParameters": { - "description": "Parameters to provide to the template being launched.", + "description": "Parameters to provide to the template being launched. Note that the [metadata in the pipeline code] (https://cloud.google.com/dataflow/docs/guides/templates/creating-templates#metadata) determines which runtime parameters are valid.", "id": "LaunchTemplateParameters", "properties": { "environment": { @@ -4147,7 +4212,7 @@ "description": "The runtime environment for the job." }, "jobName": { - "description": "Required. The job name to use for the created job.", + "description": "Required. The job name to use for the created job. The name must match the regular expression `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`", "type": "string" }, "parameters": { @@ -4678,7 +4743,9 @@ "GCS_READ_FOLDER", "GCS_WRITE_FOLDER", "PUBSUB_TOPIC", - "PUBSUB_SUBSCRIPTION" + "PUBSUB_SUBSCRIPTION", + "BIGQUERY_TABLE", + "JAVASCRIPT_UDF_FILE" ], "enumDescriptions": [ "Default input type.", @@ -4690,7 +4757,9 @@ "The parameter specifies a Cloud Storage folder path to read from.", "The parameter specifies a Cloud Storage folder to write to.", "The parameter specifies a Pub/Sub Topic.", - "The parameter specifies a Pub/Sub Subscription." + "The parameter specifies a Pub/Sub Subscription.", + "The parameter specifies a BigQuery table.", + "The parameter specifies a JavaScript UDF in Cloud Storage." ], "type": "string" }, @@ -4770,6 +4839,10 @@ "$ref": "TransformSummary" }, "type": "array" + }, + "stepNamesHash": { + "description": "A hash value of the submitted pipeline portable graph step names if exists.", + "type": "string" } }, "type": "object" @@ -5111,7 +5184,7 @@ "type": "string" }, "numWorkers": { - "description": "The initial number of Google Compute Engine instnaces for the job.", + "description": "The initial number of Google Compute Engine instances for the job.", "format": "int32", "type": "integer" }, @@ -5169,12 +5242,14 @@ "enum": [ "UNKNOWN", "JAVA", - "PYTHON" + "PYTHON", + "GO" ], "enumDescriptions": [ "UNKNOWN Language.", "Java.", - "Python." + "Python.", + "Go." ], "type": "string" }, @@ -5186,9 +5261,16 @@ "type": "object" }, "SdkHarnessContainerImage": { - "description": "Defines a SDK harness container for executing Dataflow pipelines.", + "description": "Defines an SDK harness container for executing Dataflow pipelines.", "id": "SdkHarnessContainerImage", "properties": { + "capabilities": { + "description": "The set of capabilities enumerated in the above Environment proto. See also [beam_runner_api.proto](https://github.com/apache/beam/blob/master/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto)", + "items": { + "type": "string" + }, + "type": "array" + }, "containerImage": { "description": "A docker container image that resides in Google Container Registry.", "type": "string" @@ -5238,7 +5320,7 @@ "type": "object" }, "SendDebugCaptureRequest": { - "description": "Request to send encoded debug information.", + "description": "Request to send encoded debug information. Next ID: 8", "id": "SendDebugCaptureRequest", "properties": { "componentId": { @@ -5249,6 +5331,24 @@ "description": "The encoded debug information.", "type": "string" }, + "dataFormat": { + "description": "Format for the data field above (id=5).", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "RAW", + "JSON", + "ZLIB", + "BROTLI" + ], + "enumDescriptions": [ + "Format unspecified, parsing is determined based upon page type and legacy encoding. (go/protodosdonts#do-include-an-unspecified-value-in-an-enum)", + "Raw HTML string.", + "JSON-encoded string.", + "Websafe encoded zlib-compressed string.", + "Websafe encoded brotli-compressed string." + ], + "type": "string" + }, "location": { "description": "The [regional endpoint] (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that contains the job specified by job_id.", "type": "string" @@ -5885,6 +5985,10 @@ "Execution of the component was cancelled." ], "type": "string" + }, + "stragglerSummary": { + "$ref": "StragglerSummary", + "description": "Straggler summary for this stage." } }, "type": "object" @@ -5932,7 +6036,7 @@ "type": "object" }, "Step": { - "description": "Defines a particular step within a Cloud Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. Note that the Cloud Dataflow service may be used to run many different types of jobs, not just Map-Reduce.", + "description": "Defines a particular step within a Cloud Dataflow job. A job consists of multiple steps, each of which performs some specific operation as part of the overall job. Data is typically passed from one step to another as part of the job. **Note:** The properties of this object are not stable and might change. Here's an example of a sequence of steps which together implement a Map-Reduce job: * Read a collection of data from some source, parsing the collection's elements. * Validate the elements. * Apply a user-defined function to map each element to some value and extract an element-specific key value. * Group elements with the same key into a single element with that key, transforming a multiply-keyed collection into a uniquely-keyed collection. * Write the elements out to some data sink. Note that the Cloud Dataflow service may be used to run many different types of jobs, not just Map-Reduce.", "id": "Step", "properties": { "kind": { @@ -5954,6 +6058,78 @@ }, "type": "object" }, + "Straggler": { + "description": "Information for a straggler.", + "id": "Straggler", + "properties": { + "batchStraggler": { + "$ref": "StragglerInfo", + "description": "Batch straggler identification and debugging information." + }, + "streamingStraggler": { + "$ref": "StreamingStragglerInfo", + "description": "Streaming straggler identification and debugging information." + } + }, + "type": "object" + }, + "StragglerDebuggingInfo": { + "description": "Information useful for debugging a straggler. Each type will provide specialized debugging information relevant for a particular cause. The StragglerDebuggingInfo will be 1:1 mapping to the StragglerCause enum.", + "id": "StragglerDebuggingInfo", + "properties": { + "hotKey": { + "$ref": "HotKeyDebuggingInfo", + "description": "Hot key debugging details." + } + }, + "type": "object" + }, + "StragglerInfo": { + "description": "Information useful for straggler identification and debugging.", + "id": "StragglerInfo", + "properties": { + "causes": { + "additionalProperties": { + "$ref": "StragglerDebuggingInfo" + }, + "description": "The straggler causes, keyed by the string representation of the StragglerCause enum and contains specialized debugging information for each straggler cause.", + "type": "object" + }, + "startTime": { + "description": "The time when the work item attempt became a straggler.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "StragglerSummary": { + "description": "Summarized straggler identification details.", + "id": "StragglerSummary", + "properties": { + "recentStragglers": { + "description": "The most recent stragglers.", + "items": { + "$ref": "Straggler" + }, + "type": "array" + }, + "stragglerCauseCount": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Aggregated counts of straggler causes, keyed by the string representation of the StragglerCause enum.", + "type": "object" + }, + "totalStragglerCount": { + "description": "The total count of stragglers.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "StreamLocation": { "description": "Describes a stream of data, either as input to be processed or as output of a streaming Dataflow job.", "id": "StreamLocation", @@ -6178,6 +6354,37 @@ }, "type": "object" }, + "StreamingStragglerInfo": { + "description": "Information useful for streaming straggler identification and debugging.", + "id": "StreamingStragglerInfo", + "properties": { + "dataWatermarkLag": { + "description": "The event-time watermark lag at the time of the straggler detection.", + "format": "google-duration", + "type": "string" + }, + "endTime": { + "description": "End time of this straggler.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start time of this straggler.", + "format": "google-datetime", + "type": "string" + }, + "systemWatermarkLag": { + "description": "The system watermark lag at the time of the straggler detection.", + "format": "google-duration", + "type": "string" + }, + "workerName": { + "description": "Name of the worker where the straggler was detected.", + "type": "string" + } + }, + "type": "object" + }, "StringList": { "description": "A metric value representing a list of strings.", "id": "StringList", @@ -6560,6 +6767,10 @@ ], "type": "string" }, + "stragglerInfo": { + "$ref": "StragglerInfo", + "description": "Information about straggler detections for this work item." + }, "taskId": { "description": "Name of this work item.", "type": "string" @@ -6851,6 +7062,10 @@ "workerShutdownNotice": { "$ref": "WorkerShutdownNotice", "description": "Shutdown notice by workers." + }, + "workerThreadScalingReport": { + "$ref": "WorkerThreadScalingReport", + "description": "Thread scaling information reported by workers." } }, "type": "object" @@ -6889,6 +7104,10 @@ "workerShutdownNoticeResponse": { "$ref": "WorkerShutdownNoticeResponse", "description": "Service's response to shutdown notice (currently empty)." + }, + "workerThreadScalingReportResponse": { + "$ref": "WorkerThreadScalingReportResponse", + "description": "Service's thread scaling recommendation for workers." } }, "type": "object" @@ -7089,6 +7308,30 @@ "properties": {}, "type": "object" }, + "WorkerThreadScalingReport": { + "description": "Contains information about the thread scaling information of a worker.", + "id": "WorkerThreadScalingReport", + "properties": { + "currentThreadCount": { + "description": "Current number of active threads in a worker.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "WorkerThreadScalingReportResponse": { + "description": "Contains the thread scaling recommendation for a worker from the backend.", + "id": "WorkerThreadScalingReportResponse", + "properties": { + "recommendedThreadCount": { + "description": "Recommended number of threads for a worker.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "WriteInstruction": { "description": "An instruction that writes records. Takes one input, produces no outputs.", "id": "WriteInstruction", diff --git a/etc/api/datafusion/v1/datafusion-api.json b/etc/api/datafusion/v1/datafusion-api.json index 01ed991302..42e47ecb48 100644 --- a/etc/api/datafusion/v1/datafusion-api.json +++ b/etc/api/datafusion/v1/datafusion-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -277,13 +277,13 @@ ], "parameters": { "options.requestedPolicyVersion": { - "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "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 the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -361,7 +361,7 @@ "type": "string" }, "updateMask": { - "description": "Field mask is used to specify the fields that the update will overwrite in an instance resource. 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, all the supported fields (labels, options, and version currently) will be overwritten.", + "description": "Field mask is used to specify the fields that the update will overwrite in an instance resource. 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, the label field will be overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -416,7 +416,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -444,7 +444,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -462,6 +462,106 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "dnsPeerings": { + "methods": { + "create": { + "description": "Creates DNS peering on the given resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", + "httpMethod": "POST", + "id": "datafusion.projects.locations.instances.dnsPeerings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dnsPeeringId": { + "description": "Required. The name of the peering to create.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource on which DNS peering will be created.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dnsPeerings", + "request": { + "$ref": "DnsPeering" + }, + "response": { + "$ref": "DnsPeering" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes DNS peering on the given resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings/{dnsPeeringsId}", + "httpMethod": "DELETE", + "id": "datafusion.projects.locations.instances.dnsPeerings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the DNS peering zone to delete. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/dnsPeerings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists DNS peerings for a given resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", + "httpMethod": "GET", + "id": "datafusion.projects.locations.instances.dnsPeerings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of dns peerings to return. The service may return fewer than this value. If unspecified, at most 50 dns peerings will be returned. The maximum value is 200; values above 200 will be coerced to 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDnsPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDnsPeerings` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of dns peerings. Format: projects/{project}/locations/{location}/instances/{instance}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dnsPeerings", + "response": { + "$ref": "ListDnsPeeringsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "operations": { @@ -637,7 +737,7 @@ } } }, - "revision": "20211028", + "revision": "20221213", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -661,7 +761,7 @@ "type": "string" }, "state": { - "description": "The state of the accelerator", + "description": "The state of the accelerator.", "enum": [ "STATE_UNSPECIFIED", "ENABLED", @@ -669,10 +769,10 @@ "UNKNOWN" ], "enumDescriptions": [ - "Default value, do not use", - "Indicates that the accelerator is enabled and available to use", - "Indicates that the accelerator is disabled and not available to use", - "Indicates that accelerator state is currently unknown. Requests for enable, disable could be retried while in this state" + "Default value, do not use.", + "Indicates that the accelerator is enabled and available to use.", + "Indicates that the accelerator is disabled and not available to use.", + "Indicates that accelerator state is currently unknown. Requests for enable, disable could be retried while in this state." ], "type": "string" } @@ -680,7 +780,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -736,7 +836,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -766,12 +866,54 @@ }, "type": "object" }, + "DnsPeering": { + "description": "DNS peering configuration. These configurations are used to create DNS peering with the customer Cloud DNS.", + "id": "DnsPeering", + "properties": { + "description": { + "description": "Optional. Optional description of the dns zone.", + "type": "string" + }, + "domain": { + "description": "Required. The dns name suffix of the zone.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the dns peering zone. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", + "type": "string" + }, + "targetNetwork": { + "description": "Optional. Optional target network to which dns peering should happen.", + "type": "string" + }, + "targetProject": { + "description": "Optional. Optional target project to which dns peering should happen.", + "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EventPublishConfig": { + "description": "Confirguration of PubSubEventWriter.", + "id": "EventPublishConfig", + "properties": { + "enabled": { + "description": "Required. Option to enable Event Publishing.", + "type": "boolean" + }, + "topic": { + "description": "Required. The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id}", + "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", @@ -868,6 +1010,14 @@ "description": "Option to enable Stackdriver Monitoring.", "type": "boolean" }, + "enableZoneSeparation": { + "description": "Option to enable granular zone separation.", + "type": "boolean" + }, + "eventPublishConfig": { + "$ref": "EventPublishConfig", + "description": "Option to enable and pass metadata for event publishing." + }, "gcsBucket": { "description": "Output only. Cloud Storage bucket generated by Data Fusion in the customer project.", "readOnly": true, @@ -1007,6 +1157,24 @@ }, "type": "object" }, + "ListDnsPeeringsResponse": { + "description": "Response message for list DNS peerings.", + "id": "ListDnsPeeringsResponse", + "properties": { + "dnsPeerings": { + "description": "List of dns peering.", + "items": { + "$ref": "DnsPeering" + }, + "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" + }, "ListInstancesResponse": { "description": "Response message for the list instance request.", "id": "ListInstancesResponse", @@ -1239,7 +1407,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1281,7 +1449,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/datafusion/v1beta1/datafusion-api.json b/etc/api/datafusion/v1beta1/datafusion-api.json index ab0ba1f39e..bfe69e289e 100644 --- a/etc/api/datafusion/v1beta1/datafusion-api.json +++ b/etc/api/datafusion/v1beta1/datafusion-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -305,13 +305,13 @@ ], "parameters": { "options.requestedPolicyVersion": { - "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "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 the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -444,7 +444,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -472,7 +472,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -522,15 +522,20 @@ "resources": { "dnsPeerings": { "methods": { - "add": { - "description": "Add DNS peering on the given resource.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings:add", + "create": { + "description": "Creates DNS peering on the given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", "httpMethod": "POST", - "id": "datafusion.projects.locations.instances.dnsPeerings.add", + "id": "datafusion.projects.locations.instances.dnsPeerings.create", "parameterOrder": [ "parent" ], "parameters": { + "dnsPeeringId": { + "description": "Required. The name of the peering to create.", + "location": "query", + "type": "string" + }, "parent": { "description": "Required. The resource on which DNS peering will be created.", "location": "path", @@ -539,20 +544,45 @@ "type": "string" } }, - "path": "v1beta1/{+parent}/dnsPeerings:add", + "path": "v1beta1/{+parent}/dnsPeerings", "request": { - "$ref": "AddDnsPeeringRequest" + "$ref": "DnsPeering" }, "response": { - "$ref": "AddDnsPeeringResponse" + "$ref": "DnsPeering" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes DNS peering on the given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings/{dnsPeeringsId}", + "httpMethod": "DELETE", + "id": "datafusion.projects.locations.instances.dnsPeerings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the DNS peering zone to delete. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/dnsPeerings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "list": { - "description": "List DNS peering for a given resource.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings:list", + "description": "Lists DNS peerings for a given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings", "httpMethod": "GET", "id": "datafusion.projects.locations.instances.dnsPeerings.list", "parameterOrder": [ @@ -560,59 +590,31 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of items to return.", + "description": "The maximum number of dns peerings to return. The service may return fewer than this value. If unspecified, at most 50 dns peerings will be returned. The maximum value is 200; values above 200 will be coerced to 200.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The next_page_token value to use if there are additional results to retrieve for this list request.", + "description": "A page token, received from a previous `ListDnsPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDnsPeerings` must match the call that provided the page token.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The resource on which dns peering will be listed.", + "description": "Required. The parent, which owns this collection of dns peerings. Format: projects/{project}/locations/{location}/instances/{instance}", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, "type": "string" } }, - "path": "v1beta1/{+parent}/dnsPeerings:list", + "path": "v1beta1/{+parent}/dnsPeerings", "response": { "$ref": "ListDnsPeeringsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "remove": { - "description": "Remove DNS peering on the given resource.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/dnsPeerings:remove", - "httpMethod": "POST", - "id": "datafusion.projects.locations.instances.dnsPeerings.remove", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The resource on which DNS peering will be removed.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+parent}/dnsPeerings:remove", - "request": { - "$ref": "RemoveDnsPeeringRequest" - }, - "response": { - "$ref": "RemoveDnsPeeringResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] } } }, @@ -628,13 +630,13 @@ ], "parameters": { "options.requestedPolicyVersion": { - "description": "Optional. The policy format version to be returned. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional bindings must specify version 3. Policies without any conditional bindings may specify any valid value or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "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 the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/namespaces/[^/]+$", "required": true, @@ -710,7 +712,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/namespaces/[^/]+$", "required": true, @@ -738,7 +740,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+/namespaces/[^/]+$", "required": true, @@ -933,7 +935,7 @@ } } }, - "revision": "20211028", + "revision": "20221213", "rootUrl": "https://datafusion.googleapis.com/", "schemas": { "Accelerator": { @@ -945,37 +947,38 @@ "enum": [ "ACCELERATOR_TYPE_UNSPECIFIED", "CDC", - "HEALTHCARE" + "HEALTHCARE", + "CCAI_INSIGHTS" ], "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." + "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." + ], + "type": "string" + }, + "state": { + "description": "The state of the accelerator.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED", + "UNKNOWN" + ], + "enumDescriptions": [ + "Default value, do not use.", + "Indicates that the accelerator is enabled and available to use.", + "Indicates that the accelerator is disabled and not available to use.", + "Indicates that accelerator state is currently unknown. Requests for enable, disable could be retried while in this state." ], "type": "string" } }, "type": "object" }, - "AddDnsPeeringRequest": { - "description": "Request message to create dns peering.", - "id": "AddDnsPeeringRequest", - "properties": { - "dnsPeering": { - "$ref": "DnsPeering", - "description": "Dns peering config." - } - }, - "type": "object" - }, - "AddDnsPeeringResponse": { - "description": "Response message for set dns peering method.", - "id": "AddDnsPeeringResponse", - "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1031,7 +1034,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1070,7 +1073,11 @@ "type": "string" }, "domain": { - "description": "Required. Name of the dns.", + "description": "Required. The dns name suffix of the zone.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the dns peering zone. Format: projects/{project}/locations/{location}/instances/{instance}/dnsPeerings/{dns_peering}", "type": "string" }, "targetNetwork": { @@ -1080,20 +1087,31 @@ "targetProject": { "description": "Optional. Optional target project to which dns peering should happen.", "type": "string" - }, - "zone": { - "description": "Required. Name of the zone.", - "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EventPublishConfig": { + "description": "Confirguration of PubSubEventWriter.", + "id": "EventPublishConfig", + "properties": { + "enabled": { + "description": "Required. Option to enable Event Publishing.", + "type": "boolean" + }, + "topic": { + "description": "Required. The resource name of the Pub/Sub topic. Format: projects/{project_id}/topics/{topic_id}", + "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", @@ -1205,6 +1223,14 @@ "description": "Option to enable Stackdriver Monitoring.", "type": "boolean" }, + "enableZoneSeparation": { + "description": "Option to enable zone separation.", + "type": "boolean" + }, + "eventPublishConfig": { + "$ref": "EventPublishConfig", + "description": "Option to enable and pass metadata for event publishing." + }, "gcsBucket": { "description": "Output only. Cloud Storage bucket generated by Data Fusion in the customer project.", "readOnly": true, @@ -1345,18 +1371,18 @@ "type": "object" }, "ListDnsPeeringsResponse": { - "description": "List dns peering response.", + "description": "Response message for list DNS peerings.", "id": "ListDnsPeeringsResponse", "properties": { "dnsPeerings": { - "description": "List of dns peering configs.", + "description": "List of dns peering.", "items": { "$ref": "DnsPeering" }, "type": "array" }, "nextPageToken": { - "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", + "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" } }, @@ -1544,6 +1570,13 @@ "description": "Represents the metadata of a long-running operation.", "id": "OperationMetadata", "properties": { + "additionalStatus": { + "additionalProperties": { + "type": "string" + }, + "description": "Map to hold any additional status info for the operation If there is an accelerator being enabled/disabled/deleted, this will be populated with accelerator name as key and status as ENABLING, DISABLING or DELETING", + "type": "object" + }, "apiVersion": { "description": "API version used to start the operation.", "type": "string" @@ -1608,23 +1641,6 @@ }, "type": "object" }, - "RemoveDnsPeeringRequest": { - "description": "Request message to remove dns peering.", - "id": "RemoveDnsPeeringRequest", - "properties": { - "zone": { - "description": "Required. The zone to be removed.", - "type": "string" - } - }, - "type": "object" - }, - "RemoveDnsPeeringResponse": { - "description": "Response message for set dns peering method.", - "id": "RemoveDnsPeeringResponse", - "properties": {}, - "type": "object" - }, "RemoveIamPolicyRequest": { "description": "Request message for RemoveIamPolicy method.", "id": "RemoveIamPolicyRequest", @@ -1649,7 +1665,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1691,7 +1707,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1745,7 +1761,7 @@ "enumDescriptions": [ "Version does not have availability yet", "Version is under development and not considered stable", - "Version is available for public use" + "Version is available for public use Version is under development and not considered stable" ], "type": "string" }, diff --git a/etc/api/datalabeling/v1beta1/datalabeling-api.json b/etc/api/datalabeling/v1beta1/datalabeling-api.json index f9ba97edc5..42b5fb8ebf 100644 --- a/etc/api/datalabeling/v1beta1/datalabeling-api.json +++ b/etc/api/datalabeling/v1beta1/datalabeling-api.json @@ -1596,7 +1596,7 @@ } } }, - "revision": "20220301", + "revision": "20221205", "rootUrl": "https://datalabeling.googleapis.com/", "schemas": { "GoogleCloudDatalabelingV1alpha1CreateInstructionMetadata": { @@ -5618,7 +5618,7 @@ "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/datamigration/v1/datamigration-api.json b/etc/api/datamigration/v1/datamigration-api.json index 5f89397c1d..65323c4ea1 100644 --- a/etc/api/datamigration/v1/datamigration-api.json +++ b/etc/api/datamigration/v1/datamigration-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -201,9 +201,19 @@ "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 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.", "location": "query", "type": "string" + }, + "skipValidation": { + "description": "Optional. Create the connection profile without validating it. The default is false. Only supported for Oracle connection profiles.", + "location": "query", + "type": "boolean" + }, + "validateOnly": { + "description": "Optional. Only validate the connection profile, but don't create any resources. The default is false. Only supported for Oracle connection profiles.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+parent}/connectionProfiles", @@ -293,7 +303,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -371,15 +381,25 @@ "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 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.", "location": "query", "type": "string" }, + "skipValidation": { + "description": "Optional. Update the connection profile without validating it. The default is false. Only supported for Oracle connection profiles.", + "location": "query", + "type": "boolean" + }, "updateMask": { "description": "Required. Field mask is used to specify the fields to be overwritten in the connection profile resource by the update.", "format": "google-fieldmask", "location": "query", "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the connection profile, but don't update any resources. The default is false. Only supported for Oracle connection profiles.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+name}", @@ -403,7 +423,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -431,7 +451,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -451,6 +471,497 @@ } } }, + "conversionWorkspaces": { + "methods": { + "apply": { + "description": "Apply draft tree onto a specific destination database", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:apply", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.apply", + "parameterOrder": [ + "name" + ], + "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}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:apply", + "request": { + "$ref": "ApplyConversionWorkspaceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "commit": { + "description": "Marks all the data in the conversion workspace as committed.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:commit", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.commit", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the conversion workspace resource to commit.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:commit", + "request": { + "$ref": "CommitConversionWorkspaceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "convert": { + "description": "Creates a draft tree schema for the destination database.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:convert", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.convert", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the conversion workspace resource to convert in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:convert", + "request": { + "$ref": "ConvertConversionWorkspaceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new conversion workspace in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "conversionWorkspaceId": { + "description": "Required. The ID of the conversion workspace to create.", + "location": "query", + "type": "string" + }, + "parent": { + "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.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/conversionWorkspaces", + "request": { + "$ref": "ConversionWorkspace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", + "httpMethod": "DELETE", + "id": "datamigration.projects.locations.conversionWorkspaces.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the conversion workspace resource to delete.", + "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 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.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "describeConversionWorkspaceRevisions": { + "description": "Retrieves a list of committed revisions of a specific conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:describeConversionWorkspaceRevisions", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.describeConversionWorkspaceRevisions", + "parameterOrder": [ + "conversionWorkspace" + ], + "parameters": { + "commitId": { + "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}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+conversionWorkspace}:describeConversionWorkspaceRevisions", + "response": { + "$ref": "DescribeConversionWorkspaceRevisionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:describeDatabaseEntities", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.describeDatabaseEntities", + "parameterOrder": [ + "conversionWorkspace" + ], + "parameters": { + "commitId": { + "description": "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}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + }, + "filter": { + "description": "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.", + "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.", + "location": "query", + "type": "string" + }, + "tree": { + "description": "The tree to fetch", + "enum": [ + "DB_TREE_TYPE_UNSPECIFIED", + "SOURCE_TREE", + "DRAFT_TREE", + "DESTINATION_TREE" + ], + "enumDescriptions": [ + "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.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+conversionWorkspace}:describeDatabaseEntities", + "response": { + "$ref": "DescribeDatabaseEntitiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the conversion workspace resource to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ConversionWorkspace" + }, + "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", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.list", + "parameterOrder": [ + "parent" + ], + "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", + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The nextPageToken value received in the previous call to conversionWorkspaces.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 conversionWorkspaces.list must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of conversion workspaces.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/conversionWorkspaces", + "response": { + "$ref": "ListConversionWorkspacesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}", + "httpMethod": "PATCH", + "id": "datamigration.projects.locations.conversionWorkspaces.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Full name of the workspace resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "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 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.", + "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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "ConversionWorkspace" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "rollback": { + "description": "Rollbacks a conversion workspace to the last committed spanshot.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:rollback", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.rollback", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the conversion workspace resource to rollback to.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rollback", + "request": { + "$ref": "RollbackConversionWorkspaceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:searchBackgroundJobs", + "httpMethod": "GET", + "id": "datamigration.projects.locations.conversionWorkspaces.searchBackgroundJobs", + "parameterOrder": [ + "conversionWorkspace" + ], + "parameters": { + "completedUntilTime": { + "description": "Optional. If supplied, will only return 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}.", + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "returnMostRecentPerJobType": { + "description": "Optional. Whether or not to return just the most recent job per job type", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+conversionWorkspace}:searchBackgroundJobs", + "response": { + "$ref": "SearchBackgroundJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "seed": { + "description": "Imports a snapshot of the source database into the conversion workspace.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/conversionWorkspaces/{conversionWorkspacesId}:seed", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.seed", + "parameterOrder": [ + "name" + ], + "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}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversionWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:seed", + "request": { + "$ref": "SeedConversionWorkspaceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "mappingRules": { + "methods": { + "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", + "httpMethod": "POST", + "id": "datamigration.projects.locations.conversionWorkspaces.mappingRules.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of the conversion workspace resource to import the rules to 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:import", + "request": { + "$ref": "ImportMappingRulesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "migrationJobs": { "methods": { "create": { @@ -595,7 +1106,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -789,7 +1300,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -873,7 +1384,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -1043,17 +1554,220 @@ ] } } + }, + "privateConnections": { + "methods": { + "create": { + "description": "Creates a new private connection in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections", + "httpMethod": "POST", + "id": "datamigration.projects.locations.privateConnections.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent that owns the collection of PrivateConnections.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "privateConnectionId": { + "description": "Required. The private connection identifier.", + "location": "query", + "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.", + "location": "query", + "type": "string" + }, + "skipValidation": { + "description": "Optional. If set to true, will skip validations.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/privateConnections", + "request": { + "$ref": "PrivateConnection" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Database Migration Service private connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", + "httpMethod": "DELETE", + "id": "datamigration.projects.locations.privateConnections.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the private connection to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", + "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.", + "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 private connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/privateConnections/{privateConnectionsId}", + "httpMethod": "GET", + "id": "datamigration.projects.locations.privateConnections.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the private connection to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/privateConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "PrivateConnection" + }, + "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", + "httpMethod": "GET", + "id": "datamigration.projects.locations.privateConnections.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters private connections listed in the response. The expression must specify the field name, a comparison operator, and the value 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 private connections created this year by specifying **createTime %gt; 2021-01-01T00:00:00.000000000Z**.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order by fields for the result.", + "location": "query", + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token received from a previous `ListPrivateConnections` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPrivateConnections` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent that owns the collection of private connections.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/privateConnections", + "response": { + "$ref": "ListPrivateConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20220216", + "revision": "20230105", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { + "AlloyDbConnectionProfile": { + "description": "Specifies required connection parameters, and the parameters required to create an AlloyDB destination cluster.", + "id": "AlloyDbConnectionProfile", + "properties": { + "clusterId": { + "description": "Required. The AlloyDB cluster ID that this connection profile is associated with.", + "type": "string" + }, + "settings": { + "$ref": "AlloyDbSettings", + "description": "Immutable. Metadata used to create the destination AlloyDB cluster." + } + }, + "type": "object" + }, + "AlloyDbSettings": { + "description": "Settings for creating an AlloyDB cluster.", + "id": "AlloyDbSettings", + "properties": { + "initialUser": { + "$ref": "UserPassword", + "description": "Required. Input only. Initial user to setup during cluster creation. Required." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the AlloyDB cluster created by DMS. An object containing a list of 'key', 'value' pairs.", + "type": "object" + }, + "primaryInstanceSettings": { + "$ref": "PrimaryInstanceSettings" + }, + "vpcNetwork": { + "description": "Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: \"projects/{project_number}/global/networks/{network_id}\". This is required to create a cluster.", + "type": "string" + } + }, + "type": "object" + }, + "ApplyConversionWorkspaceRequest": { + "description": "Request message for 'ApplyConversionWorkspace' request.", + "id": "ApplyConversionWorkspaceRequest", + "properties": { + "connectionProfile": { + "description": "Fully qualified (Uri) name of the destination connection profile.", + "type": "string" + }, + "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" + } + }, + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1100,6 +1814,75 @@ }, "type": "object" }, + "BackgroundJobLogEntry": { + "description": "Execution log of a background job.", + "id": "BackgroundJobLogEntry", + "properties": { + "completionComment": { + "description": "Job completion comment, such as how many entities were seeded, how many warnings were found during conversion and similar information.", + "type": "string" + }, + "completionState": { + "description": "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.", + "Success.", + "Error." + ], + "type": "string" + }, + "finishTime": { + "description": "The timestamp when the background job was finished.", + "format": "google-datetime", + "type": "string" + }, + "id": { + "description": "The background job log entry id", + "type": "string" + }, + "importRulesJobDetails": { + "$ref": "ImportRulesJobDetails", + "description": "Import rules job details" + }, + "jobType": { + "description": "The type of job that was executed.", + "enum": [ + "BACKGROUND_JOB_TYPE_UNSPECIFIED", + "BACKGROUND_JOB_TYPE_SOURCE_SEED", + "BACKGROUND_JOB_TYPE_CONVERT", + "BACKGROUND_JOB_TYPE_APPLY_DESTINATION", + "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" + ], + "type": "string" + }, + "requestAutocommit": { + "description": "Whether the client requested the conversion workspace to be committed after a successful completion of the job.", + "type": "boolean" + }, + "seedJobDetails": { + "$ref": "SeedJobDetails", + "description": "Seed job details" + }, + "startTime": { + "description": "The timestamp when the background job was started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1109,7 +1892,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1132,6 +1915,11 @@ "description": "Specifies required connection parameters, and, optionally, the parameters required to create a Cloud SQL destination database instance.", "id": "CloudSqlConnectionProfile", "properties": { + "additionalPublicIp": { + "description": "Output only. The Cloud SQL database instance's additional (outgoing) public IP. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available).", + "readOnly": true, + "type": "string" + }, "cloudSqlId": { "description": "Output only. The Cloud SQL instance ID that this connection profile is associated with.", "readOnly": true, @@ -1176,6 +1964,20 @@ "description": "[default: ON] If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity. If the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB.", "type": "boolean" }, + "availabilityType": { + "description": "Optional. Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data availability. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", + "enum": [ + "SQL_AVAILABILITY_TYPE_UNSPECIFIED", + "ZONAL", + "REGIONAL" + ], + "enumDescriptions": [ + "This is an unknown Availability type.", + "Zonal availablility instance.", + "Regional availability instance." + ], + "type": "string" + }, "cmekKeyName": { "description": "The KMS key name used for the csql instance.", "type": "string" @@ -1251,6 +2053,10 @@ "readOnly": true, "type": "boolean" }, + "secondaryZone": { + "description": "Optional. The Google Cloud Platform zone where the failover Cloud SQL database instance is located. Used when the Cloud SQL database availability type is REGIONAL (i.e. multiple zones / highly available).", + "type": "string" + }, "sourceId": { "description": "The Database Migration Service source connection profile ID, in the format: `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID`", "type": "string" @@ -1272,7 +2078,110 @@ "type": "object" }, "zone": { - "description": "The Google Cloud Platform zone where your Cloud SQL datdabse instance is located.", + "description": "The Google Cloud Platform zone where your Cloud SQL database instance is located.", + "type": "string" + } + }, + "type": "object" + }, + "ColumnEntity": { + "description": "Column is not used as an independent entity, it is retrieved as part of a Table entity.", + "id": "ColumnEntity", + "properties": { + "array": { + "description": "Is the column of array type", + "type": "boolean" + }, + "arrayLength": { + "description": "If the column is array, of which length", + "format": "int32", + "type": "integer" + }, + "autoGenerated": { + "description": "Is the column auto-generated/identity", + "type": "boolean" + }, + "charset": { + "description": "Charset override - instead of table level charset", + "type": "string" + }, + "collation": { + "description": "Collation override - instead of table level collation", + "type": "string" + }, + "comment": { + "description": "Comment associated with the column", + "type": "string" + }, + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "dataType": { + "description": "Column data type", + "type": "string" + }, + "defaultValue": { + "description": "Default value of the column", + "type": "string" + }, + "fractionalSecondsPrecision": { + "description": "Column fractional second precision - used for timestamp based datatypes", + "format": "int32", + "type": "integer" + }, + "length": { + "description": "Column length - e.g. varchar (50)", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Column name", + "type": "string" + }, + "nullable": { + "description": "Is the column nullable", + "type": "boolean" + }, + "ordinalPosition": { + "description": "Column order in the table", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "Column precision - when relevant", + "format": "int32", + "type": "integer" + }, + "scale": { + "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", + "items": { + "type": "string" + }, + "type": "array" + }, + "udt": { + "description": "Is the column a UDT", + "type": "boolean" + } + }, + "type": "object" + }, + "CommitConversionWorkspaceRequest": { + "description": "Request message for 'CommitConversionWorkspace' request.", + "id": "CommitConversionWorkspaceRequest", + "properties": { + "commitName": { + "description": "Optional. Optional name of the commit.", "type": "string" } }, @@ -1282,6 +2191,10 @@ "description": "A connection profile definition.", "id": "ConnectionProfile", "properties": { + "alloydb": { + "$ref": "AlloyDbConnectionProfile", + "description": "An AlloyDB cluster connection profile." + }, "cloudsql": { "$ref": "CloudSqlConnectionProfile", "description": "A CloudSQL database connection profile." @@ -1316,6 +2229,10 @@ "description": "The name of this connection profile resource in the form of projects/{project}/locations/{location}/connectionProfiles/{connectionProfile}.", "type": "string" }, + "oracle": { + "$ref": "OracleConnectionProfile", + "description": "An Oracle database connection profile." + }, "postgresql": { "$ref": "PostgreSqlConnectionProfile", "description": "A PostgreSQL database connection profile." @@ -1326,13 +2243,15 @@ "DATABASE_PROVIDER_UNSPECIFIED", "CLOUDSQL", "RDS", - "AURORA" + "AURORA", + "ALLOYDB" ], "enumDescriptions": [ "The database provider is unknown.", "CloudSQL runs the database.", "RDS runs the database.", - "Amazon Aurora." + "Amazon Aurora.", + "AlloyDB." ], "type": "string" }, @@ -1369,6 +2288,272 @@ }, "type": "object" }, + "ConstraintEntity": { + "description": "Constraint is not used as an independent entity, it is retrieved as part of another entity such as Table or View.", + "id": "ConstraintEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "name": { + "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.", + "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.", + "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", + "items": { + "type": "string" + }, + "type": "array" + }, + "tableName": { + "description": "Table which is associated with the constraint. In case the constraint is defined on a table, this field is left empty as this information is stored in parent_name. However, if constraint is defined on a view, this field stores the table name on which the view is defined.", + "type": "string" + }, + "type": { + "description": "Type of constraint - e.g. unique, primary key, foreign key (currently only primary key is supported)", + "type": "string" + } + }, + "type": "object" + }, + "ConversionWorkspace": { + "description": "The main conversion workspace resource entity.", + "id": "ConversionWorkspace", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the workspace resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "destination": { + "$ref": "DatabaseEngineInfo", + "description": "Required. The destination engine details." + }, + "displayName": { + "description": "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", + "type": "object" + }, + "hasUncommittedChanges": { + "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", + "readOnly": true, + "type": "string" + }, + "latestCommitTime": { + "description": "Output only. The timestamp when the workspace was committed.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Full name of the workspace resource, in the form of: projects/{project}/locations/{location}/conversionWorkspaces/{conversion_workspace}.", + "type": "string" + }, + "source": { + "$ref": "DatabaseEngineInfo", + "description": "Required. The source engine details." + }, + "updateTime": { + "description": "Output only. The timestamp when the workspace resource was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConversionWorkspaceInfo": { + "description": "A conversion workspace's version.", + "id": "ConversionWorkspaceInfo", + "properties": { + "commitId": { + "description": "The commit ID of the conversion workspace.", + "type": "string" + }, + "name": { + "description": "The resource name (URI) of the conversion workspace.", + "type": "string" + } + }, + "type": "object" + }, + "ConvertConversionWorkspaceRequest": { + "description": "Request message for 'ConvertConversionWorkspace' request.", + "id": "ConvertConversionWorkspaceRequest", + "properties": { + "autoCommit": { + "description": "Should the conversion workspace be committed automatically after the conversion.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "DatabaseEngineInfo": { + "description": "The type and version of a source or destination DB.", + "id": "DatabaseEngineInfo", + "properties": { + "engine": { + "description": "Required. Engine Type.", + "enum": [ + "DATABASE_ENGINE_UNSPECIFIED", + "MYSQL", + "POSTGRESQL", + "ORACLE" + ], + "enumDescriptions": [ + "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" + ], + "type": "string" + }, + "version": { + "description": "Required. Engine named version, for e.g. 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", + "id": "DatabaseEntity", + "properties": { + "databaseFunction": { + "$ref": "FunctionEntity", + "description": "Function" + }, + "databasePackage": { + "$ref": "PackageEntity", + "description": "Package" + }, + "entityType": { + "description": "The type of the database entity (table, view, index, ...).", + "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" + ], + "enumDescriptions": [ + "Unspecified database entity type", + "Schema", + "Table", + "Column", + "Constraint", + "Index", + "Trigger", + "View", + "Sequence", + "Stored Procedure", + "Function", + "Synonym", + "Package", + "UDT" + ], + "type": "string" + }, + "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": { + "$ref": "EntityMapping" + }, + "type": "array" + }, + "parentEntity": { + "description": "The full name of the parent entity (e.g. schema name).", + "type": "string" + }, + "schema": { + "$ref": "SchemaEntity", + "description": "Schema." + }, + "sequence": { + "$ref": "SequenceEntity", + "description": "Sequence" + }, + "shortName": { + "description": "The short name (e.g. table name) of the entity.", + "type": "string" + }, + "storedProcedure": { + "$ref": "StoredProcedureEntity", + "description": "Stored Procedure" + }, + "synonym": { + "$ref": "SynonymEntity", + "description": "Synonym" + }, + "table": { + "$ref": "TableEntity", + "description": "Table." + }, + "tree": { + "description": "The type of tree the entity belongs to.", + "enum": [ + "TREE_TYPE_UNSPECIFIED", + "SOURCE", + "DRAFT", + "DESTINATION" + ], + "enumDescriptions": [ + "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" + }, + "view": { + "$ref": "ViewEntity", + "description": "View" + } + }, + "type": "object" + }, "DatabaseType": { "description": "A message defining the database engine and provider.", "id": "DatabaseType", @@ -1378,12 +2563,14 @@ "enum": [ "DATABASE_ENGINE_UNSPECIFIED", "MYSQL", - "POSTGRESQL" + "POSTGRESQL", + "ORACLE" ], "enumDescriptions": [ "The source database engine of the migration job is unknown.", "The source engine is MySQL.", - "The source engine is PostgreSQL." + "The source engine is PostgreSQL.", + "The source engine is Oracle" ], "type": "string" }, @@ -1393,19 +2580,53 @@ "DATABASE_PROVIDER_UNSPECIFIED", "CLOUDSQL", "RDS", - "AURORA" + "AURORA", + "ALLOYDB" ], "enumDescriptions": [ "The database provider is unknown.", "CloudSQL runs the database.", "RDS runs the database.", - "Amazon Aurora." + "Amazon Aurora.", + "AlloyDB." ], "type": "string" } }, "type": "object" }, + "DescribeConversionWorkspaceRevisionsResponse": { + "description": "Response message for 'DescribeConversionWorkspaceRevisions' request.", + "id": "DescribeConversionWorkspaceRevisionsResponse", + "properties": { + "revisions": { + "description": "The list of conversion workspace revisions.", + "items": { + "$ref": "ConversionWorkspace" + }, + "type": "array" + } + }, + "type": "object" + }, + "DescribeDatabaseEntitiesResponse": { + "description": "Response message for 'DescribeDatabaseEntities' request.", + "id": "DescribeDatabaseEntitiesResponse", + "properties": { + "databaseEntities": { + "description": "The list of database entities for the conversion workspace.", + "items": { + "$ref": "DatabaseEntity" + }, + "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" + }, "DumpFlag": { "description": "Dump flag definition.", "id": "DumpFlag", @@ -1436,11 +2657,52 @@ "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); } 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": "Empty", "properties": {}, "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", + "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.", + "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", + "type": "string" + } + }, + "type": "object" + }, + "EntityMappingLogEntry": { + "description": "A single record of a rule which was used for a mapping.", + "id": "EntityMappingLogEntry", + "properties": { + "mappingComment": { + "description": "Comment.", + "type": "string" + }, + "ruleId": { + "description": "Which rule caused it.", + "type": "string" + }, + "ruleRevisionId": { + "description": "Rule revision id", + "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", @@ -1464,6 +2726,53 @@ }, "type": "object" }, + "ForwardSshTunnelConnectivity": { + "description": "Forward SSH Tunnel connectivity.", + "id": "ForwardSshTunnelConnectivity", + "properties": { + "hostname": { + "description": "Required. Hostname for the SSH tunnel.", + "type": "string" + }, + "password": { + "description": "Input only. SSH password.", + "type": "string" + }, + "port": { + "description": "Port for the SSH tunnel, default value is 22.", + "format": "int32", + "type": "integer" + }, + "privateKey": { + "description": "Input only. SSH private key.", + "type": "string" + }, + "username": { + "description": "Required. Username for the SSH tunnel.", + "type": "string" + } + }, + "type": "object" + }, + "FunctionEntity": { + "description": "Function's parent is a schema.", + "id": "FunctionEntity", + "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 function", + "type": "string" + } + }, + "type": "object" + }, "GenerateSshScriptRequest": { "description": "Request message for 'GenerateSshScript' request.", "id": "GenerateSshScriptRequest", @@ -1532,6 +2841,100 @@ }, "type": "object" }, + "ImportMappingRulesRequest": { + "description": "Request message for 'ImportMappingRules' request.", + "id": "ImportMappingRulesRequest", + "properties": { + "autoCommit": { + "description": "Should the conversion workspace be committed automatically after the import operation.", + "type": "boolean" + }, + "rulesFiles": { + "description": "One or more rules files", + "items": { + "$ref": "RulesFile" + }, + "type": "array" + }, + "rulesFormat": { + "description": "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" + ], + "type": "string" + } + }, + "type": "object" + }, + "ImportRulesJobDetails": { + "description": "Details regarding an Import Rules background job", + "id": "ImportRulesJobDetails", + "properties": { + "fileFormat": { + "description": "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" + ], + "type": "string" + }, + "files": { + "description": "File names used for the import rules job", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "IndexEntity": { + "description": "Index is not used as an independent entity, it is retrieved as part of a Table entity.", + "id": "IndexEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "name": { + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Type of index - e.g. B-TREE", + "type": "string" + }, + "unique": { + "description": "boolean value indicating whether the index is unique", + "type": "boolean" + } + }, + "type": "object" + }, "ListConnectionProfilesResponse": { "description": "Response message for 'ListConnectionProfiles' request.", "id": "ListConnectionProfilesResponse", @@ -1557,6 +2960,31 @@ }, "type": "object" }, + "ListConversionWorkspacesResponse": { + "description": "Response message for 'ListConversionWorkspaces' request.", + "id": "ListConversionWorkspacesResponse", + "properties": { + "conversionWorkspaces": { + "description": "The list of conversion workspace objects.", + "items": { + "$ref": "ConversionWorkspace" + }, + "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" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1618,6 +3046,31 @@ }, "type": "object" }, + "ListPrivateConnectionsResponse": { + "description": "Response message for 'ListPrivateConnections' request.", + "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.", + "type": "string" + }, + "privateConnections": { + "description": "List of private connections.", + "items": { + "$ref": "PrivateConnection" + }, + "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.", "id": "Location", @@ -1652,10 +3105,26 @@ }, "type": "object" }, + "MachineConfig": { + "description": "MachineConfig describes the configuration of a machine.", + "id": "MachineConfig", + "properties": { + "cpuCount": { + "description": "The number of CPU's in the VM instance.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "MigrationJob": { "description": "Represents a Database Migration Service migration job object.", "id": "MigrationJob", "properties": { + "conversionWorkspace": { + "$ref": "ConversionWorkspaceInfo", + "description": "The conversion workspace used by the migration." + }, "createTime": { "description": "Output only. The timestamp when the migration job resource was created. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds. Example: \"2014-10-02T15:01:23.045123456Z\".", "format": "google-datetime", @@ -1699,6 +3168,10 @@ "description": "Output only. The error details in case of state FAILED.", "readOnly": true }, + "filter": { + "description": "This field can be used to select the entities to migrate as part of the migration job. It uses AIP-160 notation to select a subset of the entities configured on the associated conversion-workspace. This field should not be set on migration-jobs that are not associated with a conversion workspace.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -1840,7 +3313,8 @@ "UNSUPPORTED_GTID_MODE", "UNSUPPORTED_TABLE_DEFINITION", "UNSUPPORTED_DEFINER", - "CANT_RESTART_RUNNING_MIGRATION" + "CANT_RESTART_RUNNING_MIGRATION", + "TABLES_WITH_LIMITED_SUPPORT" ], "enumDescriptions": [ "An unknown error occurred", @@ -1862,7 +3336,8 @@ "The gtid_mode is not supported, applicable for MySQL.", "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." + "Migration is already running at the time of restart request.", + "The source has tables with limited support. E.g. PostgreSQL tables without primary keys." ], "readOnly": true, "type": "string" @@ -1952,6 +3427,74 @@ }, "type": "object" }, + "OracleConnectionProfile": { + "description": "Specifies connection parameters required specifically for Oracle databases.", + "id": "OracleConnectionProfile", + "properties": { + "databaseService": { + "description": "Required. Database service for the Oracle connection.", + "type": "string" + }, + "forwardSshConnectivity": { + "$ref": "ForwardSshTunnelConnectivity", + "description": "Forward SSH tunnel connectivity." + }, + "host": { + "description": "Required. The IP or hostname of the source Oracle database.", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", + "type": "string" + }, + "passwordSet": { + "description": "Output only. Indicates whether a new password is included in the request.", + "readOnly": true, + "type": "boolean" + }, + "port": { + "description": "Required. The network port of the source Oracle database.", + "format": "int32", + "type": "integer" + }, + "privateConnectivity": { + "$ref": "PrivateConnectivity", + "description": "Private connectivity." + }, + "staticServiceIpConnectivity": { + "$ref": "StaticServiceIpConnectivity", + "description": "Static Service IP connectivity." + }, + "username": { + "description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", + "type": "string" + } + }, + "type": "object" + }, + "PackageEntity": { + "description": "Package's parent is a schema.", + "id": "PackageEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "packageBody": { + "description": "The SQL code which creates the package body. If the package specification has cursors or subprograms, then the package body is mandatory.", + "type": "string" + }, + "packageSqlCode": { + "description": "The SQL code which creates the package", + "type": "string" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -1995,6 +3538,21 @@ "description": "Required. The IP or hostname of the source PostgreSQL database.", "type": "string" }, + "networkArchitecture": { + "description": "Output only. If the source is a Cloud SQL database, this field indicates the network architecture it's associated with.", + "enum": [ + "NETWORK_ARCHITECTURE_UNSPECIFIED", + "NETWORK_ARCHITECTURE_OLD_CSQL_PRODUCER", + "NETWORK_ARCHITECTURE_NEW_CSQL_PRODUCER" + ], + "enumDescriptions": [ + "", + "Instance is in Cloud SQL's old producer network architecture.", + "Instance is in Cloud SQL's new producer network architecture." + ], + "readOnly": true, + "type": "string" + }, "password": { "description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", "type": "string" @@ -2009,10 +3567,18 @@ "format": "int32", "type": "integer" }, + "privateServiceConnectConnectivity": { + "$ref": "PrivateServiceConnectConnectivity", + "description": "Private service connect connectivity." + }, "ssl": { "$ref": "SslConfig", "description": "SSL configuration for the destination to connect to the source database." }, + "staticIpConnectivity": { + "$ref": "StaticIpConnectivity", + "description": "Static ip connectivity data (default, no additional details needed)." + }, "username": { "description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", "type": "string" @@ -2020,6 +3586,128 @@ }, "type": "object" }, + "PrimaryInstanceSettings": { + "description": "Settings for the cluster's primary instance", + "id": "PrimaryInstanceSettings", + "properties": { + "databaseFlags": { + "additionalProperties": { + "type": "string" + }, + "description": "Database flags to pass to AlloyDB when DMS is creating the AlloyDB cluster and instances. See the AlloyDB documentation for how these can be used.", + "type": "object" + }, + "id": { + "description": "Required. The ID of the AlloyDB primary instance. The ID must satisfy the regex expression \"[a-z0-9-]+\".", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for the AlloyDB primary instance created by DMS. An object containing a list of 'key', 'value' pairs.", + "type": "object" + }, + "machineConfig": { + "$ref": "MachineConfig", + "description": "Configuration for the machines that host the underlying database engine." + }, + "privateIp": { + "description": "Output only. The private IP address for the Instance. This is the connection endpoint for an end-user application.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "PrivateConnection": { + "description": "The PrivateConnection resource is used to establish private connectivity with the customer's network.", + "id": "PrivateConnection", + "properties": { + "createTime": { + "description": "Output only. The create time of the resource.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The private connection display name.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "Output only. The error details in case of state FAILED.", + "readOnly": true + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The resource labels for private connections to use to annotate any related underlying resources such as Compute Engine VMs. An object containing a list of \"key\": \"value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.", + "type": "object" + }, + "name": { + "description": "The resource's name.", + "type": "string" + }, + "state": { + "description": "Output only. The state of the Private Connection.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "CREATED", + "FAILED", + "DELETING", + "FAILED_TO_DELETE", + "DELETED" + ], + "enumDescriptions": [ + "", + "The private connection is in creation state - creating resources.", + "The private connection has been created with all of its resources.", + "The private connection creation has failed.", + "The private connection is being deleted.", + "Delete request has failed, resource is in invalid state.", + "The private connection has been deleted." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last update time of the resource.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "vpcPeeringConfig": { + "$ref": "VpcPeeringConfig", + "description": "VPC Peering Config." + } + }, + "type": "object" + }, + "PrivateConnectivity": { + "description": "Private Connectivity.", + "id": "PrivateConnectivity", + "properties": { + "privateConnection": { + "description": "Required. The resource name (URI) of the private connection.", + "type": "string" + } + }, + "type": "object" + }, + "PrivateServiceConnectConnectivity": { + "description": "Private Service Connect connectivity (https://cloud.google.com/vpc/docs/private-service-connect#benefits-services)", + "id": "PrivateServiceConnectConnectivity", + "properties": { + "serviceAttachment": { + "description": "Required. A service attachment that exposes a database, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}", + "type": "string" + } + }, + "type": "object" + }, "PromoteMigrationJobRequest": { "description": "Request message for 'PromoteMigrationJob' request.", "id": "PromoteMigrationJobRequest", @@ -2062,13 +3750,137 @@ }, "type": "object" }, + "RollbackConversionWorkspaceRequest": { + "description": "Request message for 'RollbackConversionWorkspace' request.", + "id": "RollbackConversionWorkspaceRequest", + "properties": {}, + "type": "object" + }, + "RulesFile": { + "description": "Details of a single rules file", + "id": "RulesFile", + "properties": { + "rulesContent": { + "description": "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", + "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.", + "id": "SchemaEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + } + }, + "type": "object" + }, + "SearchBackgroundJobsResponse": { + "description": "Response message for 'SearchBackgroundJobs' request.", + "id": "SearchBackgroundJobsResponse", + "properties": { + "jobs": { + "description": "The list of conversion workspace mapping rules.", + "items": { + "$ref": "BackgroundJobLogEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "SeedConversionWorkspaceRequest": { + "description": "Request message for 'SeedConversionWorkspace' request.", + "id": "SeedConversionWorkspaceRequest", + "properties": { + "autoCommit": { + "description": "Should the conversion workspace be committed automatically after the seed operation.", + "type": "boolean" + }, + "destinationConnectionProfile": { + "description": "Fully qualified (Uri) name of the destination connection profile.", + "type": "string" + }, + "sourceConnectionProfile": { + "description": "Fully qualified (Uri) name of the source connection profile.", + "type": "string" + } + }, + "type": "object" + }, + "SeedJobDetails": { + "description": "Details regarding a Seed background job", + "id": "SeedJobDetails", + "properties": { + "connectionProfile": { + "description": "The connection profile which was used for the seed job", + "type": "string" + } + }, + "type": "object" + }, + "SequenceEntity": { + "description": "Sequence's parent is a schema.", + "id": "SequenceEntity", + "properties": { + "cache": { + "description": "Indicates number of entries to cache / precreate", + "format": "int64", + "type": "string" + }, + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "cycle": { + "description": "Indicates whether the sequence value should cycle through", + "type": "boolean" + }, + "increment": { + "description": "Increment value for the sequence", + "format": "int64", + "type": "string" + }, + "maxValue": { + "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", + "format": "byte", + "type": "string" + }, + "startValue": { + "description": "Start number for the sequence represented as bytes to accommodate large numbers", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2186,6 +3998,12 @@ "properties": {}, "type": "object" }, + "StaticServiceIpConnectivity": { + "description": "Static IP address connectivity configured on service project.", + "id": "StaticServiceIpConnectivity", + "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", @@ -2219,12 +4037,133 @@ "properties": {}, "type": "object" }, + "StoredProcedureEntity": { + "description": "Stored procedure's parent is a schema.", + "id": "StoredProcedureEntity", + "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 stored procedure", + "type": "string" + } + }, + "type": "object" + }, + "SynonymEntity": { + "description": "Synonym's parent is a schema.", + "id": "SynonymEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "sourceEntity": { + "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)", + "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" + ], + "enumDescriptions": [ + "Unspecified database entity type", + "Schema", + "Table", + "Column", + "Constraint", + "Index", + "Trigger", + "View", + "Sequence", + "Stored Procedure", + "Function", + "Synonym", + "Package", + "UDT" + ], + "type": "string" + } + }, + "type": "object" + }, + "TableEntity": { + "description": "Table's parent is a schema.", + "id": "TableEntity", + "properties": { + "columns": { + "description": "Table Columns.", + "items": { + "$ref": "ColumnEntity" + }, + "type": "array" + }, + "comment": { + "description": "Comment associated with the table", + "type": "string" + }, + "constraints": { + "description": "Table Constraints.", + "items": { + "$ref": "ConstraintEntity" + }, + "type": "array" + }, + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "indices": { + "description": "Table Indices.", + "items": { + "$ref": "IndexEntity" + }, + "type": "array" + }, + "triggers": { + "description": "Table triggers.", + "items": { + "$ref": "TriggerEntity" + }, + "type": "array" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2247,12 +4186,92 @@ }, "type": "object" }, + "TriggerEntity": { + "description": "Trigger is not used as an independent entity, it is retrieved as part of a Table entity.", + "id": "TriggerEntity", + "properties": { + "customFeatures": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Custom engine specific features", + "type": "object" + }, + "name": { + "description": "The name of the trigger", + "type": "string" + }, + "sqlCode": { + "description": "The SQL code which creates the trigger", + "type": "string" + }, + "triggerType": { + "description": "Indicates when the trigger fires, e.g. BEFORE STATEMENT, AFTER EACH ROW", + "type": "string" + }, + "triggeringEvents": { + "description": "The DML, DDL, or database events that fires the trigger, e.g. INSERT, UPDATE", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "UserPassword": { + "description": "The username/password for a database user. Used for specifying initial users at cluster creation time.", + "id": "UserPassword", + "properties": { + "password": { + "description": "The initial password for the user.", + "type": "string" + }, + "passwordSet": { + "description": "Output only. Indicates if the initial_user.password field has been set.", + "readOnly": true, + "type": "boolean" + }, + "user": { + "description": "The database username.", + "type": "string" + } + }, + "type": "object" + }, "VerifyMigrationJobRequest": { "description": "Request message for 'VerifyMigrationJob' request.", "id": "VerifyMigrationJobRequest", "properties": {}, "type": "object" }, + "ViewEntity": { + "description": "View's parent is a schema.", + "id": "ViewEntity", + "properties": { + "constraints": { + "description": "View Constraints.", + "items": { + "$ref": "ConstraintEntity" + }, + "type": "array" + }, + "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" + }, "VmCreationConfig": { "description": "VM creation configuration message", "id": "VmCreationConfig", @@ -2283,6 +4302,21 @@ }, "type": "object" }, + "VpcPeeringConfig": { + "description": "The VPC Peering configuration is used to create VPC peering with the consumer's VPC.", + "id": "VpcPeeringConfig", + "properties": { + "subnet": { + "description": "Required. A free subnet for peering. (CIDR of /29)", + "type": "string" + }, + "vpcName": { + "description": "Required. Fully qualified name of the VPC DMS will peer to.", + "type": "string" + } + }, + "type": "object" + }, "VpcPeeringConnectivity": { "description": "The details of the VPC where the source database is located in Google Cloud. We will use this information to set up the VPC peering connection between Cloud SQL and this VPC.", "id": "VpcPeeringConnectivity", diff --git a/etc/api/datamigration/v1beta1/datamigration-api.json b/etc/api/datamigration/v1beta1/datamigration-api.json index 8a40f3ff31..b1151f2a10 100644 --- a/etc/api/datamigration/v1beta1/datamigration-api.json +++ b/etc/api/datamigration/v1beta1/datamigration-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -293,7 +293,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -403,7 +403,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -431,7 +431,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/connectionProfiles/[^/]+$", "required": true, @@ -595,7 +595,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -789,7 +789,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -873,7 +873,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/migrationJobs/[^/]+$", "required": true, @@ -1049,11 +1049,11 @@ } } }, - "revision": "20220216", + "revision": "20230118", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1109,7 +1109,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1252,7 +1252,7 @@ "type": "object" }, "zone": { - "description": "The Google Cloud Platform zone where your Cloud SQL datdabse instance is located.", + "description": "The Google Cloud Platform zone where your Cloud SQL database instance is located.", "type": "string" } }, @@ -1377,7 +1377,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1766,7 +1766,8 @@ "CONNECTION_PROFILE_TYPES_INCOMPATIBILITY", "UNSUPPORTED_GTID_MODE", "UNSUPPORTED_DEFINER", - "CANT_RESTART_RUNNING_MIGRATION" + "CANT_RESTART_RUNNING_MIGRATION", + "TABLES_WITH_LIMITED_SUPPORT" ], "enumDescriptions": [ "An unknown error occurred", @@ -1777,7 +1778,8 @@ "The types of the source and the destination are incompatible.", "The gtid_mode is not supported, applicable for MySQL.", "The definer is not supported.", - "Migration is already running at the time of restart request." + "Migration is already running at the time of restart request.", + "The source has tables with limited support. E.g. PostgreSQL tables without primary keys." ], "readOnly": true, "type": "string" @@ -1946,7 +1948,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2102,7 +2104,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/datapipelines/v1/datapipelines-api.json b/etc/api/datapipelines/v1/datapipelines-api.json index a2d9801860..8f580ab123 100644 --- a/etc/api/datapipelines/v1/datapipelines-api.json +++ b/etc/api/datapipelines/v1/datapipelines-api.json @@ -108,49 +108,6 @@ "projects": { "resources": { "locations": { - "methods": { - "listPipelines": { - "description": "Lists pipelines. Returns a \"FORBIDDEN\" error if the caller doesn't have permission to access it.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", - "httpMethod": "GET", - "id": "datapipelines.projects.locations.listPipelines", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "An expression for filtering the results of the request. If unspecified, all pipelines will be returned. Multiple filters can be applied and must be comma separated. Fields eligible for filtering are: + `type`: The type of the pipeline (streaming or batch). Allowed values are `ALL`, `BATCH`, and `STREAMING`. + `status`: The activity status of the pipeline. Allowed values are `ALL`, `ACTIVE`, `ARCHIVED`, and `PAUSED`. For example, to limit results to active batch processing pipelines: type:BATCH,status:ACTIVE", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "The maximum number of entities to return. The service may return fewer than this value, even if there are additional pages. If unspecified, the max limit is yet to be determined by the backend implementation.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A page token, received from a previous `ListPipelines` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPipelines` must match the call that provided the page token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The location name. For example: `projects/PROJECT_ID/locations/LOCATION_ID`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}", - "response": { - "$ref": "GoogleCloudDatapipelinesV1ListPipelinesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, "resources": { "pipelines": { "methods": { @@ -232,6 +189,47 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists pipelines. Returns a \"FORBIDDEN\" error if the caller doesn't have permission to access it.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/pipelines", + "httpMethod": "GET", + "id": "datapipelines.projects.locations.pipelines.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "An expression for filtering the results of the request. If unspecified, all pipelines will be returned. Multiple filters can be applied and must be comma separated. Fields eligible for filtering are: + `type`: The type of the pipeline (streaming or batch). Allowed values are `ALL`, `BATCH`, and `STREAMING`. + `status`: The activity status of the pipeline. Allowed values are `ALL`, `ACTIVE`, `ARCHIVED`, and `PAUSED`. For example, to limit results to active batch processing pipelines: type:BATCH,status:ACTIVE", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of entities to return. The service may return fewer than this value, even if there are additional pages. If unspecified, the max limit is yet to be determined by the backend implementation.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListPipelines` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPipelines` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The location name. For example: `projects/PROJECT_ID/locations/LOCATION_ID`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/pipelines", + "response": { + "$ref": "GoogleCloudDatapipelinesV1ListPipelinesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a pipeline. If successful, the updated Pipeline is returned. Returns `NOT_FOUND` if the pipeline doesn't exist. If UpdatePipeline does not return successfully, you can retry the UpdatePipeline request until you receive a successful response.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/pipelines/{pipelinesId}", @@ -371,7 +369,7 @@ } } }, - "revision": "20220218", + "revision": "20230115", "rootUrl": "https://datapipelines.googleapis.com/", "schemas": { "GoogleCloudDatapipelinesV1DataflowJobDetails": { @@ -986,7 +984,7 @@ "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/dataplex/v1/dataplex-api.json b/etc/api/dataplex/v1/dataplex-api.json index 8f0b5673fd..f82f24bc10 100644 --- a/etc/api/dataplex/v1/dataplex-api.json +++ b/etc/api/dataplex/v1/dataplex-api.json @@ -177,6 +177,1194 @@ } }, "resources": { + "dataAttributeBindings": { + "methods": { + "create": { + "description": "Create a DataAttributeBinding resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataAttributeBindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataAttributeBindingId": { + "description": "Required. DataAttributeBinding identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the Location.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent data taxonomy projects/{project_number}/locations/{location_id}", + "location": "path", + "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}/dataAttributeBindings", + "request": { + "$ref": "GoogleCloudDataplexV1DataAttributeBinding" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a DataAttributeBinding resource. All attributes within the DataAttributeBinding must be deleted before the DataAttributeBinding can be deleted.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.dataAttributeBindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Required. If the client provided etag value does not match the current etag value, the DeleteDataAttributeBindingRequest method returns an ABORTED error response. Etags must be used when calling the DeleteDataAttributeBinding.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the DataAttributeBinding: projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a DataAttributeBinding resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataAttributeBindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the DataAttributeBinding: projects/{project_number}/locations/{location_id}/dataAttributeBindings/{data_attribute_binding_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1DataAttributeBinding" + }, + "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}/dataAttributeBindings/{dataAttributeBindingsId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataAttributeBindings.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/[^/]+/dataAttributeBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists DataAttributeBinding resources in a project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataAttributeBindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request. Filter using resource: filter=resource:\"resource-name\" Filter using attribute: filter=attributes:\"attribute-name\" Filter using attribute in paths list: filter=paths.attributes:\"attribute-name\"", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of DataAttributeBindings to return. The service may return fewer than this value. If unspecified, at most 10 DataAttributeBindings 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. Page token received from a previous ListDataAttributeBindings call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataAttributeBindings must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the Location: projects/{project_number}/locations/{location_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dataAttributeBindings", + "response": { + "$ref": "GoogleCloudDataplexV1ListDataAttributeBindingsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a DataAttributeBinding resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataAttributeBindings/{dataAttributeBindingsId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.dataAttributeBindings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the Data Attribute Binding, of the form: projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataAttributeBindings/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "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}", + "request": { + "$ref": "GoogleCloudDataplexV1DataAttributeBinding" + }, + "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}/dataAttributeBindings/{dataAttributeBindingsId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataAttributeBindings.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/[^/]+/dataAttributeBindings/[^/]+$", + "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}/dataAttributeBindings/{dataAttributeBindingsId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataAttributeBindings.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/[^/]+/dataAttributeBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "dataScans": { + "methods": { + "create": { + "description": "Creates a DataScan resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataScanId": { + "description": "Required. DataScan identifier. Must contain only lowercase letters, numbers and hyphens. Must start with a letter. Must end with a number or a letter. Must be between 1-63 characters. Must be unique within the customer project / location.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent location: projects/{project}/locations/{location_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dataScans", + "request": { + "$ref": "GoogleCloudDataplexV1DataScan" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a DataScan resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.dataScans.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the dataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a DataScan resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataScans.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the dataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_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/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. Select the DataScan view to return. Defaults to BASIC.", + "enum": [ + "DATA_SCAN_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The API will default to the BASIC view.", + "Basic view that does not include spec and result.", + "Include everything." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1DataScan" + }, + "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}/dataScans/{dataScansId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataScans.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/[^/]+/dataScans/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists DataScans.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataScans.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields (name or create_time) for the result. If not specified, the ordering is undefined.", + "location": "query", + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListDataScans call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataScans must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent location: projects/{project}/locations/{location_id} where project refers to a project_id or project_number and location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dataScans", + "response": { + "$ref": "GoogleCloudDataplexV1ListDataScansResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a DataScan resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.dataScans.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the scan, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_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/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudDataplexV1DataScan" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "run": { + "description": "Runs an on-demand execution of a DataScan", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:run", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.run", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the DataScan: projects/{project}/locations/{location_id}/dataScans/{data_scan_id}. where project refers to a project_id or project_number and location_id refers to a GCP region.Only OnDemand data scans are allowed.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:run", + "request": { + "$ref": "GoogleCloudDataplexV1RunDataScanRequest" + }, + "response": { + "$ref": "GoogleCloudDataplexV1RunDataScanResponse" + }, + "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}/dataScans/{dataScansId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.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/[^/]+/dataScans/[^/]+$", + "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}/dataScans/{dataScansId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.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/[^/]+/dataScans/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "jobs": { + "methods": { + "get": { + "description": "Gets a DataScanJob resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs/{jobsId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataScans.jobs.get", + "parameterOrder": [ + "name" + ], + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. Select the DataScanJob view to return. Defaults to BASIC.", + "enum": [ + "DATA_SCAN_JOB_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The API will default to the BASIC view.", + "Basic view that does not include spec and result.", + "Include everything." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1DataScanJob" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists DataScanJobs under the given DataScan.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataScans.jobs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "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", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListDataScanJobs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataScanJobs must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent environment: projects/{project}/locations/{location_id}/dataScans/{data_scan_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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/jobs", + "response": { + "$ref": "GoogleCloudDataplexV1ListDataScanJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "dataTaxonomies": { + "methods": { + "create": { + "description": "Create a DataTaxonomy resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataTaxonomyId": { + "description": "Required. DataTaxonomy identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the Project.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the data taxonomy location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "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}/dataTaxonomies", + "request": { + "$ref": "GoogleCloudDataplexV1DataTaxonomy" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy must be deleted before the DataTaxonomy can be deleted.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.dataTaxonomies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If the client provided etag value does not match the current etag value,the DeleteDataTaxonomy method returns an ABORTED error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a DataTaxonomy resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1DataTaxonomy" + }, + "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}/dataTaxonomies/{dataTaxonomiesId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.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/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists DataTaxonomy resources in a project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of DataTaxonomies to return. The service may return fewer than this value. If unspecified, at most 10 DataTaxonomies 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. Page token received from a previous ListDataTaxonomies call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataTaxonomies must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the DataTaxonomy location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/dataTaxonomies", + "response": { + "$ref": "GoogleCloudDataplexV1ListDataTaxonomiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a DataTaxonomy resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.dataTaxonomies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the DataTaxonomy, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "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}", + "request": { + "$ref": "GoogleCloudDataplexV1DataTaxonomy" + }, + "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}/dataTaxonomies/{dataTaxonomiesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.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/[^/]+/dataTaxonomies/[^/]+$", + "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}/dataTaxonomies/{dataTaxonomiesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.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/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "attributes": { + "methods": { + "create": { + "description": "Create a DataAttribute resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "dataAttributeId": { + "description": "Required. DataAttribute identifier. * Must contain only lowercase letters, numbers and hyphens. * Must start with a letter. * Must be between 1-63 characters. * Must end with a number or a letter. * Must be unique within the DataTaxonomy.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent data taxonomy projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", + "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}/attributes", + "request": { + "$ref": "GoogleCloudDataplexV1DataAttribute" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Data Attribute resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If the client provided etag value does not match the current etag value, the DeleteDataAttribute method returns an ABORTED error response.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the DataAttribute: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a Data Attribute resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the dataAttribute: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1DataAttribute" + }, + "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}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.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/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Data Attribute resources in a DataTaxonomy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes", + "httpMethod": "GET", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of DataAttributes to return. The service may return fewer than this value. If unspecified, at most 10 dataAttributes 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. Page token received from a previous ListDataAttributes call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListDataAttributes must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the DataTaxonomy: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/attributes", + "response": { + "$ref": "GoogleCloudDataplexV1ListDataAttributesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a DataAttribute resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the dataAttribute, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "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}", + "request": { + "$ref": "GoogleCloudDataplexV1DataAttribute" + }, + "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}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.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/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "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}/dataTaxonomies/{dataTaxonomiesId}/attributes/{attributesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataTaxonomies.attributes.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/[^/]+/dataTaxonomies/[^/]+/attributes/[^/]+$", + "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": { @@ -227,7 +1415,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -252,7 +1440,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -283,7 +1471,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+$", "required": true, @@ -393,7 +1581,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+$", "required": true, @@ -421,7 +1609,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+$", "required": true, @@ -464,7 +1652,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -483,8 +1671,106 @@ }, "content": { "methods": { + "create": { + "description": "Create a content.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content", + "httpMethod": "POST", + "id": "dataplex.projects.locations.lakes.content.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", + "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}/content", + "request": { + "$ref": "GoogleCloudDataplexV1Content" + }, + "response": { + "$ref": "GoogleCloudDataplexV1Content" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete a content.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.lakes.content.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get a content resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.lakes.content.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the content: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. Specify content view to make a partial request.", + "enum": [ + "CONTENT_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Content view not specified. Defaults to BASIC. The API will default to the BASIC view.", + "Will not return the data_text field.", + "Returns the complete proto." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1Content" + }, + "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.", + "description": "Gets the access control policy for a contentitem resource. A NOT_FOUND error is returned if the resource does not exist. An empty policy is returned if the resource exists but does not have a policy set on it.Caller must have Google IAM dataplex.content.getIamPolicy permission on the resource.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:getIamPolicy", "httpMethod": "GET", "id": "dataplex.projects.locations.lakes.content.getIamPolicy", @@ -499,9 +1785,9 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/content/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", "required": true, "type": "string" } @@ -514,8 +1800,88 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "List content.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content", + "httpMethod": "GET", + "id": "dataplex.projects.locations.lakes.content.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request. Filters are case-sensitive. The following formats are supported:labels.key1 = \"value1\" labels:key1 type = \"NOTEBOOK\" type = \"SQL_SCRIPT\"These restrictions can be coinjoined with AND, OR and NOT conjunctions.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of content to return. The service may return fewer than this value. If unspecified, at most 10 content will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListContent call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListContent must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/content", + "response": { + "$ref": "GoogleCloudDataplexV1ListContentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a content. Only supports full resource update.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.lakes.content.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the content, of the form: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/content/{content_id}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "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}", + "request": { + "$ref": "GoogleCloudDataplexV1Content" + }, + "response": { + "$ref": "GoogleCloudDataplexV1Content" + }, + "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.", + "description": "Sets the access control policy on the specified contentitem resource. Replaces any existing policy.Caller must have Google IAM dataplex.content.setIamPolicy permission on the resource.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:setIamPolicy", "httpMethod": "POST", "id": "dataplex.projects.locations.lakes.content.setIamPolicy", @@ -524,9 +1890,9 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/content/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", "required": true, "type": "string" } @@ -543,7 +1909,7 @@ ] }, "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.", + "description": "Returns the caller's permissions on a resource. If the resource does not exist, an empty set of permissions is returned (a NOT_FOUND error is not returned).A caller is not required to have Google IAM permission to make this request.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/content/{contentId}:testIamPermissions", "httpMethod": "POST", "id": "dataplex.projects.locations.lakes.content.testIamPermissions", @@ -552,9 +1918,9 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/content/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/content/.*$", "required": true, "type": "string" } @@ -672,6 +2038,37 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getIamPolicy": { + "description": "Gets the access control policy for a contentitem resource. A NOT_FOUND error is returned if the resource does not exist. An empty policy is returned if the resource exists but does not have a policy set on it.Caller must have Google IAM dataplex.content.getIamPolicy permission on the resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:getIamPolicy", + "httpMethod": "GET", + "id": "dataplex.projects.locations.lakes.contentitems.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/[^/]+/lakes/[^/]+/contentitems/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "List content.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems", @@ -751,6 +2148,62 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified contentitem resource. Replaces any existing policy.Caller must have Google IAM dataplex.content.setIamPolicy permission on the resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:setIamPolicy", + "httpMethod": "POST", + "id": "dataplex.projects.locations.lakes.contentitems.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/[^/]+/lakes/[^/]+/contentitems/.*$", + "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 the caller's permissions on a resource. If the resource does not exist, an empty set of permissions is returned (a NOT_FOUND error is not returned).A caller is not required to have Google IAM permission to make this request.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/contentitems/{contentitemsId}:testIamPermissions", + "httpMethod": "POST", + "id": "dataplex.projects.locations.lakes.contentitems.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/[^/]+/lakes/[^/]+/contentitems/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -771,7 +2224,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -804,7 +2257,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}`", + "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -829,7 +2282,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}", + "description": "Required. The resource name of the environment: projects/{project_id}/locations/{location_id}/lakes/{lake_id}/environments/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -860,7 +2313,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -906,7 +2359,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_id}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -970,7 +2423,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -998,7 +2451,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -1029,6 +2482,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. Filter request. The following mode filter is supported to return only the sessions belonging to the requester when the mode is USER and return sessions of all the users when the mode is ADMIN. When no filter is sent default to USER mode. NOTE: When the mode is ADMIN, the requester should have dataplex.environments.listAllSessions permission to list all sessions, in absence of the permission, the request fails.mode = ADMIN | USER", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. Maximum number of sessions to return. The service may return fewer than this value. If unspecified, at most 10 sessions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", "format": "int32", @@ -1041,7 +2499,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}", + "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/environment/{environment_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/environments/[^/]+$", "required": true, @@ -1072,7 +2530,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1110,7 +2568,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}`", + "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1135,7 +2593,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{tasks_id}", + "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{tasks_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1166,7 +2624,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1212,7 +2670,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1266,6 +2724,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "run": { + "description": "Run an on demand execution of a Task.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lakes/{lakesId}/tasks/{tasksId}:run", + "httpMethod": "POST", + "id": "dataplex.projects.locations.lakes.tasks.run", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the task: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:run", + "request": { + "$ref": "GoogleCloudDataplexV1RunTaskRequest" + }, + "response": { + "$ref": "GoogleCloudDataplexV1RunTaskResponse" + }, + "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}/lakes/{lakesId}/tasks/{tasksId}:setIamPolicy", @@ -1276,7 +2762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1304,7 +2790,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1336,7 +2822,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /task/{task_id}/job/{job_id}`", + "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/task/{task_id}/job/{job_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", "required": true, @@ -1364,7 +2850,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /tasks/{task_id}/jobs/{job_id}", + "description": "Required. The resource name of the job: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+/jobs/[^/]+$", "required": true, @@ -1400,7 +2886,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}", + "description": "Required. The resource name of the parent environment: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/tasks/[^/]+$", "required": true, @@ -1431,7 +2917,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1469,7 +2955,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1494,7 +2980,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}", + "description": "Required. The resource name of the zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1525,7 +3011,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1571,7 +3057,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}", + "description": "Required. The resource name of the parent lake: projects/{project_number}/locations/{location_id}/lakes/{lake_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+$", "required": true, @@ -1635,7 +3121,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1663,7 +3149,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1706,7 +3192,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1740,7 +3226,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1773,7 +3259,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -1798,7 +3284,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -1829,7 +3315,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -1875,7 +3361,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id} /zones/{zone_id}`", + "description": "Required. The resource name of the parent zone: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+$", "required": true, @@ -1939,7 +3425,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -1967,7 +3453,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -2010,7 +3496,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}", + "description": "Required. The resource name of the parent asset: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/zones/{zone_id}/assets/{asset_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/lakes/[^/]+/zones/[^/]+/assets/[^/]+$", "required": true, @@ -2494,11 +3980,11 @@ } } }, - "revision": "20220223", + "revision": "20230120", "rootUrl": "https://dataplex.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2829,7 +4315,7 @@ "description": "Optional. Configuration for Json data." }, "schedule": { - "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", + "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.", "type": "string" } }, @@ -2957,6 +4443,20 @@ "description": "Immutable. Relative name of the cloud resource that contains the data that is being managed within a lake. For example: projects/{project_number}/buckets/{bucket_id} projects/{project_number}/datasets/{dataset_id}", "type": "string" }, + "readAccessMode": { + "description": "Optional. Determines how read permissions are handled for each asset and their associated tables. Only available to storage buckets assets.", + "enum": [ + "ACCESS_MODE_UNSPECIFIED", + "DIRECT", + "MANAGED" + ], + "enumDescriptions": [ + "Access mode unspecified.", + "Default. Data is accessed directly using storage APIs.", + "Data is accessed through a managed interface using BigQuery APIs." + ], + "type": "string" + }, "type": { "description": "Required. Immutable. Type of resource.", "enum": [ @@ -3158,6 +4658,1085 @@ }, "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.", + "id": "GoogleCloudDataplexV1DataAccessSpec", + "properties": { + "readers": { + "description": "Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on data stored within resources.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataAttribute": { + "description": "Denotes one dataAttribute in a dataTaxonomy, for example, PII. DataAttribute resources can be defined in a hierarchy. A single dataAttribute resource can contain specs of multiple types PII - ResourceAccessSpec : - readers :foo@bar.com - DataAccessSpec : - readers :bar@foo.com ", + "id": "GoogleCloudDataplexV1DataAttribute", + "properties": { + "attributeCount": { + "description": "Output only. The number of child attributes present for this attribute.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "createTime": { + "description": "Output only. The time when the DataAttribute was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataAccessSpec": { + "$ref": "GoogleCloudDataplexV1DataAccessSpec", + "description": "Optional. Specified when applied to data stored on the resource (eg: rows, columns in BigQuery Tables)." + }, + "description": { + "description": "Optional. Description of the DataAttribute.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "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": "Optional. User-defined labels for the DataAttribute.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the dataAttribute, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}.", + "readOnly": true, + "type": "string" + }, + "parentId": { + "description": "Optional. The ID of the parent DataAttribute resource, should belong to the same data taxonomy. Circular dependency in parent chain is not valid. Maximum depth of the hierarchy allowed is 4. a -> b -> c -> d -> e, depth = 4", + "type": "string" + }, + "resourceAccessSpec": { + "$ref": "GoogleCloudDataplexV1ResourceAccessSpec", + "description": "Optional. Specified when applied to a resource (eg: Cloud Storage bucket, BigQuery dataset, BigQuery table)." + }, + "uid": { + "description": "Output only. System generated globally unique ID for the DataAttribute. This ID will be different if the DataAttribute is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the DataAttribute was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataAttributeBinding": { + "description": "DataAttributeBinding represents binding of attributes to resources. Eg: Bind 'CustomerInfo' entity with 'PII' attribute.", + "id": "GoogleCloudDataplexV1DataAttributeBinding", + "properties": { + "attributes": { + "description": "Optional. List of attributes to be associated with the resource, provided in the form: projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", + "items": { + "type": "string" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. The time when the DataAttributeBinding was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the DataAttributeBinding.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "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. Etags must be used when calling the DeleteDataAttributeBinding and the UpdateDataAttributeBinding method.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the DataAttributeBinding.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the Data Attribute Binding, of the form: projects/{project_number}/locations/{location}/dataAttributeBindings/{data_attribute_binding_id}", + "readOnly": true, + "type": "string" + }, + "paths": { + "description": "Optional. The list of paths for items within the associated resource (eg. columns 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.", + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the DataAttributeBinding. This ID will be different if the DataAttributeBinding is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the DataAttributeBinding was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataAttributeBindingPath": { + "description": "Represents a subresource of a given resource, and associated bindings with it.", + "id": "GoogleCloudDataplexV1DataAttributeBindingPath", + "properties": { + "attributes": { + "description": "Optional. List of attributes to be associated with the path of the resource, provided in the form: projects/{project}/locations/{location}/dataTaxonomies/{dataTaxonomy}/attributes/{data_attribute_id}", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. The name identifier of the path. Nested columns should be of the form: 'country.state.city'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResult": { + "description": "DataProfileResult defines the output of DataProfileScan. Each field of the table will have field type specific profile result.", + "id": "GoogleCloudDataplexV1DataProfileResult", + "properties": { + "profile": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfile", + "description": "The profile information per field." + }, + "rowCount": { + "description": "The count of rows scanned.", + "format": "int64", + "type": "string" + }, + "scannedData": { + "$ref": "GoogleCloudDataplexV1ScannedData", + "description": "The data scanned for this result." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfile": { + "description": "Contains name, type, mode and field type specific profile information.", + "id": "GoogleCloudDataplexV1DataProfileResultProfile", + "properties": { + "fields": { + "description": "List of fields with structural and profile information for each field.", + "items": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileField" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileField": { + "description": "A field within a table.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileField", + "properties": { + "mode": { + "description": "The mode of the field. Possible values include: REQUIRED, if it is a required field. NULLABLE, if it is an optional field. REPEATED, if it is a repeated field.", + "type": "string" + }, + "name": { + "description": "The name of the field.", + "type": "string" + }, + "profile": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo", + "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", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo": { + "description": "The profile information for each field type.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfo", + "properties": { + "distinctRatio": { + "description": "Ratio of rows with distinct values against total scanned rows. Not available for complex non-groupable field type RECORD and fields with REPEATABLE mode.", + "format": "double", + "type": "number" + }, + "doubleProfile": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo", + "description": "Double type field information." + }, + "integerProfile": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo", + "description": "Integer type field information." + }, + "nullRatio": { + "description": "Ratio of rows with null value against total scanned rows.", + "format": "double", + "type": "number" + }, + "stringProfile": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo", + "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.", + "items": { + "$ref": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo": { + "description": "The profile information for a double type field.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoDoubleFieldInfo", + "properties": { + "average": { + "description": "Average of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + }, + "max": { + "description": "Maximum of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + }, + "min": { + "description": "Minimum of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + }, + "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.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "standardDeviation": { + "description": "Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo": { + "description": "The profile information for an integer type field.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoIntegerFieldInfo", + "properties": { + "average": { + "description": "Average of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + }, + "max": { + "description": "Maximum of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "int64", + "type": "string" + }, + "min": { + "description": "Minimum of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "int64", + "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.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "standardDeviation": { + "description": "Standard deviation of non-null values in the scanned data. NaN, if the field has a NaN.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo": { + "description": "The profile information for a string type field.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoStringFieldInfo", + "properties": { + "averageLength": { + "description": "Average length of non-null values in the scanned data.", + "format": "double", + "type": "number" + }, + "maxLength": { + "description": "Maximum length of non-null values in the scanned data.", + "format": "int64", + "type": "string" + }, + "minLength": { + "description": "Minimum length of non-null values in the scanned data.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue": { + "description": "Top N non-null values in the scanned data.", + "id": "GoogleCloudDataplexV1DataProfileResultProfileFieldProfileInfoTopNValue", + "properties": { + "count": { + "description": "Count of the corresponding value in the scanned data.", + "format": "int64", + "type": "string" + }, + "value": { + "description": "String value of a top N non-null value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataProfileSpec": { + "description": "DataProfileScan related setting.", + "id": "GoogleCloudDataplexV1DataProfileSpec", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityDimensionResult": { + "description": "DataQualityDimensionResult provides a more detailed, per-dimension view of the results.", + "id": "GoogleCloudDataplexV1DataQualityDimensionResult", + "properties": { + "passed": { + "description": "Whether the dimension passed or failed.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityResult": { + "description": "The output of a DataQualityScan.", + "id": "GoogleCloudDataplexV1DataQualityResult", + "properties": { + "dimensions": { + "description": "A list of results at the dimension level.", + "items": { + "$ref": "GoogleCloudDataplexV1DataQualityDimensionResult" + }, + "type": "array" + }, + "passed": { + "description": "Overall data quality result -- true if all rules passed.", + "type": "boolean" + }, + "rowCount": { + "description": "The count of rows processed.", + "format": "int64", + "type": "string" + }, + "rules": { + "description": "A list of all the rules in a job, and their results.", + "items": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleResult" + }, + "type": "array" + }, + "scannedData": { + "$ref": "GoogleCloudDataplexV1ScannedData", + "description": "The data scanned for this result." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRule": { + "description": "A rule captures data quality intent about a data source.", + "id": "GoogleCloudDataplexV1DataQualityRule", + "properties": { + "column": { + "description": "Optional. The unnested column which this rule is evaluated against.", + "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.", + "type": "boolean" + }, + "nonNullExpectation": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation", + "description": "ColumnMap 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." + }, + "regexExpectation": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", + "description": "ColumnMap 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." + }, + "setExpectation": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", + "description": "ColumnMap 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." + }, + "tableConditionExpectation": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", + "description": "Table rule which evaluates whether the provided expression is true." + }, + "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).", + "format": "double", + "type": "number" + }, + "uniquenessExpectation": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation", + "description": "ColumnAggregate rule which evaluates whether the column has duplicates." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation": { + "description": "Evaluates whether each column value is null.", + "id": "GoogleCloudDataplexV1DataQualityRuleNonNullExpectation", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleRangeExpectation": { + "description": "Evaluates whether each column value lies between a specified range.", + "id": "GoogleCloudDataplexV1DataQualityRuleRangeExpectation", + "properties": { + "maxValue": { + "description": "Optional. The maximum column 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": "Optional. The minimum column value allowed for a row to pass this validation. At least one of min_value and max_value need to be provided.", + "type": "string" + }, + "strictMaxEnabled": { + "description": "Optional. Whether each value 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": "Optional. Whether each value 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" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleRegexExpectation": { + "description": "Evaluates whether each column value matches a specified regex.", + "id": "GoogleCloudDataplexV1DataQualityRuleRegexExpectation", + "properties": { + "regex": { + "description": "A regular expression the column value is expected to match.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleResult": { + "description": "DataQualityRuleResult provides a more detailed, per-rule view of the results.", + "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.", + "format": "int64", + "type": "string" + }, + "failingRowsQuery": { + "description": "The query to find rows that did not pass this rule. Only applies to ColumnMap and RowCondition rules.", + "type": "string" + }, + "nullCount": { + "description": "The number of rows with null values in the specified column.", + "format": "int64", + "type": "string" + }, + "passRatio": { + "description": "The ratio of passed_count / evaluated_count. This field is only valid for ColumnMap type rules.", + "format": "double", + "type": "number" + }, + "passed": { + "description": "Whether the rule passed or failed.", + "type": "boolean" + }, + "passedCount": { + "description": "The number of rows which passed a rule evaluation. This field is only valid for ColumnMap type rules.", + "format": "int64", + "type": "string" + }, + "rule": { + "$ref": "GoogleCloudDataplexV1DataQualityRule", + "description": "The rule specified in the DataQualitySpec, as is." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation": { + "description": "Evaluates whether each row passes the specified condition.The SQL expression needs to use BigQuery standard SQL syntax and should produce a boolean value per row as the result.Example: col1 >= 0 AND col2 < 10", + "id": "GoogleCloudDataplexV1DataQualityRuleRowConditionExpectation", + "properties": { + "sqlExpression": { + "description": "The SQL expression.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleSetExpectation": { + "description": "Evaluates whether each column value is contained by a specified set.", + "id": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", + "properties": { + "values": { + "description": "Expected values for the column value.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation": { + "description": "Evaluates whether the column aggregate statistic lies between a specified range.", + "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.", + "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.", + "type": "string" + }, + "statistic": { + "enum": [ + "STATISTIC_UNDEFINED", + "MEAN", + "MIN", + "MAX" + ], + "enumDescriptions": [ + "Unspecified statistic type", + "Evaluate the column mean", + "Evaluate the column min", + "Evaluate the column max" + ], + "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.", + "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.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation": { + "description": "Evaluates whether the provided expression is true.The SQL expression needs to use BigQuery standard SQL syntax and should produce a scalar boolean result.Example: MIN(col1) >= 0", + "id": "GoogleCloudDataplexV1DataQualityRuleTableConditionExpectation", + "properties": { + "sqlExpression": { + "description": "The SQL expression.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation": { + "description": "Evaluates whether the column has duplicates.", + "id": "GoogleCloudDataplexV1DataQualityRuleUniquenessExpectation", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpec": { + "description": "DataQualityScan related setting.", + "id": "GoogleCloudDataplexV1DataQualitySpec", + "properties": { + "rules": { + "description": "The list of rules to evaluate against a data source. At least one rule is required.", + "items": { + "$ref": "GoogleCloudDataplexV1DataQualityRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScan": { + "description": "Represents a user-visible job which provides the insights for the related data source.For example: Data Quality: generates queries based on the rules and runs against the data to get data quality check results. Data Profile: analyzes the data in table(s) and generates insights about the structure, content and relationships (such as null percent, cardinality, min/max/mean, etc).", + "id": "GoogleCloudDataplexV1DataScan", + "properties": { + "createTime": { + "description": "Output only. The time when the scan was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "data": { + "$ref": "GoogleCloudDataplexV1DataSource", + "description": "Required. The data source for DataScan." + }, + "dataProfileResult": { + "$ref": "GoogleCloudDataplexV1DataProfileResult", + "description": "Output only. The result of the data profile scan.", + "readOnly": true + }, + "dataProfileSpec": { + "$ref": "GoogleCloudDataplexV1DataProfileSpec", + "description": "DataProfileScan related setting." + }, + "dataQualityResult": { + "$ref": "GoogleCloudDataplexV1DataQualityResult", + "description": "Output only. The result of the data quality scan.", + "readOnly": true + }, + "dataQualitySpec": { + "$ref": "GoogleCloudDataplexV1DataQualitySpec", + "description": "DataQualityScan related setting." + }, + "description": { + "description": "Optional. Description of the scan. Must be between 1-1024 characters.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name. Must be between 1-256 characters.", + "type": "string" + }, + "executionSpec": { + "$ref": "GoogleCloudDataplexV1DataScanExecutionSpec", + "description": "Optional. DataScan execution settings.If not specified, the fields in it will use their default values." + }, + "executionStatus": { + "$ref": "GoogleCloudDataplexV1DataScanExecutionStatus", + "description": "Output only. Status of the data scan execution.", + "readOnly": true + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the scan.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the scan, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_id}, where project refers to a project_id or project_number and location_id refers to a GCP region.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Current state of the DataScan.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "CREATING", + "DELETING", + "ACTION_REQUIRED" + ], + "enumDescriptions": [ + "State is not specified.", + "Resource is active, i.e., ready to use.", + "Resource is under creation.", + "Resource is under deletion.", + "Resource is active but has unresolved actions." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The type of DataScan.", + "enum": [ + "DATA_SCAN_TYPE_UNSPECIFIED", + "DATA_QUALITY", + "DATA_PROFILE" + ], + "enumDescriptions": [ + "The DataScan type is unspecified.", + "Data Quality scan.", + "Data Profile scan." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the scan. This ID will be different if the scan is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the scan was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanEvent": { + "description": "These messages contain information about the execution of a datascan. The monitored resource is 'DataScan'", + "id": "GoogleCloudDataplexV1DataScanEvent", + "properties": { + "dataProfile": { + "$ref": "GoogleCloudDataplexV1DataScanEventDataProfileResult", + "description": "Data profile result for data profile type data scan." + }, + "dataQuality": { + "$ref": "GoogleCloudDataplexV1DataScanEventDataQualityResult", + "description": "Data quality result for data quality type data scan." + }, + "dataSource": { + "description": "The data source of the data scan", + "type": "string" + }, + "endTime": { + "description": "The time when the data scan job finished.", + "format": "google-datetime", + "type": "string" + }, + "jobId": { + "description": "The identifier of the specific data scan job this log entry is for.", + "type": "string" + }, + "message": { + "description": "The message describing the data scan job event.", + "type": "string" + }, + "scope": { + "description": "The scope of the data scan (e.g. full, incremental).", + "enum": [ + "SCOPE_UNSPECIFIED", + "FULL", + "INCREMENTAL" + ], + "enumDescriptions": [ + "An unspecified scope type.", + "Data scan runs on all of the data.", + "Data scan runs on incremental data." + ], + "type": "string" + }, + "specVersion": { + "description": "A version identifier of the spec which was used to execute this job.", + "type": "string" + }, + "startTime": { + "description": "The time when the data scan job started to run.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "The status of the data scan job.", + "enum": [ + "STATE_UNSPECIFIED", + "STARTED", + "SUCCEEDED", + "FAILED", + "CANCELLED" + ], + "enumDescriptions": [ + "Unspecified job state.", + "Data scan started.", + "Data scan successfully completed.", + "Data scan was unsuccessful.", + "Data scan was cancelled." + ], + "type": "string" + }, + "trigger": { + "description": "The trigger type of the data scan job.", + "enum": [ + "TRIGGER_UNSPECIFIED", + "ON_DEMAND", + "SCHEDULE" + ], + "enumDescriptions": [ + "An unspecified trigger type.", + "Data scan triggers on demand.", + "Data scan triggers as per schedule." + ], + "type": "string" + }, + "type": { + "description": "The type of the data scan.", + "enum": [ + "SCAN_TYPE_UNSPECIFIED", + "DATA_PROFILE", + "DATA_QUALITY" + ], + "enumDescriptions": [ + "An unspecified data scan type.", + "Data scan for data profile.", + "Data scan for data quality." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanEventDataProfileResult": { + "description": "Data profile result for data scan job.", + "id": "GoogleCloudDataplexV1DataScanEventDataProfileResult", + "properties": { + "rowCount": { + "description": "The count of rows processed in the data scan job.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanEventDataQualityResult": { + "description": "Data quality result for data scan job.", + "id": "GoogleCloudDataplexV1DataScanEventDataQualityResult", + "properties": { + "dimensionPassed": { + "additionalProperties": { + "type": "boolean" + }, + "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" + }, + "passed": { + "description": "Whether the data quality result was pass or not.", + "type": "boolean" + }, + "rowCount": { + "description": "The count of rows processed in the data scan job.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanExecutionSpec": { + "description": "DataScan execution settings.", + "id": "GoogleCloudDataplexV1DataScanExecutionSpec", + "properties": { + "field": { + "description": "Immutable. The unnested field (of type Date or Timestamp) that contains values which monotonically increase over time.If not specified, a data scan will run for all data in the table.", + "type": "string" + }, + "trigger": { + "$ref": "GoogleCloudDataplexV1Trigger", + "description": "Optional. Spec related to how often and when a scan should be triggered.If not specified, the default is OnDemand, which means the scan will not run until the user calls RunDataScan API." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanExecutionStatus": { + "description": "Status of the data scan execution.", + "id": "GoogleCloudDataplexV1DataScanExecutionStatus", + "properties": { + "latestJobEndTime": { + "description": "The time when the latest DataScanJob ended.", + "format": "google-datetime", + "type": "string" + }, + "latestJobStartTime": { + "description": "The time when the latest DataScanJob started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataScanJob": { + "description": "A DataScanJob represents an instance of DataScan execution.", + "id": "GoogleCloudDataplexV1DataScanJob", + "properties": { + "dataProfileResult": { + "$ref": "GoogleCloudDataplexV1DataProfileResult", + "description": "Output only. The result of the data profile scan.", + "readOnly": true + }, + "dataProfileSpec": { + "$ref": "GoogleCloudDataplexV1DataProfileSpec", + "description": "Output only. DataProfileScan related setting.", + "readOnly": true + }, + "dataQualityResult": { + "$ref": "GoogleCloudDataplexV1DataQualityResult", + "description": "Output only. The result of the data quality scan.", + "readOnly": true + }, + "dataQualitySpec": { + "$ref": "GoogleCloudDataplexV1DataQualitySpec", + "description": "Output only. DataQualityScan related setting.", + "readOnly": true + }, + "endTime": { + "description": "Output only. The time when the DataScanJob ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "message": { + "description": "Output only. Additional information about the current state.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The relative resource name of the DataScanJob, of the form: projects/{project}/locations/{location_id}/dataScans/{datascan_id}/jobs/{job_id}, where project refers to a project_id or project_number and location_id refers to a GCP region.", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The time when the DataScanJob was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Execution state for the DataScanJob.", + "enum": [ + "STATE_UNSPECIFIED", + "RUNNING", + "CANCELING", + "CANCELLED", + "SUCCEEDED", + "FAILED", + "PENDING" + ], + "enumDescriptions": [ + "The DataScanJob state is unspecified.", + "The DataScanJob is running.", + "The DataScanJob is canceling.", + "The DataScanJob cancellation was successful.", + "The DataScanJob completed successfully.", + "The DataScanJob is no longer running due to an error.", + "The DataScanJob has been created but not started to run yet." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. The type of the parent DataScan.", + "enum": [ + "DATA_SCAN_TYPE_UNSPECIFIED", + "DATA_QUALITY", + "DATA_PROFILE" + ], + "enumDescriptions": [ + "The DataScan type is unspecified.", + "Data Quality scan.", + "Data Profile scan." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the DataScanJob.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataSource": { + "description": "The data source for DataScan.", + "id": "GoogleCloudDataplexV1DataSource", + "properties": { + "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" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataTaxonomy": { + "description": "DataTaxonomy represents a set of hierarchical DataAttributes resources, grouped with a common theme Eg: 'SensitiveDataTaxonomy' can have attributes to manage PII data. It is defined at project level.", + "id": "GoogleCloudDataplexV1DataTaxonomy", + "properties": { + "attributeCount": { + "description": "Output only. The number of attributes in the DataTaxonomy.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "createTime": { + "description": "Output only. The time when the DataTaxonomy was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the DataTaxonomy.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "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": "Optional. User-defined labels for the DataTaxonomy.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the DataTaxonomy, of the form: projects/{project_number}/locations/{location_id}/dataTaxonomies/{data_taxonomy_id}.", + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the dataTaxonomy. This ID will be different if the DataTaxonomy is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the DataTaxonomy was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DiscoveryEvent": { "description": "The payload associated with Discovery data processing.", "id": "GoogleCloudDataplexV1DiscoveryEvent", @@ -3287,6 +5866,13 @@ "description": "The name to the partition resource. The name is the fully-qualified resource name.", "type": "string" }, + "sampledDataLocations": { + "description": "The locations of the data items (e.g., a Cloud Storage objects) sampled for metadata inference.", + "items": { + "type": "string" + }, + "type": "array" + }, "type": { "description": "The type of the containing entity resource.", "enum": [ @@ -3308,6 +5894,11 @@ "description": "Represents tables and fileset metadata contained within a zone.", "id": "GoogleCloudDataplexV1Entity", "properties": { + "access": { + "$ref": "GoogleCloudDataplexV1StorageAccess", + "description": "Output only. Identifies the access mechanism to the entity. Not user settable.", + "readOnly": true + }, "asset": { "description": "Required. Immutable. The ID of the asset associated with the storage location containing the entity data. The entity must be with in the same zone with the asset.", "type": "string" @@ -3393,6 +5984,11 @@ ], "type": "string" }, + "uid": { + "description": "Output only. System generated unique ID for the Entity. This ID will be different if the Entity is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The time when the entity was last updated.", "format": "google-datetime", @@ -3644,12 +6240,12 @@ "type": "string" }, "name": { - "description": "Output only. The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/ tasks/{task_id}/jobs/{job_id}.", + "description": "Output only. The relative resource name of the job, of the form: projects/{project_number}/locations/{location_id}/lakes/{lake_id}/tasks/{task_id}/jobs/{job_id}.", "readOnly": true, "type": "string" }, "retryCount": { - "description": "Output only. . The number of times the job has been retried (excluding the initial attempt).", + "description": "Output only. The number of times the job has been retried (excluding the initial attempt).", "format": "uint32", "readOnly": true, "type": "integer" @@ -3972,6 +6568,124 @@ }, "type": "object" }, + "GoogleCloudDataplexV1ListDataAttributeBindingsResponse": { + "description": "List DataAttributeBindings response.", + "id": "GoogleCloudDataplexV1ListDataAttributeBindingsResponse", + "properties": { + "dataAttributeBindings": { + "description": "DataAttributeBindings under the given parent Location.", + "items": { + "$ref": "GoogleCloudDataplexV1DataAttributeBinding" + }, + "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" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ListDataAttributesResponse": { + "description": "List DataAttributes response.", + "id": "GoogleCloudDataplexV1ListDataAttributesResponse", + "properties": { + "dataAttributes": { + "description": "DataAttributes under the given parent DataTaxonomy.", + "items": { + "$ref": "GoogleCloudDataplexV1DataAttribute" + }, + "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" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ListDataScanJobsResponse": { + "description": "List DataScanJobs response.", + "id": "GoogleCloudDataplexV1ListDataScanJobsResponse", + "properties": { + "dataScanJobs": { + "description": "DataScanJobs (BASIC view only) under a given dataScan.", + "items": { + "$ref": "GoogleCloudDataplexV1DataScanJob" + }, + "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" + }, + "GoogleCloudDataplexV1ListDataScansResponse": { + "description": "List dataScans response.", + "id": "GoogleCloudDataplexV1ListDataScansResponse", + "properties": { + "dataScans": { + "description": "DataScans (BASIC view only) under the given parent location.", + "items": { + "$ref": "GoogleCloudDataplexV1DataScan" + }, + "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" + }, + "GoogleCloudDataplexV1ListDataTaxonomiesResponse": { + "description": "List DataTaxonomies response.", + "id": "GoogleCloudDataplexV1ListDataTaxonomiesResponse", + "properties": { + "dataTaxonomies": { + "description": "DataTaxonomies under the given parent location.", + "items": { + "$ref": "GoogleCloudDataplexV1DataTaxonomy" + }, + "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" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1ListEntitiesResponse": { "description": "List metadata entities response.", "id": "GoogleCloudDataplexV1ListEntitiesResponse", @@ -4201,6 +6915,96 @@ }, "type": "object" }, + "GoogleCloudDataplexV1ResourceAccessSpec": { + "description": "ResourceAccessSpec holds the access control configuration to be enforced on the resources, for example, Cloud Storage bucket, BigQuery dataset, BigQuery table.", + "id": "GoogleCloudDataplexV1ResourceAccessSpec", + "properties": { + "owners": { + "description": "Optional. The set of principals to be granted owner role on the resource.", + "items": { + "type": "string" + }, + "type": "array" + }, + "readers": { + "description": "Optional. The format of strings follows the pattern followed by IAM in the bindings. user:{email}, serviceAccount:{email} group:{email}. The set of principals to be granted reader role on the resource.", + "items": { + "type": "string" + }, + "type": "array" + }, + "writers": { + "description": "Optional. The set of principals to be granted writer role on the resource.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1RunDataScanRequest": { + "description": "Run DataScan Request", + "id": "GoogleCloudDataplexV1RunDataScanRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1RunDataScanResponse": { + "description": "Run DataScan Response.", + "id": "GoogleCloudDataplexV1RunDataScanResponse", + "properties": { + "job": { + "$ref": "GoogleCloudDataplexV1DataScanJob", + "description": "DataScanJob created by RunDataScan request." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1RunTaskRequest": { + "id": "GoogleCloudDataplexV1RunTaskRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1RunTaskResponse": { + "id": "GoogleCloudDataplexV1RunTaskResponse", + "properties": { + "job": { + "$ref": "GoogleCloudDataplexV1Job", + "description": "Jobs created by RunTask API." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ScannedData": { + "description": "The data scanned during processing (e.g. in incremental DataScan)", + "id": "GoogleCloudDataplexV1ScannedData", + "properties": { + "incrementalField": { + "$ref": "GoogleCloudDataplexV1ScannedDataIncrementalField", + "description": "The range denoted by values of an incremental field" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ScannedDataIncrementalField": { + "description": "A data range denoted by a pair of start/end values of a field.", + "id": "GoogleCloudDataplexV1ScannedDataIncrementalField", + "properties": { + "end": { + "description": "Value that marks the end of the range.", + "type": "string" + }, + "field": { + "description": "The field that contains values which monotonically increases over time (e.g. a timestamp column).", + "type": "string" + }, + "start": { + "description": "Value that marks the start of the range.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Schema": { "description": "Schema information describing the structure and layout of the data.", "id": "GoogleCloudDataplexV1Schema", @@ -4412,6 +7216,14 @@ "description": "These messages contain information about sessions within an environment. The monitored resource is 'Environment'.", "id": "GoogleCloudDataplexV1SessionEvent", "properties": { + "eventSucceeded": { + "description": "The status of the event.", + "type": "boolean" + }, + "fastStartupEnabled": { + "description": "If the session is associated with an environment with fast startup enabled, and was created before being assigned to a user.", + "type": "boolean" + }, "message": { "description": "The log message.", "type": "string" @@ -4430,18 +7242,25 @@ "EVENT_TYPE_UNSPECIFIED", "START", "STOP", - "QUERY" + "QUERY", + "CREATE" ], "enumDescriptions": [ "An unspecified event type.", - "Event for start of a session.", + "Event when the session is assigned to a user.", "Event for stop of a session.", - "Query events in the session." + "Query events in the session.", + "Event for creation of a cluster. It is not yet assigned to a user. This comes before START in the sequence" ], "type": "string" }, + "unassignedDuration": { + "description": "The idle duration of a warm pooled session before it is assigned to user.", + "format": "google-duration", + "type": "string" + }, "userId": { - "description": "The information about the user that created the session.", + "description": "The information about the user that created the session. It will be the email address of the user.", "type": "string" } }, @@ -4491,6 +7310,28 @@ }, "type": "object" }, + "GoogleCloudDataplexV1StorageAccess": { + "description": "Describes the access mechanism of the data within its storage location.", + "id": "GoogleCloudDataplexV1StorageAccess", + "properties": { + "read": { + "description": "Output only. Describes the read access mechanism of the data. Not user settable.", + "enum": [ + "ACCESS_MODE_UNSPECIFIED", + "DIRECT", + "MANAGED" + ], + "enumDescriptions": [ + "Access mode unspecified.", + "Default. Data is accessed directly using storage APIs.", + "Data is accessed through a managed interface using BigQuery APIs." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1StorageFormat": { "description": "Describes the format of the data within its storage location.", "id": "GoogleCloudDataplexV1StorageFormat", @@ -4548,12 +7389,16 @@ "readOnly": true, "type": "string" }, + "iceberg": { + "$ref": "GoogleCloudDataplexV1StorageFormatIcebergOptions", + "description": "Optional. Additional information about iceberg tables." + }, "json": { "$ref": "GoogleCloudDataplexV1StorageFormatJsonOptions", "description": "Optional. Additional information about CSV formatted data." }, "mimeType": { - "description": "Required. The mime type descriptor for the data. Must match the pattern {type}/{subtype}. Supported values: application/x-parquet application/x-avro application/x-orc application/x-tfrecord application/json application/{subtypes} text/csv text/ image/{image subtype} video/{video subtype} audio/{audio subtype}", + "description": "Required. The mime type descriptor for the data. Must match the pattern {type}/{subtype}. Supported values: application/x-parquet application/x-avro application/x-orc application/x-tfrecord application/x-parquet+iceberg application/x-avro+iceberg application/x-orc+iceberg application/json application/{subtypes} text/csv text/ image/{image subtype} video/{video subtype} audio/{audio subtype}", "type": "string" } }, @@ -4583,6 +7428,17 @@ }, "type": "object" }, + "GoogleCloudDataplexV1StorageFormatIcebergOptions": { + "description": "Describes Iceberg data format.", + "id": "GoogleCloudDataplexV1StorageFormatIcebergOptions", + "properties": { + "metadataLocation": { + "description": "Optional. The location of where the iceberg metadata is present, must be within the table path", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1StorageFormatJsonOptions": { "description": "Describes JSON data format.", "id": "GoogleCloudDataplexV1StorageFormatJsonOptions", @@ -4616,6 +7472,11 @@ "$ref": "GoogleCloudDataplexV1TaskExecutionSpec", "description": "Required. Spec related to how a task is executed." }, + "executionStatus": { + "$ref": "GoogleCloudDataplexV1TaskExecutionStatus", + "description": "Output only. Status of the latest task executions.", + "readOnly": true + }, "labels": { "additionalProperties": { "type": "string" @@ -4628,6 +7489,10 @@ "readOnly": true, "type": "string" }, + "notebook": { + "$ref": "GoogleCloudDataplexV1TaskNotebookTaskConfig", + "description": "Config related to running scheduled Notebooks." + }, "spark": { "$ref": "GoogleCloudDataplexV1TaskSparkTaskConfig", "description": "Config related to running custom Spark tasks." @@ -4680,11 +7545,19 @@ "description": "Optional. The arguments to pass to the task. The args can use placeholders of the format ${placeholder} as part of key/value string. These will be interpolated before passing the args to the driver. Currently supported placeholders: - ${task_id} - ${job_time} To pass positional args, set the key as TASK_ARGS. The value should be a comma-separated string of all the positional arguments. To use a delimiter other than comma, refer to https://cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys being present in the args, then TASK_ARGS will be passed as the last argument.", "type": "object" }, + "kmsKey": { + "description": "Optional. The Cloud KMS key to use for encryption, of the form: projects/{project_number}/locations/{location_id}/keyRings/{key-ring-name}/cryptoKeys/{key-name}.", + "type": "string" + }, "maxJobExecutionLifetime": { "description": "Optional. The maximum duration after which the job execution is expired.", "format": "google-duration", "type": "string" }, + "project": { + "description": "Optional. The project in which jobs are run. By default, the project containing the Lake is used. If a project is provided, the ExecutionSpec.service_account must belong to this project.", + "type": "string" + }, "serviceAccount": { "description": "Required. Service account to use to execute a task. If not provided, the default Compute service account for the project is used.", "type": "string" @@ -4692,6 +7565,24 @@ }, "type": "object" }, + "GoogleCloudDataplexV1TaskExecutionStatus": { + "description": "Status of the task execution (e.g. Jobs).", + "id": "GoogleCloudDataplexV1TaskExecutionStatus", + "properties": { + "latestJob": { + "$ref": "GoogleCloudDataplexV1Job", + "description": "Output only. latest job execution", + "readOnly": true + }, + "updateTime": { + "description": "Output only. Last update time of the status.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1TaskInfrastructureSpec": { "description": "Configuration for the underlying infrastructure used to run workloads.", "id": "GoogleCloudDataplexV1TaskInfrastructureSpec", @@ -4716,12 +7607,12 @@ "id": "GoogleCloudDataplexV1TaskInfrastructureSpecBatchComputeResources", "properties": { "executorsCount": { - "description": "Optional. Total number of job executors.", + "description": "Optional. Total number of job executors. Executor Count should be between 2 and 100. Default=2", "format": "int32", "type": "integer" }, "maxExecutorsCount": { - "description": "Optional. Max configurable executors. If max_executors_count > executors_count, then auto-scaling is enabled.", + "description": "Optional. Max configurable executors. If max_executors_count > executors_count, then auto-scaling is enabled. Max Executor Count should be between 2 and 1000. Default=1000", "format": "int32", "type": "integer" } @@ -4732,6 +7623,10 @@ "description": "Container Image Runtime Configuration used with Batch execution.", "id": "GoogleCloudDataplexV1TaskInfrastructureSpecContainerImageRuntime", "properties": { + "image": { + "description": "Optional. Container image to use.", + "type": "string" + }, "javaJars": { "description": "Optional. A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar", "items": { @@ -4778,6 +7673,35 @@ }, "type": "object" }, + "GoogleCloudDataplexV1TaskNotebookTaskConfig": { + "description": "Config for running scheduled notebooks.", + "id": "GoogleCloudDataplexV1TaskNotebookTaskConfig", + "properties": { + "archiveUris": { + "description": "Optional. Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fileUris": { + "description": "Optional. Cloud Storage URIs of files to be placed in the working directory of each executor.", + "items": { + "type": "string" + }, + "type": "array" + }, + "infrastructureSpec": { + "$ref": "GoogleCloudDataplexV1TaskInfrastructureSpec", + "description": "Optional. Infrastructure specification for the execution." + }, + "notebook": { + "description": "Required. Path to input notebook. This can be the Cloud Storage URI of the notebook file or the path to a Notebook Content. The execution args are accessible as environment variables (TASK_key=value).", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1TaskSparkTaskConfig": { "description": "User-specified config for running a Spark task.", "id": "GoogleCloudDataplexV1TaskSparkTaskConfig", @@ -4837,7 +7761,7 @@ "type": "integer" }, "schedule": { - "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks periodically. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\". This field is required for RECURRING tasks.", + "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks periodically. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. This field is required for RECURRING tasks.", "type": "string" }, "startTime": { @@ -4862,6 +7786,38 @@ }, "type": "object" }, + "GoogleCloudDataplexV1Trigger": { + "description": "DataScan scheduling and trigger settings.", + "id": "GoogleCloudDataplexV1Trigger", + "properties": { + "onDemand": { + "$ref": "GoogleCloudDataplexV1TriggerOnDemand", + "description": "The scan runs once via RunDataScan API." + }, + "schedule": { + "$ref": "GoogleCloudDataplexV1TriggerSchedule", + "description": "The scan is scheduled to run periodically." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1TriggerOnDemand": { + "description": "The scan runs once via RunDataScan API.", + "id": "GoogleCloudDataplexV1TriggerOnDemand", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1TriggerSchedule": { + "description": "The scan is scheduled to run periodically.", + "id": "GoogleCloudDataplexV1TriggerSchedule", + "properties": { + "cron": { + "description": "Required. Cron (https://en.wikipedia.org/wiki/Cron) schedule for running scans periodically.To explicitly set a timezone in the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database (wikipedia (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)). For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.This field is required for Schedule scans.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Zone": { "description": "A zone represents a logical group of related assets within a lake. A zone can be used to map to organizational structure or represent stages of data readiness from raw to curated. It provides managing behavior that is shared or inherited by all contained assets.", "id": "GoogleCloudDataplexV1Zone", @@ -4983,7 +7939,7 @@ "description": "Optional. Configuration for Json data." }, "schedule": { - "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", + "description": "Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *.", "type": "string" } }, @@ -5158,7 +8114,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 Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-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.", "items": { "type": "string" }, @@ -5208,7 +8164,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used:paths: \"bindings, etag\"", @@ -5223,7 +8179,7 @@ "id": "GoogleIamV1TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the resource. Permissions with wildcards (such as * or storage.*) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/dataproc/v1/dataproc-api.json b/etc/api/dataproc/v1/dataproc-api.json index 65029233c3..c6c91d2759 100644 --- a/etc/api/dataproc/v1/dataproc-api.json +++ b/etc/api/dataproc/v1/dataproc-api.json @@ -199,7 +199,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -263,7 +263,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -291,7 +291,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -389,7 +389,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the batch resource to delete.", + "description": "Required. The fully qualified name of the batch to retrieve in the format \"projects/PROJECT_ID/locations/DATAPROC_REGION/batches/BATCH_ID\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/batches/[^/]+$", "required": true, @@ -414,7 +414,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the batch to retrieve.", + "description": "Required. The fully qualified name of the batch to retrieve in the format \"projects/PROJECT_ID/locations/DATAPROC_REGION/batches/BATCH_ID\"", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/batches/[^/]+$", "required": true, @@ -467,6 +467,126 @@ } } }, + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "dataproc.projects.locations.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "dataproc.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": "dataproc.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED.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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "dataproc.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/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" + ] + } + } + }, "workflowTemplates": { "methods": { "create": { @@ -569,7 +689,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -694,7 +814,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -722,7 +842,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -864,7 +984,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -928,7 +1048,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -956,7 +1076,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/autoscalingPolicies/[^/]+$", "required": true, @@ -1197,7 +1317,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/clusters/[^/]+$", "required": true, @@ -1324,7 +1444,7 @@ "type": "string" }, "gracefulDecommissionTimeout": { - "description": "Optional. Timeout for graceful YARN decomissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", + "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning allows removing nodes from the cluster without interrupting jobs in progress. Timeout specifies how long to wait for jobs in progress to finish before forcefully removing nodes (and potentially interrupting jobs). Default timeout is 0 (for forceful decommission), and the maximum allowed timeout is 1 day. (see JSON representation of Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).Only supported on Dataproc image versions 1.2 and higher.", "format": "google-duration", "location": "query", "type": "string" @@ -1415,7 +1535,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/clusters/[^/]+$", "required": true, @@ -1525,7 +1645,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/clusters/[^/]+$", "required": true, @@ -1543,6 +1663,103 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "nodeGroups": { + "methods": { + "create": { + "description": "Creates 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", + "httpMethod": "POST", + "id": "dataproc.projects.regions.clusters.nodeGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "nodeGroupId": { + "description": "Optional. An optional node group ID. Generated if not specified.The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource where this node group will be created. Format: projects/{project}/regions/{region}/clusters/{cluster}", + "location": "path", + "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+$", + "required": true, + "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.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/nodeGroups", + "request": { + "$ref": "NodeGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the resource representation for a node group in a cluster.", + "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}/nodeGroups/{nodeGroupsId}", + "httpMethod": "GET", + "id": "dataproc.projects.regions.clusters.nodeGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the node group to retrieve. Format: projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup}", + "location": "path", + "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+/nodeGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "NodeGroup" + }, + "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", + "httpMethod": "POST", + "id": "dataproc.projects.regions.clusters.nodeGroups.resize", + "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}:resize", + "request": { + "$ref": "ResizeNodeGroupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "jobs": { @@ -1674,7 +1891,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/jobs/[^/]+$", "required": true, @@ -1816,7 +2033,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/jobs/[^/]+$", "required": true, @@ -1912,7 +2129,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/jobs/[^/]+$", "required": true, @@ -2019,7 +2236,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/operations/[^/]+$", "required": true, @@ -2088,7 +2305,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/operations/[^/]+$", "required": true, @@ -2116,7 +2333,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/operations/[^/]+$", "required": true, @@ -2238,7 +2455,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -2363,7 +2580,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -2391,7 +2608,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/regions/[^/]+/workflowTemplates/[^/]+$", "required": true, @@ -2444,7 +2661,7 @@ } } }, - "revision": "20220224", + "revision": "20230103", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2508,6 +2725,36 @@ }, "type": "object" }, + "AuxiliaryNodeGroup": { + "description": "Node group identification and configuration information.", + "id": "AuxiliaryNodeGroup", + "properties": { + "nodeGroup": { + "$ref": "NodeGroup", + "description": "Required. Node group configuration." + }, + "nodeGroupId": { + "description": "Optional. A node group ID. Generated if not specified.The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters.", + "type": "string" + } + }, + "type": "object" + }, + "AuxiliaryServicesConfig": { + "description": "Auxiliary services configuration for a Cluster.", + "id": "AuxiliaryServicesConfig", + "properties": { + "metastoreConfig": { + "$ref": "MetastoreConfig", + "description": "Optional. The Hive Metastore configuration for this workload." + }, + "sparkHistoryServerConfig": { + "$ref": "SparkHistoryServerConfig", + "description": "Optional. The Spark History Server configuration for the workload." + } + }, + "type": "object" + }, "BasicAutoscalingAlgorithm": { "description": "Basic algorithm for autoscaling.", "id": "BasicAutoscalingAlgorithm", @@ -2735,7 +2982,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 Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-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.", "items": { "type": "string" }, @@ -2759,7 +3006,7 @@ "id": "Cluster", "properties": { "clusterName": { - "description": "Required. The cluster name. Cluster names within a project must be unique. Names of deleted clusters can be reused.", + "description": "Required. The cluster name, which must be unique within a project. The name must start with a lowercase letter, and can contain up to 51 lowercase letters, numbers, and hyphens. It cannot end with a hyphen. The name of a deleted cluster can be reused.", "type": "string" }, "clusterUuid": { @@ -2769,7 +3016,7 @@ }, "config": { "$ref": "ClusterConfig", - "description": "Optional. The cluster config for a cluster of Compute Engine Instances. Note that Dataproc may set default values, and values may change when clusters are updated." + "description": "Optional. The cluster config for a cluster of Compute Engine Instances. Note that Dataproc may set default values, and values may change when clusters are updated.Exactly one of ClusterConfig or VirtualClusterConfig must be specified." }, "labels": { "additionalProperties": { @@ -2799,6 +3046,10 @@ }, "readOnly": true, "type": "array" + }, + "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." } }, "type": "object" @@ -2811,13 +3062,20 @@ "$ref": "AutoscalingConfig", "description": "Optional. Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset." }, + "auxiliaryNodeGroups": { + "description": "Optional. The node group settings.", + "items": { + "$ref": "AuxiliaryNodeGroup" + }, + "type": "array" + }, "configBucket": { "description": "Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see Dataproc staging and temp buckets (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket.", "type": "string" }, "dataprocMetricConfig": { "$ref": "DataprocMetricConfig", - "description": "Optional. The configuration(s) for a dataproc metric(s)." + "description": "Optional. The config for Dataproc metrics." }, "encryptionConfig": { "$ref": "EncryptionConfig", @@ -2833,7 +3091,7 @@ }, "gkeClusterConfig": { "$ref": "GkeClusterConfig", - "description": "Optional. BETA. The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes. Setting this is considered mutually exclusive with Compute Engine-based options such as gce_cluster_config, master_config, worker_config, secondary_worker_config, and autoscaling_config." + "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": { "description": "Optional. Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's role metadata to run an executable on a master or worker node, as shown below using curl (you can also use wget): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if [[ \"${ROLE}\" == 'Master' ]]; then ... master specific actions ... else ... worker specific actions ... fi ", @@ -2894,7 +3152,7 @@ "format": "int64", "type": "string" }, - "description": "The YARN metrics.", + "description": "YARN metrics.", "type": "object" } }, @@ -2926,6 +3184,14 @@ "description": "Metadata describing the operation.", "id": "ClusterOperationMetadata", "properties": { + "childOperationIds": { + "description": "Output only. Child operation ids", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "clusterName": { "description": "Output only. Name of the cluster for the operation.", "readOnly": true, @@ -3057,7 +3323,8 @@ "UPDATING", "STOPPING", "STOPPED", - "STARTING" + "STARTING", + "REPAIRING" ], "enumDescriptions": [ "The cluster state is unknown.", @@ -3069,7 +3336,8 @@ "The cluster is being updated. It continues to accept and process jobs.", "The cluster is being stopped. It cannot be used.", "The cluster is currently stopped. It is not ready for use.", - "The cluster is being started. It is not ready for use." + "The cluster is being started. It is not ready for use.", + "The cluster is being repaired. It is not ready for use." ], "readOnly": true, "type": "string" @@ -3110,11 +3378,11 @@ "type": "object" }, "DataprocMetricConfig": { - "description": "Contains dataproc metric config.", + "description": "Dataproc metric config.", "id": "DataprocMetricConfig", "properties": { "metrics": { - "description": "Required. Metrics to be enabled.", + "description": "Required. Metrics sources to enable.", "items": { "$ref": "Metric" }, @@ -3159,7 +3427,24 @@ "type": "string" }, "numLocalSsds": { - "description": "Optional. Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.", + "description": "Optional. Number of attached SSDs, from 0 to 8 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and HDFS (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.Note: Local SSD options may vary by machine type and number of vCPUs selected.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DriverSchedulingConfig": { + "description": "Driver scheduling configuration.", + "id": "DriverSchedulingConfig", + "properties": { + "memoryMb": { + "description": "Required. The amount of memory in MB the driver is requesting.", + "format": "int32", + "type": "integer" + }, + "vcores": { + "description": "Required. The number of vCPUs the driver is requesting.", "format": "int32", "type": "integer" } @@ -3167,7 +3452,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3221,6 +3506,11 @@ "description": "Execution configuration for a workload.", "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.", + "format": "google-duration", + "type": "string" + }, "kmsKey": { "description": "Optional. The Cloud KMS key to use for encryption.", "type": "string" @@ -3377,9 +3667,154 @@ "description": "The cluster's GKE config.", "id": "GkeClusterConfig", "properties": { + "gkeClusterTarget": { + "description": "Optional. A target GKE cluster to deploy to. It must be in the same project and region as the Dataproc cluster (the GKE cluster can be zonal or regional). Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}'", + "type": "string" + }, "namespacedGkeDeploymentTarget": { "$ref": "NamespacedGkeDeploymentTarget", - "description": "Optional. A target for the deployment." + "description": "Optional. Deprecated. Use gkeClusterTarget. Used only for the deprecated beta. A target for the deployment." + }, + "nodePoolTarget": { + "description": "Optional. GKE node pools where workloads will be scheduled. At least one node pool must be assigned the DEFAULT GkeNodePoolTarget.Role. If a GkeNodePoolTarget is not specified, Dataproc constructs a DEFAULT GkeNodePoolTarget. Each role can be given to only one GkeNodePoolTarget. All node pools must have the same location settings.", + "items": { + "$ref": "GkeNodePoolTarget" + }, + "type": "array" + } + }, + "type": "object" + }, + "GkeNodeConfig": { + "description": "Parameters that describe cluster nodes.", + "id": "GkeNodeConfig", + "properties": { + "accelerators": { + "description": "Optional. A list of hardware accelerators (https://cloud.google.com/compute/docs/gpus) to attach to each node.", + "items": { + "$ref": "GkeNodePoolAcceleratorConfig" + }, + "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.", + "type": "string" + }, + "localSsdCount": { + "description": "Optional. The number of local SSD disks to attach to the node, which is limited by the maximum number of disks allowable per zone (see Adding Local SSDs (https://cloud.google.com/compute/docs/disks/local-ssd)).", + "format": "int32", + "type": "integer" + }, + "machineType": { + "description": "Optional. The name of a Compute Engine machine type (https://cloud.google.com/compute/docs/machine-types).", + "type": "string" + }, + "minCpuPlatform": { + "description": "Optional. Minimum CPU platform (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) to be used by this instance. The instance may be scheduled on the specified or a newer CPU platform. Specify the friendly names of CPU platforms, such as \"Intel Haswell\"` or Intel Sandy Bridge\".", + "type": "string" + }, + "preemptible": { + "description": "Optional. Whether the nodes are created as legacy preemptible VM instances (https://cloud.google.com/compute/docs/instances/preemptible). Also see Spot VMs, preemptible VM instances without a maximum lifetime. Legacy and Spot preemptible nodes cannot be used in a node pool with the CONTROLLER role or in the DEFAULT node pool if the CONTROLLER role is not assigned (the DEFAULT node pool will assume the CONTROLLER role).", + "type": "boolean" + }, + "spot": { + "description": "Optional. Whether the nodes are created as Spot VM instances (https://cloud.google.com/compute/docs/instances/spot). Spot VMs are the latest update to legacy preemptible VMs. Spot VMs do not have a maximum lifetime. Legacy and Spot preemptible nodes cannot be used in a node pool with the CONTROLLER role or in the DEFAULT node pool if the CONTROLLER role is not assigned (the DEFAULT node pool will assume the CONTROLLER role).", + "type": "boolean" + } + }, + "type": "object" + }, + "GkeNodePoolAcceleratorConfig": { + "description": "A GkeNodeConfigAcceleratorConfig represents a Hardware Accelerator request for a node pool.", + "id": "GkeNodePoolAcceleratorConfig", + "properties": { + "acceleratorCount": { + "description": "The number of accelerator cards exposed to an instance.", + "format": "int64", + "type": "string" + }, + "acceleratorType": { + "description": "The accelerator type resource namename (see GPUs on Compute Engine).", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "GkeNodePoolAutoscalingConfig": { + "description": "GkeNodePoolAutoscaling contains information the cluster autoscaler needs to adjust the size of the node pool to the current cluster usage.", + "id": "GkeNodePoolAutoscalingConfig", + "properties": { + "maxNodeCount": { + "description": "The maximum number of nodes in the node pool. Must be >= min_node_count, and must be > 0. Note: Quota must be sufficient to scale up the cluster.", + "format": "int32", + "type": "integer" + }, + "minNodeCount": { + "description": "The minimum number of nodes in the node pool. Must be >= 0 and <= max_node_count.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GkeNodePoolConfig": { + "description": "The configuration of a GKE node pool used by a Dataproc-on-GKE cluster (https://cloud.google.com/dataproc/docs/concepts/jobs/dataproc-gke#create-a-dataproc-on-gke-cluster).", + "id": "GkeNodePoolConfig", + "properties": { + "autoscaling": { + "$ref": "GkeNodePoolAutoscalingConfig", + "description": "Optional. The autoscaler configuration for this node pool. The autoscaler is enabled only when a valid configuration is present." + }, + "config": { + "$ref": "GkeNodeConfig", + "description": "Optional. The node pool configuration." + }, + "locations": { + "description": "Optional. The list of Compute Engine zones (https://cloud.google.com/compute/docs/zones#available) where node pool nodes associated with a Dataproc on GKE virtual cluster will be located.Note: All node pools associated with a virtual cluster must be located in the same region as the virtual cluster, and they must be located in the same zone within that region.If a location is not specified during node pool creation, Dataproc on GKE will choose the zone.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GkeNodePoolTarget": { + "description": "GKE node pools that Dataproc workloads run on.", + "id": "GkeNodePoolTarget", + "properties": { + "nodePool": { + "description": "Required. The target GKE node pool. Format: 'projects/{project}/locations/{location}/clusters/{cluster}/nodePools/{node_pool}'", + "type": "string" + }, + "nodePoolConfig": { + "$ref": "GkeNodePoolConfig", + "description": "Input only. The configuration for the GKE node pool.If specified, Dataproc attempts to create a node pool with the specified shape. If one with the same name already exists, it is verified against all specified fields. If a field differs, the virtual cluster creation will fail.If omitted, any node pool with the specified name is used. If a node pool with the specified name does not exist, Dataproc create a node pool with default values.This is an input only field. It will not be returned by the API." + }, + "roles": { + "description": "Required. The roles associated with the GKE node pool.", + "items": { + "enum": [ + "ROLE_UNSPECIFIED", + "DEFAULT", + "CONTROLLER", + "SPARK_DRIVER", + "SPARK_EXECUTOR" + ], + "enumDescriptions": [ + "Role is unspecified.", + "At least one node pool must have the DEFAULT role. Work assigned to a role that is not associated with a node pool is assigned to the node pool with the DEFAULT role. For example, work assigned to the CONTROLLER role will be assigned to the node pool with the DEFAULT role if no node pool has the CONTROLLER role.", + "Run work associated with the Dataproc control plane (for example, controllers and webhooks). Very low resource requirements.", + "Run work associated with a Spark driver of a job.", + "Run work associated with a Spark executor of a job." + ], + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -3592,12 +4027,14 @@ "enum": [ "PREEMPTIBILITY_UNSPECIFIED", "NON_PREEMPTIBLE", - "PREEMPTIBLE" + "PREEMPTIBLE", + "SPOT" ], "enumDescriptions": [ "Preemptibility is unspecified, the system will choose the appropriate setting for each instance group.", "Instances are non-preemptible.This option is allowed for all instance groups and is the only valid value for Master and Worker instance groups.", - "Instances are preemptible.This option is allowed only for secondary worker groups." + "Instances are preemptible (https://cloud.google.com/compute/docs/instances/preemptible).This option is allowed only for secondary worker (https://cloud.google.com/dataproc/docs/concepts/compute/secondary-vms) groups.", + "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" } @@ -3669,6 +4106,10 @@ "readOnly": true, "type": "string" }, + "driverSchedulingConfig": { + "$ref": "DriverSchedulingConfig", + "description": "Optional. Driver scheduling configuration." + }, "hadoopJob": { "$ref": "HadoopJob", "description": "Optional. Job is a Hadoop job." @@ -3738,6 +4179,10 @@ "readOnly": true, "type": "array" }, + "trinoJob": { + "$ref": "TrinoJob", + "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.", "items": { @@ -3820,12 +4265,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 driver exits with non-zero code 4 times within 10 minute window.Maximum value is 10.Note: Currently, this restartable job option is not supported in Dataproc workflow template (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template) jobs.", + "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).", "format": "int32", "type": "integer" }, "maxFailuresTotal": { - "description": "Optional. Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240.Note: Currently, this restartable job option is not supported in Dataproc workflow template (https://cloud.google.com/dataproc/docs/concepts/workflows/using-workflows#adding_jobs_to_a_template) jobs.", + "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).", "format": "int32", "type": "integer" } @@ -3964,6 +4409,46 @@ }, "type": "object" }, + "KubernetesClusterConfig": { + "description": "The configuration for running the Dataproc cluster on Kubernetes.", + "id": "KubernetesClusterConfig", + "properties": { + "gkeClusterConfig": { + "$ref": "GkeClusterConfig", + "description": "Required. The configuration for running the Dataproc cluster on GKE." + }, + "kubernetesNamespace": { + "description": "Optional. A namespace within the Kubernetes cluster to deploy into. If this namespace does not exist, it is created. If it exists, Dataproc verifies that another Dataproc VirtualCluster is not installed into it. If not specified, the name of the Dataproc Cluster is used.", + "type": "string" + }, + "kubernetesSoftwareConfig": { + "$ref": "KubernetesSoftwareConfig", + "description": "Optional. The software configuration for this Dataproc cluster running on Kubernetes." + } + }, + "type": "object" + }, + "KubernetesSoftwareConfig": { + "description": "The software configuration for this Dataproc cluster running on Kubernetes.", + "id": "KubernetesSoftwareConfig", + "properties": { + "componentVersion": { + "additionalProperties": { + "type": "string" + }, + "description": "The components that should be installed in this Dataproc cluster. The key must be a string from the KubernetesComponent enumeration. The value is the version of the software to be installed. At least one entry must be specified.", + "type": "object" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "The properties to set on daemon config files.Property keys are specified in prefix:property format, for example spark:spark.kubernetes.container.image. The following are supported prefixes and their mappings: spark: spark-defaults.confFor more information, see Cluster properties (https://cloud.google.com/dataproc/docs/concepts/cluster-properties).", + "type": "object" + } + }, + "type": "object" + }, "LifecycleConfig": { "description": "Specifies the cluster auto-delete schedule configuration.", "id": "LifecycleConfig", @@ -4194,18 +4679,18 @@ "type": "object" }, "Metric": { - "description": "Metric source to enable along with any optional metrics for this source that override the dataproc defaults", + "description": "A Dataproc OSS metric.", "id": "Metric", "properties": { "metricOverrides": { - "description": "Optional. Optional Metrics to override the dataproc default metrics configured for the metric source", + "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.", "items": { "type": "string" }, "type": "array" }, "metricSource": { - "description": "Required. MetricSource that should be enabled", + "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).", "enum": [ "METRIC_SOURCE_UNSPECIFIED", "MONITORING_AGENT_DEFAULTS", @@ -4213,16 +4698,18 @@ "SPARK", "YARN", "SPARK_HISTORY_SERVER", - "HIVESERVER2" + "HIVESERVER2", + "HIVEMETASTORE" ], "enumDescriptions": [ - "Required unspecified metric source", - "all default monitoring agent metrics that are published with prefix \"agent.googleapis.com\" when we enable a monitoring agent in Compute Engine", - "Hdfs metric source", - "Spark metric source", - "Yarn metric source", - "Spark history server metric source", - "hiveserver2 metric source" + "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.", + "HDFS metric source.", + "Spark metric source.", + "YARN metric source.", + "Spark History Server metric source.", + "Hiveserver2 metric source.", + "hivemetastore metric source" ], "type": "string" } @@ -4230,7 +4717,7 @@ "type": "object" }, "NamespacedGkeDeploymentTarget": { - "description": "A full, namespace-isolated deployment target for an existing GKE cluster.", + "description": "Deprecated. Used only for the deprecated beta. A full, namespace-isolated deployment target for an existing GKE cluster.", "id": "NamespacedGkeDeploymentTarget", "properties": { "clusterNamespace": { @@ -4244,8 +4731,45 @@ }, "type": "object" }, + "NodeGroup": { + "description": "Dataproc Node Group. The Dataproc NodeGroup resource is not related to the Dataproc NodeGroupAffinity resource.", + "id": "NodeGroup", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Node group labels. Label keys must consist of from 1 to 63 characters and conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). Label values can be empty. If specified, they must consist of from 1 to 63 characters and conform to RFC 1035 (https://www.ietf.org/rfc/rfc1035.txt). The node group must have no more than 32 labelsn.", + "type": "object" + }, + "name": { + "description": "The Node group resource name (https://aip.dev/122).", + "type": "string" + }, + "nodeGroupConfig": { + "$ref": "InstanceGroupConfig", + "description": "Optional. The node group instance group configuration." + }, + "roles": { + "description": "Required. Node group roles.", + "items": { + "enum": [ + "ROLE_UNSPECIFIED", + "DRIVER" + ], + "enumDescriptions": [ + "Required unspecified role.", + "Job drivers run on the node pool." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "NodeGroupAffinity": { - "description": "Node Group Affinity for clusters using sole-tenant node groups.", + "description": "Node Group Affinity for clusters using sole-tenant node groups. The Dataproc NodeGroupAffinity resource is not related to the Dataproc NodeGroup resource.", "id": "NodeGroupAffinity", "properties": { "nodeGroupUri": { @@ -4255,6 +4779,75 @@ }, "type": "object" }, + "NodeGroupOperationMetadata": { + "description": "Metadata describing the node group operation.", + "id": "NodeGroupOperationMetadata", + "properties": { + "clusterUuid": { + "description": "Output only. Cluster UUID associated with the node group operation.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Short description of operation.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Labels associated with the operation.", + "readOnly": true, + "type": "object" + }, + "nodeGroupId": { + "description": "Output only. Node group ID for the operation.", + "readOnly": true, + "type": "string" + }, + "operationType": { + "description": "The operation type.", + "enum": [ + "NODE_GROUP_OPERATION_TYPE_UNSPECIFIED", + "CREATE", + "UPDATE", + "DELETE", + "RESIZE" + ], + "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." + ], + "type": "string" + }, + "status": { + "$ref": "ClusterOperationStatus", + "description": "Output only. Current operation status.", + "readOnly": true + }, + "statusHistory": { + "description": "Output only. The previous operation status.", + "items": { + "$ref": "ClusterOperationStatus" + }, + "readOnly": true, + "type": "array" + }, + "warnings": { + "description": "Output only. Errors encountered during operation execution.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "NodeInitializationAction": { "description": "Specifies an executable to run on a fully configured node and a timeout period for executable completion.", "id": "NodeInitializationAction", @@ -4271,6 +4864,36 @@ }, "type": "object" }, + "NodePool": { + "description": "indicating a list of workers of same type", + "id": "NodePool", + "properties": { + "id": { + "description": "Required. A unique id of the node pool. Primary and Secondary workers can be specified using special reserved ids PRIMARY_WORKER_POOL and SECONDARY_WORKER_POOL respectively. Aux node pools can be referenced using corresponding pool id.", + "type": "string" + }, + "instanceNames": { + "description": "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", + "DELETE" + ], + "enumDescriptions": [ + "No action will be taken by default.", + "delete the specified list of nodes." + ], + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -4363,6 +4986,10 @@ "stepId": { "description": "Required. The step id. The id must be unique among all jobs within the template.The step id is used as prefix for job id, as job goog-dataproc-workflow-step-id label, and in prerequisiteStepIds field from other steps.The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.", "type": "string" + }, + "trinoJob": { + "$ref": "TrinoJob", + "description": "Optional. Job is a Trino job." } }, "type": "object" @@ -4645,6 +5272,22 @@ "description": "Optional. Specifying the cluster_uuid means the RPC will fail (with error NOT_FOUND) if a cluster with the specified UUID does not exist.", "type": "string" }, + "gracefulDecommissionTimeout": { + "description": "Optional. Timeout for graceful YARN decommissioning. Graceful decommissioning facilitates the removal of cluster nodes without interrupting jobs in progress. The timeout specifies the amount of time to wait for jobs finish before forcefully removing nodes. The default timeout is 0 for forceful decommissioning, and the maximum timeout period is 1 day. (see JSON Mapping\u2014Duration (https://developers.google.com/protocol-buffers/docs/proto3#json)).graceful_decommission_timeout is supported in Dataproc image versions 1.2+.", + "format": "google-duration", + "type": "string" + }, + "nodePools": { + "description": "Optional. Node pools and corresponding repair action to be taken. All node pools should be unique in this request. i.e. Multiple entries for the same node pool id are not allowed.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "parentOperationId": { + "description": "Optional. operation id of the parent operation sending the repair request", + "type": "string" + }, "requestId": { "description": "Optional. A unique ID used to identify the request. If the server receives two RepairClusterRequests 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" @@ -4686,6 +5329,27 @@ }, "type": "object" }, + "ResizeNodeGroupRequest": { + "description": "A request to resize a node group.", + "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.", + "format": "google-duration", + "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" + }, + "size": { + "description": "Required. The number of running instances for the node group to maintain. The group adds or removes instances to maintain the number of instances specified by this parameter.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "RuntimeConfig": { "description": "Runtime configuration for a workload.", "id": "RuntimeConfig", @@ -4712,6 +5376,16 @@ "description": "Runtime information about workload execution.", "id": "RuntimeInfo", "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)).", + "readOnly": true + }, + "currentUsage": { + "$ref": "UsageSnapshot", + "description": "Output only. Snapshot of current workload resource usage.", + "readOnly": true + }, "diagnosticOutputUri": { "description": "Output only. A URI pointing to the location of the diagnostics tarball.", "readOnly": true, @@ -4813,7 +5487,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -4858,6 +5532,7 @@ "HIVE_WEBHCAT", "JUPYTER", "PRESTO", + "TRINO", "RANGER", "SOLR", "ZEPPELIN", @@ -4873,6 +5548,7 @@ "The Hive Web HCatalog (the REST service for accessing HCatalog).", "The Jupyter Notebook.", "The Presto query engine.", + "The Trino query engine.", "The Ranger service.", "The Solr service.", "The Zeppelin notebook.", @@ -5316,7 +5992,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the resource. Permissions with wildcards (such as * or storage.*) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -5339,6 +6015,86 @@ }, "type": "object" }, + "TrinoJob": { + "description": "A Dataproc job for running Trino (https://trino.io/) queries. IMPORTANT: The Dataproc Trino Optional Component (https://cloud.google.com/dataproc/docs/concepts/components/trino) must be enabled when the cluster is created to submit a Trino job to the cluster.", + "id": "TrinoJob", + "properties": { + "clientTags": { + "description": "Optional. Trino client tags to attach to this query", + "items": { + "type": "string" + }, + "type": "array" + }, + "continueOnFailure": { + "description": "Optional. Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries.", + "type": "boolean" + }, + "loggingConfig": { + "$ref": "LoggingConfig", + "description": "Optional. The runtime log config for job execution." + }, + "outputFormat": { + "description": "Optional. The format in which query output will be displayed. See the Trino documentation for supported output formats", + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A mapping of property names to values. Used to set Trino session properties (https://trino.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Trino CLI", + "type": "object" + }, + "queryFileUri": { + "description": "The HCFS URI of the script that contains SQL queries.", + "type": "string" + }, + "queryList": { + "$ref": "QueryList", + "description": "A list of queries." + } + }, + "type": "object" + }, + "UsageMetrics": { + "description": "Usage metrics represent approximate total resources consumed by a workload.", + "id": "UsageMetrics", + "properties": { + "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", + "type": "string" + }, + "shuffleStorageGbSeconds": { + "description": "Optional. Shuffle storage usage in (GB x seconds) (see Dataproc Serverless pricing (https://cloud.google.com/dataproc-serverless/pricing)).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "UsageSnapshot": { + "description": "The usage snaphot represents the resources consumed by a workload at a specified time.", + "id": "UsageSnapshot", + "properties": { + "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" + }, + "shuffleStorageGb": { + "description": "Optional. Shuffle Storage in gigabytes (GB). (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", + "type": "string" + } + }, + "type": "object" + }, "ValueValidation": { "description": "Validation based on a list of allowed values.", "id": "ValueValidation", @@ -5353,6 +6109,25 @@ }, "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).", + "id": "VirtualClusterConfig", + "properties": { + "auxiliaryServicesConfig": { + "$ref": "AuxiliaryServicesConfig", + "description": "Optional. Configuration of auxiliary services used by this cluster." + }, + "kubernetesClusterConfig": { + "$ref": "KubernetesClusterConfig", + "description": "Required. The configuration for running the Dataproc cluster on Kubernetes." + }, + "stagingBucket": { + "description": "Optional. A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see Dataproc staging and temp buckets (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)). This field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket.", + "type": "string" + } + }, + "type": "object" + }, "WorkflowGraph": { "description": "The workflow graph.", "id": "WorkflowGraph", diff --git a/etc/api/datastore/v1/datastore-api.json b/etc/api/datastore/v1/datastore-api.json index c1ec710e7d..b87ae1286a 100644 --- a/etc/api/datastore/v1/datastore-api.json +++ b/etc/api/datastore/v1/datastore-api.json @@ -333,6 +333,34 @@ "https://www.googleapis.com/auth/datastore" ] }, + "runAggregationQuery": { + "description": "Runs an aggregation query.", + "flatPath": "v1/projects/{projectId}:runAggregationQuery", + "httpMethod": "POST", + "id": "datastore.projects.runAggregationQuery", + "parameterOrder": [ + "projectId" + ], + "parameters": { + "projectId": { + "description": "Required. The ID of the project against which to make the request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{projectId}:runAggregationQuery", + "request": { + "$ref": "RunAggregationQueryRequest" + }, + "response": { + "$ref": "RunAggregationQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "runQuery": { "description": "Queries for entities.", "flatPath": "v1/projects/{projectId}:runQuery", @@ -626,13 +654,101 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://datastore.googleapis.com/", "schemas": { + "Aggregation": { + "description": "Defines a 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.", + "type": "string" + }, + "count": { + "$ref": "Count", + "description": "Count aggregator." + } + }, + "type": "object" + }, + "AggregationQuery": { + "description": "Datastore query for running an aggregation over a Query.", + "id": "AggregationQuery", + "properties": { + "aggregations": { + "description": "Optional. Series of aggregations to apply over the results of the `nested_query`. Requires: * A minimum of one and maximum of five aggregations per query.", + "items": { + "$ref": "Aggregation" + }, + "type": "array" + }, + "nestedQuery": { + "$ref": "Query", + "description": "Nested query for aggregation" + } + }, + "type": "object" + }, + "AggregationResult": { + "description": "The result of a single bucket from a Datastore aggregation query. The keys of `aggregate_properties` are the same for all results in an aggregation query, unlike entity queries which can have different fields present for each result.", + "id": "AggregationResult", + "properties": { + "aggregateProperties": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The result of the aggregation functions, ex: `COUNT(*) AS total_entities`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", + "type": "object" + } + }, + "type": "object" + }, + "AggregationResultBatch": { + "description": "A batch of aggregation results produced by an aggregation query.", + "id": "AggregationResultBatch", + "properties": { + "aggregationResults": { + "description": "The aggregation results for this batch.", + "items": { + "$ref": "AggregationResult" + }, + "type": "array" + }, + "moreResults": { + "description": "The state of the query after the current batch. Only COUNT(*) aggregations are supported in the initial launch. Therefore, expected result type is limited to `NO_MORE_RESULTS`.", + "enum": [ + "MORE_RESULTS_TYPE_UNSPECIFIED", + "NOT_FINISHED", + "MORE_RESULTS_AFTER_LIMIT", + "MORE_RESULTS_AFTER_CURSOR", + "NO_MORE_RESULTS" + ], + "enumDescriptions": [ + "Unspecified. This value is never used.", + "There may be additional batches to fetch from this query.", + "The query is finished, but there may be more results after the limit.", + "The query is finished, but there may be more results after the end cursor.", + "The query is finished, and there are no more results." + ], + "type": "string" + }, + "readTime": { + "description": "Read timestamp this batch was returned from. In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "AllocateIdsRequest": { "description": "The request for Datastore.AllocateIds.", "id": "AllocateIdsRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "keys": { "description": "Required. A list of keys with incomplete key paths for which to allocate IDs. No key may be reserved/read-only.", "items": { @@ -675,6 +791,10 @@ "description": "The request for Datastore.BeginTransaction.", "id": "BeginTransactionRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "transactionOptions": { "$ref": "TransactionOptions", "description": "Options for a new transaction." @@ -698,6 +818,10 @@ "description": "The request for Datastore.Commit.", "id": "CommitRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "mode": { "description": "The type of commit to perform. Defaults to `TRANSACTIONAL`.", "enum": [ @@ -719,6 +843,10 @@ }, "type": "array" }, + "singleUseTransaction": { + "$ref": "TransactionOptions", + "description": "Options for beginning a new transaction for this request. The transaction is committed when the request completes. If specified, TransactionOptions.mode must be TransactionOptions.ReadWrite." + }, "transaction": { "description": "The identifier of the transaction associated with the commit. A transaction identifier is returned by a call to Datastore.BeginTransaction.", "format": "byte", @@ -731,6 +859,11 @@ "description": "The response for Datastore.Commit.", "id": "CommitResponse", "properties": { + "commitTime": { + "description": "The transaction commit timestamp. Not set for non-transactional commits.", + "format": "google-datetime", + "type": "string" + }, "indexUpdates": { "description": "The number of index entries updated during the commit, or zero if none were updated.", "format": "int32", @@ -751,7 +884,7 @@ "id": "CompositeFilter", "properties": { "filters": { - "description": "The list of filters to combine. Must contain at least one filter.", + "description": "The list of filters to combine. Requires: * At least one filter is present.", "items": { "$ref": "Filter" }, @@ -772,8 +905,20 @@ }, "type": "object" }, + "Count": { + "description": "Count of entities that match the query. The `COUNT(*)` aggregation function operates on the entire entity so it does not require a field reference.", + "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.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" @@ -800,6 +945,11 @@ "description": "The result of fetching an entity from Datastore.", "id": "EntityResult", "properties": { + "createTime": { + "description": "The time at which the entity was created. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", + "format": "google-datetime", + "type": "string" + }, "cursor": { "description": "A cursor that points to the position after the result entity. Set only when the `EntityResult` is part of a `QueryResultBatch` message.", "format": "byte", @@ -809,6 +959,11 @@ "$ref": "Entity", "description": "The resulting entity." }, + "updateTime": { + "description": "The time at which the entity was last changed. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", + "format": "google-datetime", + "type": "string" + }, "version": { "description": "The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.", "format": "int64", @@ -1108,7 +1263,7 @@ "type": "string" }, "properties": { - "description": "Required. An ordered sequence of property names and their index attributes.", + "description": "Required. An ordered sequence of property names and their index attributes. Requires: * A maximum of 100 properties.", "items": { "$ref": "GoogleDatastoreAdminV1IndexedProperty" }, @@ -1636,6 +1791,10 @@ "description": "The request for Datastore.Lookup.", "id": "LookupRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "keys": { "description": "Required. Keys of entities to look up.", "items": { @@ -1674,6 +1833,16 @@ "$ref": "EntityResult" }, "type": "array" + }, + "readTime": { + "description": "The time at which these entities were read or found missing.", + "format": "google-datetime", + "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.", + "format": "byte", + "type": "string" } }, "type": "object" @@ -1699,6 +1868,11 @@ "$ref": "Entity", "description": "The entity to update. The entity must already exist. Must have a complete key path." }, + "updateTime": { + "description": "The update time of the entity that this mutation is being applied to. If this does not match the current update time on the server, the mutation conflicts.", + "format": "google-datetime", + "type": "string" + }, "upsert": { "$ref": "Entity", "description": "The entity to upsert. The entity may or may not already exist. The entity key's final path element may be incomplete." @@ -1714,10 +1888,20 @@ "description": "Whether a conflict was detected for this mutation. Always false when a conflict detection strategy field is not set in the mutation.", "type": "boolean" }, + "createTime": { + "description": "The create time of the entity. This field will not be set after a 'delete'.", + "format": "google-datetime", + "type": "string" + }, "key": { "$ref": "Key", "description": "The automatically allocated key. Set only when the mutation allocated a key." }, + "updateTime": { + "description": "The update time of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the timestamp will be the update timestamp of the current entity. This field will not be set after a 'delete'.", + "format": "google-datetime", + "type": "string" + }, "version": { "description": "The version of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the version will be the version of the current entity or, if no entity is present, a version that is strictly greater than the version of any previous entity and less than the version of any possible future entity.", "format": "int64", @@ -1730,6 +1914,10 @@ "description": "A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `\"\"`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\\d\\.\\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state.", "id": "PartitionId", "properties": { + "databaseId": { + "description": "If not empty, the ID of the database to which the entities belong.", + "type": "string" + }, "namespaceId": { "description": "If not empty, the ID of the namespace to which the entities belong.", "type": "string" @@ -1751,11 +1939,11 @@ "type": "string" }, "kind": { - "description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", + "description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", "type": "string" }, "name": { - "description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", + "description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", "type": "string" } }, @@ -1785,7 +1973,10 @@ "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "EQUAL", - "HAS_ANCESTOR" + "IN", + "NOT_EQUAL", + "HAS_ANCESTOR", + "NOT_IN" ], "enumDescriptions": [ "Unspecified. This value must not be used.", @@ -1794,7 +1985,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`.", - "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key." + "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 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`." ], "type": "string" }, @@ -1954,6 +2148,11 @@ ], "type": "string" }, + "readTime": { + "description": "Read timestamp this batch was returned from. This applies to the range of results from the query's `start_cursor` (or the beginning of the query if no cursor was given) to this batch's `end_cursor` (not the query's `end_cursor`). In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches. This value will not be set for eventually consistent queries in Cloud Datastore.", + "format": "google-datetime", + "type": "string" + }, "skippedCursor": { "description": "A cursor that points to the position after the last skipped result. Will be set when `skipped_results` != 0.", "format": "byte", @@ -1975,15 +2174,25 @@ "ReadOnly": { "description": "Options specific to read-only transactions.", "id": "ReadOnly", - "properties": {}, + "properties": { + "readTime": { + "description": "Reads entities at the given time. This may not be older than 60 seconds.", + "format": "google-datetime", + "type": "string" + } + }, "type": "object" }, "ReadOptions": { "description": "The options shared by read requests.", "id": "ReadOptions", "properties": { + "newTransaction": { + "$ref": "TransactionOptions", + "description": "Options for beginning a new transaction for this request. The new transaction identifier will be returned in the corresponding response as either LookupResponse.transaction or RunQueryResponse.transaction." + }, "readConsistency": { - "description": "The non-transactional read consistency to use. Cannot be set to `STRONG` for global queries.", + "description": "The non-transactional read consistency to use.", "enum": [ "READ_CONSISTENCY_UNSPECIFIED", "STRONG", @@ -1996,6 +2205,11 @@ ], "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.", + "format": "google-datetime", + "type": "string" + }, "transaction": { "description": "The identifier of the transaction in which to read. A transaction identifier is returned by a call to Datastore.BeginTransaction.", "format": "byte", @@ -2021,7 +2235,7 @@ "id": "ReserveIdsRequest", "properties": { "databaseId": { - "description": "If not empty, the ID of the database against which to make the request.", + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", "type": "string" }, "keys": { @@ -2044,6 +2258,10 @@ "description": "The request for Datastore.Rollback.", "id": "RollbackRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "transaction": { "description": "Required. The transaction identifier, returned by a call to Datastore.BeginTransaction.", "format": "byte", @@ -2058,13 +2276,64 @@ "properties": {}, "type": "object" }, + "RunAggregationQueryRequest": { + "description": "The request for Datastore.RunAggregationQuery.", + "id": "RunAggregationQueryRequest", + "properties": { + "aggregationQuery": { + "$ref": "AggregationQuery", + "description": "The query to run." + }, + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, + "gqlQuery": { + "$ref": "GqlQuery", + "description": "The GQL query to run. This query must be an aggregation query." + }, + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "The options for this query." + } + }, + "type": "object" + }, + "RunAggregationQueryResponse": { + "description": "The response for Datastore.RunAggregationQuery.", + "id": "RunAggregationQueryResponse", + "properties": { + "batch": { + "$ref": "AggregationResultBatch", + "description": "A batch of aggregation results. Always present." + }, + "query": { + "$ref": "AggregationQuery", + "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.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "RunQueryRequest": { "description": "The request for Datastore.RunQuery.", "id": "RunQueryRequest", "properties": { + "databaseId": { + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", + "type": "string" + }, "gqlQuery": { "$ref": "GqlQuery", - "description": "The GQL query to run." + "description": "The GQL query to run. This query must be a non-aggregation query." }, "partitionId": { "$ref": "PartitionId", @@ -2092,6 +2361,11 @@ "query": { "$ref": "Query", "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.", + "format": "byte", + "type": "string" } }, "type": "object" diff --git a/etc/api/datastore/v1beta1/datastore-api.json b/etc/api/datastore/v1beta1/datastore-api.json index 6642e12f45..18802ca07c 100644 --- a/etc/api/datastore/v1beta1/datastore-api.json +++ b/etc/api/datastore/v1beta1/datastore-api.json @@ -168,7 +168,7 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "GoogleDatastoreAdminV1CommonMetadata": { diff --git a/etc/api/datastore/v1beta3/datastore-api.json b/etc/api/datastore/v1beta3/datastore-api.json index 3859534569..da1e822151 100644 --- a/etc/api/datastore/v1beta3/datastore-api.json +++ b/etc/api/datastore/v1beta3/datastore-api.json @@ -277,6 +277,34 @@ "https://www.googleapis.com/auth/datastore" ] }, + "runAggregationQuery": { + "description": "Runs an aggregation query.", + "flatPath": "v1beta3/projects/{projectId}:runAggregationQuery", + "httpMethod": "POST", + "id": "datastore.projects.runAggregationQuery", + "parameterOrder": [ + "projectId" + ], + "parameters": { + "projectId": { + "description": "Required. The ID of the project against which to make the request.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/projects/{projectId}:runAggregationQuery", + "request": { + "$ref": "RunAggregationQueryRequest" + }, + "response": { + "$ref": "RunAggregationQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "runQuery": { "description": "Queries for entities.", "flatPath": "v1beta3/projects/{projectId}:runQuery", @@ -308,9 +336,93 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://datastore.googleapis.com/", "schemas": { + "Aggregation": { + "description": "Defines a 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.", + "type": "string" + }, + "count": { + "$ref": "Count", + "description": "Count aggregator." + } + }, + "type": "object" + }, + "AggregationQuery": { + "description": "Datastore query for running an aggregation over a Query.", + "id": "AggregationQuery", + "properties": { + "aggregations": { + "description": "Optional. Series of aggregations to apply over the results of the `nested_query`. Requires: * A minimum of one and maximum of five aggregations per query.", + "items": { + "$ref": "Aggregation" + }, + "type": "array" + }, + "nestedQuery": { + "$ref": "Query", + "description": "Nested query for aggregation" + } + }, + "type": "object" + }, + "AggregationResult": { + "description": "The result of a single bucket from a Datastore aggregation query. The keys of `aggregate_properties` are the same for all results in an aggregation query, unlike entity queries which can have different fields present for each result.", + "id": "AggregationResult", + "properties": { + "aggregateProperties": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The result of the aggregation functions, ex: `COUNT(*) AS total_entities`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", + "type": "object" + } + }, + "type": "object" + }, + "AggregationResultBatch": { + "description": "A batch of aggregation results produced by an aggregation query.", + "id": "AggregationResultBatch", + "properties": { + "aggregationResults": { + "description": "The aggregation results for this batch.", + "items": { + "$ref": "AggregationResult" + }, + "type": "array" + }, + "moreResults": { + "description": "The state of the query after the current batch. Only COUNT(*) aggregations are supported in the initial launch. Therefore, expected result type is limited to `NO_MORE_RESULTS`.", + "enum": [ + "MORE_RESULTS_TYPE_UNSPECIFIED", + "NOT_FINISHED", + "MORE_RESULTS_AFTER_LIMIT", + "MORE_RESULTS_AFTER_CURSOR", + "NO_MORE_RESULTS" + ], + "enumDescriptions": [ + "Unspecified. This value is never used.", + "There may be additional batches to fetch from this query.", + "The query is finished, but there may be more results after the limit.", + "The query is finished, but there may be more results after the end cursor.", + "The query is finished, and there are no more results." + ], + "type": "string" + }, + "readTime": { + "description": "Read timestamp this batch was returned from. In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "AllocateIdsRequest": { "description": "The request for Datastore.AllocateIds.", "id": "AllocateIdsRequest", @@ -413,6 +525,11 @@ "description": "The response for Datastore.Commit.", "id": "CommitResponse", "properties": { + "commitTime": { + "description": "The transaction commit timestamp. Not set for non-transactional commits.", + "format": "google-datetime", + "type": "string" + }, "indexUpdates": { "description": "The number of index entries updated during the commit, or zero if none were updated.", "format": "int32", @@ -433,7 +550,7 @@ "id": "CompositeFilter", "properties": { "filters": { - "description": "The list of filters to combine. Must contain at least one filter.", + "description": "The list of filters to combine. Requires: * At least one filter is present.", "items": { "$ref": "Filter" }, @@ -454,6 +571,18 @@ }, "type": "object" }, + "Count": { + "description": "Count of entities that match the query. The `COUNT(*)` aggregation function operates on the entire entity so it does not require a field reference.", + "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.", + "format": "int64", + "type": "string" + } + }, + "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.", "id": "Entity", @@ -476,6 +605,11 @@ "description": "The result of fetching an entity from Datastore.", "id": "EntityResult", "properties": { + "createTime": { + "description": "The time at which the entity was created. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", + "format": "google-datetime", + "type": "string" + }, "cursor": { "description": "A cursor that points to the position after the result entity. Set only when the `EntityResult` is part of a `QueryResultBatch` message.", "format": "byte", @@ -485,6 +619,11 @@ "$ref": "Entity", "description": "The resulting entity." }, + "updateTime": { + "description": "The time at which the entity was last changed. This field is set for `FULL` entity results. If this entity is missing, this field will not be set.", + "format": "google-datetime", + "type": "string" + }, "version": { "description": "The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.", "format": "int64", @@ -1149,6 +1288,11 @@ "$ref": "EntityResult" }, "type": "array" + }, + "readTime": { + "description": "The time at which these entities were read or found missing.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -1174,6 +1318,11 @@ "$ref": "Entity", "description": "The entity to update. The entity must already exist. Must have a complete key path." }, + "updateTime": { + "description": "The update time of the entity that this mutation is being applied to. If this does not match the current update time on the server, the mutation conflicts.", + "format": "google-datetime", + "type": "string" + }, "upsert": { "$ref": "Entity", "description": "The entity to upsert. The entity may or may not already exist. The entity key's final path element may be incomplete." @@ -1189,10 +1338,20 @@ "description": "Whether a conflict was detected for this mutation. Always false when a conflict detection strategy field is not set in the mutation.", "type": "boolean" }, + "createTime": { + "description": "The create time of the entity. This field will not be set after a 'delete'.", + "format": "google-datetime", + "type": "string" + }, "key": { "$ref": "Key", "description": "The automatically allocated key. Set only when the mutation allocated a key." }, + "updateTime": { + "description": "The update time of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the timestamp will be the update timestamp of the current entity. This field will not be set after a 'delete'.", + "format": "google-datetime", + "type": "string" + }, "version": { "description": "The version of the entity on the server after processing the mutation. If the mutation doesn't change anything on the server, then the version will be the version of the current entity or, if no entity is present, a version that is strictly greater than the version of any previous entity and less than the version of any possible future entity.", "format": "int64", @@ -1226,11 +1385,11 @@ "type": "string" }, "kind": { - "description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", + "description": "The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", "type": "string" }, "name": { - "description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`.", + "description": "The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `\"\"`. Must be valid UTF-8 bytes. Legacy values that are not valid UTF-8 are encoded as `__bytes__` where `` is the base-64 encoding of the bytes.", "type": "string" } }, @@ -1260,7 +1419,10 @@ "GREATER_THAN", "GREATER_THAN_OR_EQUAL", "EQUAL", - "HAS_ANCESTOR" + "IN", + "NOT_EQUAL", + "HAS_ANCESTOR", + "NOT_IN" ], "enumDescriptions": [ "Unspecified. This value must not be used.", @@ -1269,7 +1431,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`.", - "Limit the result set to the given entity and its descendants. Requires: * That `value` is an entity key." + "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 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`." ], "type": "string" }, @@ -1429,6 +1594,11 @@ ], "type": "string" }, + "readTime": { + "description": "Read timestamp this batch was returned from. This applies to the range of results from the query's `start_cursor` (or the beginning of the query if no cursor was given) to this batch's `end_cursor` (not the query's `end_cursor`). In a single transaction, subsequent query result batches for the same query can have a greater timestamp. Each batch's read timestamp is valid for all preceding batches. This value will not be set for eventually consistent queries in Cloud Datastore.", + "format": "google-datetime", + "type": "string" + }, "skippedCursor": { "description": "A cursor that points to the position after the last skipped result. Will be set when `skipped_results` != 0.", "format": "byte", @@ -1450,7 +1620,13 @@ "ReadOnly": { "description": "Options specific to read-only transactions.", "id": "ReadOnly", - "properties": {}, + "properties": { + "readTime": { + "description": "Reads entities at the given time. This may not be older than 60 seconds.", + "format": "google-datetime", + "type": "string" + } + }, "type": "object" }, "ReadOptions": { @@ -1458,7 +1634,7 @@ "id": "ReadOptions", "properties": { "readConsistency": { - "description": "The non-transactional read consistency to use. Cannot be set to `STRONG` for global queries.", + "description": "The non-transactional read consistency to use.", "enum": [ "READ_CONSISTENCY_UNSPECIFIED", "STRONG", @@ -1471,6 +1647,11 @@ ], "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.", + "format": "google-datetime", + "type": "string" + }, "transaction": { "description": "The identifier of the transaction in which to read. A transaction identifier is returned by a call to Datastore.BeginTransaction.", "format": "byte", @@ -1496,7 +1677,7 @@ "id": "ReserveIdsRequest", "properties": { "databaseId": { - "description": "If not empty, the ID of the database against which to make the request.", + "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", "type": "string" }, "keys": { @@ -1533,13 +1714,51 @@ "properties": {}, "type": "object" }, + "RunAggregationQueryRequest": { + "description": "The request for Datastore.RunAggregationQuery.", + "id": "RunAggregationQueryRequest", + "properties": { + "aggregationQuery": { + "$ref": "AggregationQuery", + "description": "The query to run." + }, + "gqlQuery": { + "$ref": "GqlQuery", + "description": "The GQL query to run. This query must be an aggregation query." + }, + "partitionId": { + "$ref": "PartitionId", + "description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." + }, + "readOptions": { + "$ref": "ReadOptions", + "description": "The options for this query." + } + }, + "type": "object" + }, + "RunAggregationQueryResponse": { + "description": "The response for Datastore.RunAggregationQuery.", + "id": "RunAggregationQueryResponse", + "properties": { + "batch": { + "$ref": "AggregationResultBatch", + "description": "A batch of aggregation results. Always present." + }, + "query": { + "$ref": "AggregationQuery", + "description": "The parsed form of the `GqlQuery` from the request, if it was set." + } + }, + "type": "object" + }, "RunQueryRequest": { "description": "The request for Datastore.RunQuery.", "id": "RunQueryRequest", "properties": { "gqlQuery": { "$ref": "GqlQuery", - "description": "The GQL query to run." + "description": "The GQL query to run. This query must be a non-aggregation query." }, "partitionId": { "$ref": "PartitionId", diff --git a/etc/api/datastream/v1/datastream-api.json b/etc/api/datastream/v1/datastream-api.json index dea3c7f7ed..1097acdf0d 100644 --- a/etc/api/datastream/v1/datastream-api.json +++ b/etc/api/datastream/v1/datastream-api.json @@ -180,7 +180,7 @@ ], "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).", + "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" }, @@ -577,6 +577,11 @@ "parent" ], "parameters": { + "force": { + "description": "Optional. If set to true, will skip validations.", + "location": "query", + "type": "boolean" + }, "parent": { "description": "Required. The parent that owns the collection of PrivateConnections.", "location": "path", @@ -1217,7 +1222,7 @@ } } }, - "revision": "20220207", + "revision": "20230111", "rootUrl": "https://datastream.googleapis.com/", "schemas": { "AvroFileFormat": { @@ -1237,6 +1242,10 @@ "oracleExcludedObjects": { "$ref": "OracleRdbms", "description": "Oracle data source objects to avoid backfilling." + }, + "postgresqlExcludedObjects": { + "$ref": "PostgresqlRdbms", + "description": "PostgreSQL data source objects to avoid backfilling." } }, "type": "object" @@ -1312,6 +1321,31 @@ "properties": {}, "type": "object" }, + "BigQueryDestinationConfig": { + "id": "BigQueryDestinationConfig", + "properties": { + "dataFreshness": { + "description": "The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.", + "format": "google-duration", + "type": "string" + }, + "singleTargetDataset": { + "$ref": "SingleTargetDataset", + "description": "Single destination dataset." + }, + "sourceHierarchyDatasets": { + "$ref": "SourceHierarchyDatasets", + "description": "Source hierarchy datasets." + } + }, + "type": "object" + }, + "BigQueryProfile": { + "description": "BigQuery warehouse profile.", + "id": "BigQueryProfile", + "properties": {}, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", @@ -1322,6 +1356,10 @@ "description": "A set of reusable connection configurations to be used as a source or destination for a stream.", "id": "ConnectionProfile", "properties": { + "bigqueryProfile": { + "$ref": "BigQueryProfile", + "description": "BigQuery Connection Profile configuration." + }, "createTime": { "description": "Output only. The create time of the resource.", "format": "google-datetime", @@ -1360,6 +1398,10 @@ "$ref": "OracleProfile", "description": "Oracle ConnectionProfile configuration." }, + "postgresqlProfile": { + "$ref": "PostgresqlProfile", + "description": "PostgreSQL Connection Profile configuration." + }, "privateConnectivity": { "$ref": "PrivateConnectivity", "description": "Private connectivity." @@ -1377,10 +1419,33 @@ }, "type": "object" }, + "DatasetTemplate": { + "description": "Dataset template used for dynamic dataset creation.", + "id": "DatasetTemplate", + "properties": { + "datasetIdPrefix": { + "description": "If supplied, every created dataset will have its name prefixed by the provided value. The prefix and name will be separated by an underscore. i.e. _.", + "type": "string" + }, + "kmsKeyName": { + "description": "Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table. The BigQuery Service Account associated with your project requires access to this encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}. See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.", + "type": "string" + }, + "location": { + "description": "Required. The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.", + "type": "string" + } + }, + "type": "object" + }, "DestinationConfig": { "description": "The configuration of the stream destination.", "id": "DestinationConfig", "properties": { + "bigqueryDestinationConfig": { + "$ref": "BigQueryDestinationConfig", + "description": "BigQuery destination configuration." + }, "destinationConnectionProfile": { "description": "Required. Destination connection profile resource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`", "type": "string" @@ -1420,6 +1485,10 @@ "oracleRdbms": { "$ref": "OracleRdbms", "description": "Oracle RDBMS to enrich with child data objects and metadata." + }, + "postgresqlRdbms": { + "$ref": "PostgresqlRdbms", + "description": "PostgreSQL RDBMS to enrich with child data objects and metadata." } }, "type": "object" @@ -1435,12 +1504,22 @@ "oracleRdbms": { "$ref": "OracleRdbms", "description": "Enriched Oracle RDBMS object." + }, + "postgresqlRdbms": { + "$ref": "PostgresqlRdbms", + "description": "Enriched PostgreSQL RDBMS object." } }, "type": "object" }, + "DropLargeObjects": { + "description": "Configuration to drop large object values.", + "id": "DropLargeObjects", + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1923,6 +2002,11 @@ "includeObjects": { "$ref": "MysqlRdbms", "description": "MySQL objects to retrieve from the source." + }, + "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", + "type": "integer" } }, "type": "object" @@ -1966,7 +2050,7 @@ "id": "MysqlTable", "properties": { "mysqlColumns": { - "description": "MySQL columns in the database. When unspecified as part of include/exclude lists, includes/excludes everything.", + "description": "MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.", "items": { "$ref": "MysqlColumn" }, @@ -2196,6 +2280,10 @@ "description": "Oracle data source configuration", "id": "OracleSourceConfig", "properties": { + "dropLargeObjects": { + "$ref": "DropLargeObjects", + "description": "Drop large object values." + }, "excludeObjects": { "$ref": "OracleRdbms", "description": "Oracle objects to exclude from the stream." @@ -2203,6 +2291,15 @@ "includeObjects": { "$ref": "OracleRdbms", "description": "Oracle objects to include in the stream." + }, + "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", + "type": "integer" + }, + "streamLargeObjects": { + "$ref": "StreamLargeObjects", + "description": "Stream large object values. NOTE: This feature is currently experimental." } }, "type": "object" @@ -2212,7 +2309,7 @@ "id": "OracleTable", "properties": { "oracleColumns": { - "description": "Oracle columns in the schema. When unspecified as part of inclue/exclude lists, includes/excludes everything.", + "description": "Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.", "items": { "$ref": "OracleColumn" }, @@ -2225,6 +2322,165 @@ }, "type": "object" }, + "PostgresqlColumn": { + "description": "PostgreSQL Column.", + "id": "PostgresqlColumn", + "properties": { + "column": { + "description": "Column name.", + "type": "string" + }, + "dataType": { + "description": "The PostgreSQL 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" + }, + "PostgresqlObjectIdentifier": { + "description": "PostgreSQL data source object identifier.", + "id": "PostgresqlObjectIdentifier", + "properties": { + "schema": { + "description": "Required. The schema name.", + "type": "string" + }, + "table": { + "description": "Required. The table name.", + "type": "string" + } + }, + "type": "object" + }, + "PostgresqlProfile": { + "description": "PostgreSQL database profile.", + "id": "PostgresqlProfile", + "properties": { + "database": { + "description": "Required. Database for the PostgreSQL connection.", + "type": "string" + }, + "hostname": { + "description": "Required. Hostname for the PostgreSQL connection.", + "type": "string" + }, + "password": { + "description": "Required. Password for the PostgreSQL connection.", + "type": "string" + }, + "port": { + "description": "Port for the PostgreSQL connection, default value is 5432.", + "format": "int32", + "type": "integer" + }, + "username": { + "description": "Required. Username for the PostgreSQL connection.", + "type": "string" + } + }, + "type": "object" + }, + "PostgresqlRdbms": { + "description": "PostgreSQL database structure.", + "id": "PostgresqlRdbms", + "properties": { + "postgresqlSchemas": { + "description": "PostgreSQL schemas in the database server.", + "items": { + "$ref": "PostgresqlSchema" + }, + "type": "array" + } + }, + "type": "object" + }, + "PostgresqlSchema": { + "description": "PostgreSQL schema.", + "id": "PostgresqlSchema", + "properties": { + "postgresqlTables": { + "description": "Tables in the schema.", + "items": { + "$ref": "PostgresqlTable" + }, + "type": "array" + }, + "schema": { + "description": "Schema name.", + "type": "string" + } + }, + "type": "object" + }, + "PostgresqlSourceConfig": { + "description": "PostgreSQL data source configuration", + "id": "PostgresqlSourceConfig", + "properties": { + "excludeObjects": { + "$ref": "PostgresqlRdbms", + "description": "PostgreSQL objects to exclude from the stream." + }, + "includeObjects": { + "$ref": "PostgresqlRdbms", + "description": "PostgreSQL objects to include in the stream." + }, + "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" + }, + "replicationSlot": { + "description": "Required. Immutable. The name of the logical replication slot that's configured with the pgoutput plugin.", + "type": "string" + } + }, + "type": "object" + }, + "PostgresqlTable": { + "description": "PostgreSQL table.", + "id": "PostgresqlTable", + "properties": { + "postgresqlColumns": { + "description": "PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.", + "items": { + "$ref": "PostgresqlColumn" + }, + "type": "array" + }, + "table": { + "description": "Table name.", + "type": "string" + } + }, + "type": "object" + }, "PrivateConnection": { "description": "The PrivateConnection resource is used to establish private connectivity between Datastream and a customer's network.", "id": "PrivateConnection", @@ -2345,17 +2601,32 @@ }, "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.", + "type": "string" + } + }, + "type": "object" + }, "SourceConfig": { "description": "The configuration of the stream source.", "id": "SourceConfig", "properties": { "mysqlSourceConfig": { "$ref": "MysqlSourceConfig", - "description": "MySQL data source configuration" + "description": "MySQL data source configuration." }, "oracleSourceConfig": { "$ref": "OracleSourceConfig", - "description": "Oracle data source configuration" + "description": "Oracle data source configuration." + }, + "postgresqlSourceConfig": { + "$ref": "PostgresqlSourceConfig", + "description": "PostgreSQL data source configuration." }, "sourceConnectionProfile": { "description": "Required. Source connection profile resoource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`", @@ -2364,6 +2635,16 @@ }, "type": "object" }, + "SourceHierarchyDatasets": { + "description": "Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.", + "id": "SourceHierarchyDatasets", + "properties": { + "datasetTemplate": { + "$ref": "DatasetTemplate" + } + }, + "type": "object" + }, "SourceObjectIdentifier": { "description": "Represents an identifier of an object in the data source.", "id": "SourceObjectIdentifier", @@ -2375,6 +2656,10 @@ "oracleIdentifier": { "$ref": "OracleObjectIdentifier", "description": "Oracle data source object identifier." + }, + "postgresqlIdentifier": { + "$ref": "PostgresqlObjectIdentifier", + "description": "PostgreSQL data source object identifier." } }, "type": "object" @@ -2535,6 +2820,12 @@ }, "type": "object" }, + "StreamLargeObjects": { + "description": "Configuration to stream large object values.", + "id": "StreamLargeObjects", + "properties": {}, + "type": "object" + }, "StreamObject": { "description": "A specific stream object (e.g a specific DB table).", "id": "StreamObject", @@ -2672,7 +2963,7 @@ "id": "VpcPeeringConfig", "properties": { "subnet": { - "description": "Required. A free subnet for peering. (CIDR of /29) TODO(b/172995841) add validators.", + "description": "Required. A free subnet for peering. (CIDR of /29)", "type": "string" }, "vpc": { diff --git a/etc/api/datastream/v1alpha1/datastream-api.json b/etc/api/datastream/v1alpha1/datastream-api.json index 28a1add4f3..be3bf69349 100644 --- a/etc/api/datastream/v1alpha1/datastream-api.json +++ b/etc/api/datastream/v1alpha1/datastream-api.json @@ -180,7 +180,7 @@ ], "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).", + "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" }, @@ -1196,7 +1196,7 @@ } } }, - "revision": "20220207", + "revision": "20230111", "rootUrl": "https://datastream.googleapis.com/", "schemas": { "AvroFileFormat": { @@ -1420,8 +1420,14 @@ }, "type": "object" }, + "DropLargeObjects": { + "description": "Configuration to drop large object values.", + "id": "DropLargeObjects", + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2205,6 +2211,10 @@ "$ref": "OracleRdbms", "description": "Oracle objects to include in the stream." }, + "dropLargeObjects": { + "$ref": "DropLargeObjects", + "description": "Drop large object values." + }, "rejectlist": { "$ref": "OracleRdbms", "description": "Oracle objects to exclude from the stream." @@ -2662,7 +2672,7 @@ "id": "VpcPeeringConfig", "properties": { "subnet": { - "description": "Required. A free subnet for peering. (CIDR of /29) TODO(b/172995841) add validators.", + "description": "Required. A free subnet for peering. (CIDR of /29)", "type": "string" }, "vpcName": { diff --git a/etc/api/deploymentmanager/alpha/deploymentmanager-api.json b/etc/api/deploymentmanager/alpha/deploymentmanager-api.json index 95a66eaa84..2226a1eebd 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. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -563,7 +563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -927,7 +927,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1017,7 +1017,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1123,7 +1123,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1320,7 +1320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1372,7 +1372,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1544,7 +1544,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1588,7 +1588,7 @@ } } }, - "revision": "20220225", + "revision": "20230105", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { @@ -1607,7 +1607,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1702,7 +1702,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2316,7 +2316,7 @@ "type": "string" }, "kind": { - "default": "deploymentmanager#operation", + "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", "type": "string" }, @@ -2411,7 +2411,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2438,7 +2440,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -2683,7 +2687,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2710,7 +2716,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -2892,7 +2900,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2919,7 +2929,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, diff --git a/etc/api/deploymentmanager/v2/deploymentmanager-api.json b/etc/api/deploymentmanager/v2/deploymentmanager-api.json index 41d6f94933..f28f39fe12 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. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -693,7 +693,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -783,7 +783,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -889,7 +889,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -944,7 +944,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -988,11 +988,11 @@ } } }, - "revision": "20220225", + "revision": "20221208", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1048,7 +1048,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1414,7 +1414,7 @@ "type": "string" }, "kind": { - "default": "deploymentmanager#operation", + "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", "type": "string" }, @@ -1509,7 +1509,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1536,7 +1538,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -1700,7 +1704,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1727,7 +1733,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -1886,7 +1894,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -1913,7 +1923,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, diff --git a/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json b/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json index ef164086b7..43f69fe189 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. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -563,7 +563,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -927,7 +927,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1017,7 +1017,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1123,7 +1123,7 @@ "type": "string" }, "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1320,7 +1320,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1372,7 +1372,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1508,7 +1508,7 @@ ], "parameters": { "filter": { - "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```", + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`.", "location": "query", "type": "string" }, @@ -1552,7 +1552,7 @@ } } }, - "revision": "20220225", + "revision": "20221208", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { @@ -1571,7 +1571,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1666,7 +1666,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2219,7 +2219,7 @@ "type": "string" }, "kind": { - "default": "deploymentmanager#operation", + "default": "compute#operation", "description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", "type": "string" }, @@ -2314,7 +2314,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2341,7 +2343,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -2563,7 +2567,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2590,7 +2596,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, @@ -2749,7 +2757,9 @@ "EXPERIMENTAL_TYPE_USED", "DEPRECATED_TYPE_USED", "PARTIAL_SUCCESS", - "LARGE_DEPLOYMENT_WARNING" + "LARGE_DEPLOYMENT_WARNING", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" ], "enumDescriptions": [ "A link to a deprecated resource was created.", @@ -2776,7 +2786,9 @@ "When deploying and at least one of the resources has a type marked as experimental", "When deploying and at least one of the resources has a type marked as deprecated", "Success is reported, but some results may be missing due to errors", - "When deploying a deployment with a exceedingly large number of resources" + "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." ], "type": "string" }, diff --git a/etc/api/dfareporting/v3.4/dfareporting-api.json b/etc/api/dfareporting/v3.4/dfareporting-api.json index 6436437d52..635cc95e73 100644 --- a/etc/api/dfareporting/v3.4/dfareporting-api.json +++ b/etc/api/dfareporting/v3.4/dfareporting-api.json @@ -2289,7 +2289,8 @@ "OBJECT_PLAYSTORE_LINK", "OBJECT_TARGETING_TEMPLATE", "OBJECT_SEARCH_LIFT_STUDY", - "OBJECT_FLOODLIGHT_DV360_LINK" + "OBJECT_FLOODLIGHT_DV360_LINK", + "OBJECT_ADVERTISER_CUSTOMER_LINK" ], "enumDescriptions": [ "", @@ -2331,6 +2332,7 @@ "", "", "", + "", "" ], "location": "query", @@ -5710,9 +5712,25 @@ "enum": [ "UNKNOWN", "APPLE_APP_STORE", - "GOOGLE_PLAY_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": [ + "", + "", + "", + "", + "", + "", + "", + "", "", "", "" @@ -9673,7 +9691,7 @@ } } }, - "revision": "20220104", + "revision": "20230118", "rootUrl": "https://dfareporting.googleapis.com/", "schemas": { "Account": { @@ -10829,7 +10847,7 @@ "description": "Information about the most recent modification of this campaign. This is a read-only field." }, "name": { - "description": "Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.", + "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": { @@ -11722,12 +11740,14 @@ "CREATIVE_AUTHORING_SOURCE_DCM", "CREATIVE_AUTHORING_SOURCE_DBM", "CREATIVE_AUTHORING_SOURCE_STUDIO", - "CREATIVE_AUTHORING_SOURCE_GWD" + "CREATIVE_AUTHORING_SOURCE_GWD", + "CREATIVE_AUTHORING_SOURCE_ACS" ], "enumDescriptions": [ "", "", "", + "", "" ], "type": "string" @@ -12976,7 +12996,8 @@ "CLICK_TAG_IN_GWD", "CLICK_TAG_HARD_CODED", "SVG_INVALID", - "CLICK_TAG_IN_RICH_MEDIA" + "CLICK_TAG_IN_RICH_MEDIA", + "MISSING_ENABLER_REFERENCE" ], "enumDescriptions": [ "", @@ -13003,6 +13024,7 @@ "", "", "", + "", "" ], "type": "string" @@ -16358,9 +16380,25 @@ "enum": [ "UNKNOWN", "APPLE_APP_STORE", - "GOOGLE_PLAY_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": [ + "", + "", + "", + "", + "", + "", + "", + "", "", "", "" @@ -17233,7 +17271,7 @@ "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 256 characters long.", + "description": "Name of this placement.This is a required field and must be less than or equal to 512 characters long.", "type": "string" }, "paymentApproved": { diff --git a/etc/api/dfareporting/v3.5/dfareporting-api.json b/etc/api/dfareporting/v3.5/dfareporting-api.json index ecb822d8b8..242f073fa0 100644 --- a/etc/api/dfareporting/v3.5/dfareporting-api.json +++ b/etc/api/dfareporting/v3.5/dfareporting-api.json @@ -14,8 +14,8 @@ } } }, - "basePath": "", - "baseUrl": "https://dfareporting.googleapis.com/", + "basePath": "/dfareporting/v3.5/", + "baseUrl": "https://dfareporting.googleapis.com/dfareporting/v3.5/", "batchPath": "batch", "canonicalName": "Dfareporting", "description": "Build applications to efficiently manage large or complex trafficking, reporting, and attribution workflows for Campaign Manager 360.", @@ -115,7 +115,7 @@ "methods": { "get": { "description": "Gets the account's active ad summary by account ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", + "flatPath": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", "httpMethod": "GET", "id": "dfareporting.accountActiveAdSummaries.get", "parameterOrder": [ @@ -138,7 +138,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", + "path": "userprofiles/{profileId}/accountActiveAdSummaries/{summaryAccountId}", "response": { "$ref": "AccountActiveAdSummary" }, @@ -152,7 +152,7 @@ "methods": { "get": { "description": "Gets one account permission group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissionGroups/{id}", + "flatPath": "userprofiles/{profileId}/accountPermissionGroups/{id}", "httpMethod": "GET", "id": "dfareporting.accountPermissionGroups.get", "parameterOrder": [ @@ -175,7 +175,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissionGroups/{id}", + "path": "userprofiles/{profileId}/accountPermissionGroups/{id}", "response": { "$ref": "AccountPermissionGroup" }, @@ -185,7 +185,7 @@ }, "list": { "description": "Retrieves the list of account permission groups.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissionGroups", + "flatPath": "userprofiles/{profileId}/accountPermissionGroups", "httpMethod": "GET", "id": "dfareporting.accountPermissionGroups.list", "parameterOrder": [ @@ -200,7 +200,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissionGroups", + "path": "userprofiles/{profileId}/accountPermissionGroups", "response": { "$ref": "AccountPermissionGroupsListResponse" }, @@ -214,7 +214,7 @@ "methods": { "get": { "description": "Gets one account permission by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissions/{id}", + "flatPath": "userprofiles/{profileId}/accountPermissions/{id}", "httpMethod": "GET", "id": "dfareporting.accountPermissions.get", "parameterOrder": [ @@ -237,7 +237,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissions/{id}", + "path": "userprofiles/{profileId}/accountPermissions/{id}", "response": { "$ref": "AccountPermission" }, @@ -247,7 +247,7 @@ }, "list": { "description": "Retrieves the list of account permissions.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissions", + "flatPath": "userprofiles/{profileId}/accountPermissions", "httpMethod": "GET", "id": "dfareporting.accountPermissions.list", "parameterOrder": [ @@ -262,7 +262,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountPermissions", + "path": "userprofiles/{profileId}/accountPermissions", "response": { "$ref": "AccountPermissionsListResponse" }, @@ -276,7 +276,7 @@ "methods": { "get": { "description": "Gets one account user profile by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles/{id}", + "flatPath": "userprofiles/{profileId}/accountUserProfiles/{id}", "httpMethod": "GET", "id": "dfareporting.accountUserProfiles.get", "parameterOrder": [ @@ -299,7 +299,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles/{id}", + "path": "userprofiles/{profileId}/accountUserProfiles/{id}", "response": { "$ref": "AccountUserProfile" }, @@ -309,7 +309,7 @@ }, "insert": { "description": "Inserts a new account user profile.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", "httpMethod": "POST", "id": "dfareporting.accountUserProfiles.insert", "parameterOrder": [ @@ -324,7 +324,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "path": "userprofiles/{profileId}/accountUserProfiles", "request": { "$ref": "AccountUserProfile" }, @@ -337,7 +337,7 @@ }, "list": { "description": "Retrieves a list of account user profiles, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", "httpMethod": "GET", "id": "dfareporting.accountUserProfiles.list", "parameterOrder": [ @@ -423,7 +423,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "path": "userprofiles/{profileId}/accountUserProfiles", "response": { "$ref": "AccountUserProfilesListResponse" }, @@ -433,7 +433,7 @@ }, "patch": { "description": "Updates an existing account user profile. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", "httpMethod": "PATCH", "id": "dfareporting.accountUserProfiles.patch", "parameterOrder": [ @@ -456,7 +456,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "path": "userprofiles/{profileId}/accountUserProfiles", "request": { "$ref": "AccountUserProfile" }, @@ -469,7 +469,7 @@ }, "update": { "description": "Updates an existing account user profile.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "flatPath": "userprofiles/{profileId}/accountUserProfiles", "httpMethod": "PUT", "id": "dfareporting.accountUserProfiles.update", "parameterOrder": [ @@ -484,7 +484,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accountUserProfiles", + "path": "userprofiles/{profileId}/accountUserProfiles", "request": { "$ref": "AccountUserProfile" }, @@ -501,7 +501,7 @@ "methods": { "get": { "description": "Gets one account by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accounts/{id}", + "flatPath": "userprofiles/{profileId}/accounts/{id}", "httpMethod": "GET", "id": "dfareporting.accounts.get", "parameterOrder": [ @@ -524,7 +524,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accounts/{id}", + "path": "userprofiles/{profileId}/accounts/{id}", "response": { "$ref": "Account" }, @@ -534,7 +534,7 @@ }, "list": { "description": "Retrieves the list of accounts, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "flatPath": "userprofiles/{profileId}/accounts", "httpMethod": "GET", "id": "dfareporting.accounts.list", "parameterOrder": [ @@ -608,7 +608,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "path": "userprofiles/{profileId}/accounts", "response": { "$ref": "AccountsListResponse" }, @@ -618,7 +618,7 @@ }, "patch": { "description": "Updates an existing account. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "flatPath": "userprofiles/{profileId}/accounts", "httpMethod": "PATCH", "id": "dfareporting.accounts.patch", "parameterOrder": [ @@ -641,7 +641,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "path": "userprofiles/{profileId}/accounts", "request": { "$ref": "Account" }, @@ -654,7 +654,7 @@ }, "update": { "description": "Updates an existing account.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "flatPath": "userprofiles/{profileId}/accounts", "httpMethod": "PUT", "id": "dfareporting.accounts.update", "parameterOrder": [ @@ -669,7 +669,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/accounts", + "path": "userprofiles/{profileId}/accounts", "request": { "$ref": "Account" }, @@ -686,7 +686,7 @@ "methods": { "get": { "description": "Gets one ad by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/ads/{id}", + "flatPath": "userprofiles/{profileId}/ads/{id}", "httpMethod": "GET", "id": "dfareporting.ads.get", "parameterOrder": [ @@ -709,7 +709,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/ads/{id}", + "path": "userprofiles/{profileId}/ads/{id}", "response": { "$ref": "Ad" }, @@ -719,7 +719,7 @@ }, "insert": { "description": "Inserts a new ad.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "flatPath": "userprofiles/{profileId}/ads", "httpMethod": "POST", "id": "dfareporting.ads.insert", "parameterOrder": [ @@ -734,7 +734,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "path": "userprofiles/{profileId}/ads", "request": { "$ref": "Ad" }, @@ -747,7 +747,7 @@ }, "list": { "description": "Retrieves a list of ads, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "flatPath": "userprofiles/{profileId}/ads", "httpMethod": "GET", "id": "dfareporting.ads.list", "parameterOrder": [ @@ -950,7 +950,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "path": "userprofiles/{profileId}/ads", "response": { "$ref": "AdsListResponse" }, @@ -960,7 +960,7 @@ }, "patch": { "description": "Updates an existing ad. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "flatPath": "userprofiles/{profileId}/ads", "httpMethod": "PATCH", "id": "dfareporting.ads.patch", "parameterOrder": [ @@ -983,7 +983,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "path": "userprofiles/{profileId}/ads", "request": { "$ref": "Ad" }, @@ -996,7 +996,7 @@ }, "update": { "description": "Updates an existing ad.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "flatPath": "userprofiles/{profileId}/ads", "httpMethod": "PUT", "id": "dfareporting.ads.update", "parameterOrder": [ @@ -1011,7 +1011,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/ads", + "path": "userprofiles/{profileId}/ads", "request": { "$ref": "Ad" }, @@ -1028,7 +1028,7 @@ "methods": { "delete": { "description": "Deletes an existing advertiser group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups/{id}", + "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", "httpMethod": "DELETE", "id": "dfareporting.advertiserGroups.delete", "parameterOrder": [ @@ -1051,14 +1051,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups/{id}", + "path": "userprofiles/{profileId}/advertiserGroups/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one advertiser group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups/{id}", + "flatPath": "userprofiles/{profileId}/advertiserGroups/{id}", "httpMethod": "GET", "id": "dfareporting.advertiserGroups.get", "parameterOrder": [ @@ -1081,7 +1081,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups/{id}", + "path": "userprofiles/{profileId}/advertiserGroups/{id}", "response": { "$ref": "AdvertiserGroup" }, @@ -1091,7 +1091,7 @@ }, "insert": { "description": "Inserts a new advertiser group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "flatPath": "userprofiles/{profileId}/advertiserGroups", "httpMethod": "POST", "id": "dfareporting.advertiserGroups.insert", "parameterOrder": [ @@ -1106,7 +1106,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "path": "userprofiles/{profileId}/advertiserGroups", "request": { "$ref": "AdvertiserGroup" }, @@ -1119,7 +1119,7 @@ }, "list": { "description": "Retrieves a list of advertiser groups, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "flatPath": "userprofiles/{profileId}/advertiserGroups", "httpMethod": "GET", "id": "dfareporting.advertiserGroups.list", "parameterOrder": [ @@ -1188,7 +1188,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "path": "userprofiles/{profileId}/advertiserGroups", "response": { "$ref": "AdvertiserGroupsListResponse" }, @@ -1198,7 +1198,7 @@ }, "patch": { "description": "Updates an existing advertiser group. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "flatPath": "userprofiles/{profileId}/advertiserGroups", "httpMethod": "PATCH", "id": "dfareporting.advertiserGroups.patch", "parameterOrder": [ @@ -1221,7 +1221,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "path": "userprofiles/{profileId}/advertiserGroups", "request": { "$ref": "AdvertiserGroup" }, @@ -1234,7 +1234,7 @@ }, "update": { "description": "Updates an existing advertiser group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "flatPath": "userprofiles/{profileId}/advertiserGroups", "httpMethod": "PUT", "id": "dfareporting.advertiserGroups.update", "parameterOrder": [ @@ -1249,7 +1249,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserGroups", + "path": "userprofiles/{profileId}/advertiserGroups", "request": { "$ref": "AdvertiserGroup" }, @@ -1266,7 +1266,7 @@ "methods": { "get": { "description": "Gets one landing page by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages/{id}", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages/{id}", "httpMethod": "GET", "id": "dfareporting.advertiserLandingPages.get", "parameterOrder": [ @@ -1289,7 +1289,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages/{id}", + "path": "userprofiles/{profileId}/advertiserLandingPages/{id}", "response": { "$ref": "LandingPage" }, @@ -1299,7 +1299,7 @@ }, "insert": { "description": "Inserts a new landing page.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", "httpMethod": "POST", "id": "dfareporting.advertiserLandingPages.insert", "parameterOrder": [ @@ -1314,7 +1314,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "path": "userprofiles/{profileId}/advertiserLandingPages", "request": { "$ref": "LandingPage" }, @@ -1327,7 +1327,7 @@ }, "list": { "description": "Retrieves a list of landing pages.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", "httpMethod": "GET", "id": "dfareporting.advertiserLandingPages.list", "parameterOrder": [ @@ -1421,7 +1421,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "path": "userprofiles/{profileId}/advertiserLandingPages", "response": { "$ref": "AdvertiserLandingPagesListResponse" }, @@ -1431,7 +1431,7 @@ }, "patch": { "description": "Updates an existing advertiser landing page. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", "httpMethod": "PATCH", "id": "dfareporting.advertiserLandingPages.patch", "parameterOrder": [ @@ -1454,7 +1454,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "path": "userprofiles/{profileId}/advertiserLandingPages", "request": { "$ref": "LandingPage" }, @@ -1467,7 +1467,7 @@ }, "update": { "description": "Updates an existing landing page.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "flatPath": "userprofiles/{profileId}/advertiserLandingPages", "httpMethod": "PUT", "id": "dfareporting.advertiserLandingPages.update", "parameterOrder": [ @@ -1482,7 +1482,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertiserLandingPages", + "path": "userprofiles/{profileId}/advertiserLandingPages", "request": { "$ref": "LandingPage" }, @@ -1499,7 +1499,7 @@ "methods": { "get": { "description": "Gets one advertiser by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertisers/{id}", + "flatPath": "userprofiles/{profileId}/advertisers/{id}", "httpMethod": "GET", "id": "dfareporting.advertisers.get", "parameterOrder": [ @@ -1522,7 +1522,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertisers/{id}", + "path": "userprofiles/{profileId}/advertisers/{id}", "response": { "$ref": "Advertiser" }, @@ -1532,7 +1532,7 @@ }, "insert": { "description": "Inserts a new advertiser.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "flatPath": "userprofiles/{profileId}/advertisers", "httpMethod": "POST", "id": "dfareporting.advertisers.insert", "parameterOrder": [ @@ -1547,7 +1547,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "path": "userprofiles/{profileId}/advertisers", "request": { "$ref": "Advertiser" }, @@ -1560,7 +1560,7 @@ }, "list": { "description": "Retrieves a list of advertisers, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "flatPath": "userprofiles/{profileId}/advertisers", "httpMethod": "GET", "id": "dfareporting.advertisers.list", "parameterOrder": [ @@ -1672,7 +1672,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "path": "userprofiles/{profileId}/advertisers", "response": { "$ref": "AdvertisersListResponse" }, @@ -1682,7 +1682,7 @@ }, "patch": { "description": "Updates an existing advertiser. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "flatPath": "userprofiles/{profileId}/advertisers", "httpMethod": "PATCH", "id": "dfareporting.advertisers.patch", "parameterOrder": [ @@ -1705,7 +1705,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "path": "userprofiles/{profileId}/advertisers", "request": { "$ref": "Advertiser" }, @@ -1718,7 +1718,7 @@ }, "update": { "description": "Updates an existing advertiser.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "flatPath": "userprofiles/{profileId}/advertisers", "httpMethod": "PUT", "id": "dfareporting.advertisers.update", "parameterOrder": [ @@ -1733,7 +1733,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/advertisers", + "path": "userprofiles/{profileId}/advertisers", "request": { "$ref": "Advertiser" }, @@ -1750,7 +1750,7 @@ "methods": { "list": { "description": "Retrieves a list of browsers.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/browsers", + "flatPath": "userprofiles/{profileId}/browsers", "httpMethod": "GET", "id": "dfareporting.browsers.list", "parameterOrder": [ @@ -1765,7 +1765,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/browsers", + "path": "userprofiles/{profileId}/browsers", "response": { "$ref": "BrowsersListResponse" }, @@ -1779,7 +1779,7 @@ "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": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", "httpMethod": "POST", "id": "dfareporting.campaignCreativeAssociations.insert", "parameterOrder": [ @@ -1802,7 +1802,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", "request": { "$ref": "CampaignCreativeAssociation" }, @@ -1815,7 +1815,7 @@ }, "list": { "description": "Retrieves the list of creative IDs associated with the specified campaign. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "flatPath": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", "httpMethod": "GET", "id": "dfareporting.campaignCreativeAssociations.list", "parameterOrder": [ @@ -1866,7 +1866,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", + "path": "userprofiles/{profileId}/campaigns/{campaignId}/campaignCreativeAssociations", "response": { "$ref": "CampaignCreativeAssociationsListResponse" }, @@ -1880,7 +1880,7 @@ "methods": { "get": { "description": "Gets one campaign by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{id}", + "flatPath": "userprofiles/{profileId}/campaigns/{id}", "httpMethod": "GET", "id": "dfareporting.campaigns.get", "parameterOrder": [ @@ -1903,7 +1903,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns/{id}", + "path": "userprofiles/{profileId}/campaigns/{id}", "response": { "$ref": "Campaign" }, @@ -1913,7 +1913,7 @@ }, "insert": { "description": "Inserts a new campaign.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "flatPath": "userprofiles/{profileId}/campaigns", "httpMethod": "POST", "id": "dfareporting.campaigns.insert", "parameterOrder": [ @@ -1928,7 +1928,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "path": "userprofiles/{profileId}/campaigns", "request": { "$ref": "Campaign" }, @@ -1941,7 +1941,7 @@ }, "list": { "description": "Retrieves a list of campaigns, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "flatPath": "userprofiles/{profileId}/campaigns", "httpMethod": "GET", "id": "dfareporting.campaigns.list", "parameterOrder": [ @@ -2053,7 +2053,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "path": "userprofiles/{profileId}/campaigns", "response": { "$ref": "CampaignsListResponse" }, @@ -2063,7 +2063,7 @@ }, "patch": { "description": "Updates an existing campaign. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "flatPath": "userprofiles/{profileId}/campaigns", "httpMethod": "PATCH", "id": "dfareporting.campaigns.patch", "parameterOrder": [ @@ -2086,7 +2086,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "path": "userprofiles/{profileId}/campaigns", "request": { "$ref": "Campaign" }, @@ -2099,7 +2099,7 @@ }, "update": { "description": "Updates an existing campaign.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "flatPath": "userprofiles/{profileId}/campaigns", "httpMethod": "PUT", "id": "dfareporting.campaigns.update", "parameterOrder": [ @@ -2114,7 +2114,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/campaigns", + "path": "userprofiles/{profileId}/campaigns", "request": { "$ref": "Campaign" }, @@ -2131,7 +2131,7 @@ "methods": { "get": { "description": "Gets one change log by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/changeLogs/{id}", + "flatPath": "userprofiles/{profileId}/changeLogs/{id}", "httpMethod": "GET", "id": "dfareporting.changeLogs.get", "parameterOrder": [ @@ -2154,7 +2154,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/changeLogs/{id}", + "path": "userprofiles/{profileId}/changeLogs/{id}", "response": { "$ref": "ChangeLog" }, @@ -2164,7 +2164,7 @@ }, "list": { "description": "Retrieves a list of change logs. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/changeLogs", + "flatPath": "userprofiles/{profileId}/changeLogs", "httpMethod": "GET", "id": "dfareporting.changeLogs.list", "parameterOrder": [ @@ -2289,7 +2289,8 @@ "OBJECT_PLAYSTORE_LINK", "OBJECT_TARGETING_TEMPLATE", "OBJECT_SEARCH_LIFT_STUDY", - "OBJECT_FLOODLIGHT_DV360_LINK" + "OBJECT_FLOODLIGHT_DV360_LINK", + "OBJECT_ADVERTISER_CUSTOMER_LINK" ], "enumDescriptions": [ "", @@ -2331,6 +2332,7 @@ "", "", "", + "", "" ], "location": "query", @@ -2361,7 +2363,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/changeLogs", + "path": "userprofiles/{profileId}/changeLogs", "response": { "$ref": "ChangeLogsListResponse" }, @@ -2375,7 +2377,7 @@ "methods": { "list": { "description": "Retrieves a list of cities, possibly filtered.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/cities", + "flatPath": "userprofiles/{profileId}/cities", "httpMethod": "GET", "id": "dfareporting.cities.list", "parameterOrder": [ @@ -2416,7 +2418,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/cities", + "path": "userprofiles/{profileId}/cities", "response": { "$ref": "CitiesListResponse" }, @@ -2430,7 +2432,7 @@ "methods": { "get": { "description": "Gets one connection type by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/connectionTypes/{id}", + "flatPath": "userprofiles/{profileId}/connectionTypes/{id}", "httpMethod": "GET", "id": "dfareporting.connectionTypes.get", "parameterOrder": [ @@ -2453,7 +2455,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/connectionTypes/{id}", + "path": "userprofiles/{profileId}/connectionTypes/{id}", "response": { "$ref": "ConnectionType" }, @@ -2463,7 +2465,7 @@ }, "list": { "description": "Retrieves a list of connection types.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/connectionTypes", + "flatPath": "userprofiles/{profileId}/connectionTypes", "httpMethod": "GET", "id": "dfareporting.connectionTypes.list", "parameterOrder": [ @@ -2478,7 +2480,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/connectionTypes", + "path": "userprofiles/{profileId}/connectionTypes", "response": { "$ref": "ConnectionTypesListResponse" }, @@ -2492,7 +2494,7 @@ "methods": { "delete": { "description": "Deletes an existing content category.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories/{id}", + "flatPath": "userprofiles/{profileId}/contentCategories/{id}", "httpMethod": "DELETE", "id": "dfareporting.contentCategories.delete", "parameterOrder": [ @@ -2515,14 +2517,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories/{id}", + "path": "userprofiles/{profileId}/contentCategories/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one content category by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories/{id}", + "flatPath": "userprofiles/{profileId}/contentCategories/{id}", "httpMethod": "GET", "id": "dfareporting.contentCategories.get", "parameterOrder": [ @@ -2545,7 +2547,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories/{id}", + "path": "userprofiles/{profileId}/contentCategories/{id}", "response": { "$ref": "ContentCategory" }, @@ -2555,7 +2557,7 @@ }, "insert": { "description": "Inserts a new content category.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "flatPath": "userprofiles/{profileId}/contentCategories", "httpMethod": "POST", "id": "dfareporting.contentCategories.insert", "parameterOrder": [ @@ -2570,7 +2572,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "path": "userprofiles/{profileId}/contentCategories", "request": { "$ref": "ContentCategory" }, @@ -2583,7 +2585,7 @@ }, "list": { "description": "Retrieves a list of content categories, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "flatPath": "userprofiles/{profileId}/contentCategories", "httpMethod": "GET", "id": "dfareporting.contentCategories.list", "parameterOrder": [ @@ -2652,7 +2654,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "path": "userprofiles/{profileId}/contentCategories", "response": { "$ref": "ContentCategoriesListResponse" }, @@ -2662,7 +2664,7 @@ }, "patch": { "description": "Updates an existing content category. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "flatPath": "userprofiles/{profileId}/contentCategories", "httpMethod": "PATCH", "id": "dfareporting.contentCategories.patch", "parameterOrder": [ @@ -2685,7 +2687,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "path": "userprofiles/{profileId}/contentCategories", "request": { "$ref": "ContentCategory" }, @@ -2698,7 +2700,7 @@ }, "update": { "description": "Updates an existing content category.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "flatPath": "userprofiles/{profileId}/contentCategories", "httpMethod": "PUT", "id": "dfareporting.contentCategories.update", "parameterOrder": [ @@ -2713,7 +2715,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/contentCategories", + "path": "userprofiles/{profileId}/contentCategories", "request": { "$ref": "ContentCategory" }, @@ -2730,7 +2732,7 @@ "methods": { "batchinsert": { "description": "Inserts conversions.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/conversions/batchinsert", + "flatPath": "userprofiles/{profileId}/conversions/batchinsert", "httpMethod": "POST", "id": "dfareporting.conversions.batchinsert", "parameterOrder": [ @@ -2745,7 +2747,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/conversions/batchinsert", + "path": "userprofiles/{profileId}/conversions/batchinsert", "request": { "$ref": "ConversionsBatchInsertRequest" }, @@ -2758,7 +2760,7 @@ }, "batchupdate": { "description": "Updates existing conversions.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/conversions/batchupdate", + "flatPath": "userprofiles/{profileId}/conversions/batchupdate", "httpMethod": "POST", "id": "dfareporting.conversions.batchupdate", "parameterOrder": [ @@ -2773,7 +2775,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/conversions/batchupdate", + "path": "userprofiles/{profileId}/conversions/batchupdate", "request": { "$ref": "ConversionsBatchUpdateRequest" }, @@ -2790,7 +2792,7 @@ "methods": { "get": { "description": "Gets one country by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/countries/{dartId}", + "flatPath": "userprofiles/{profileId}/countries/{dartId}", "httpMethod": "GET", "id": "dfareporting.countries.get", "parameterOrder": [ @@ -2813,7 +2815,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/countries/{dartId}", + "path": "userprofiles/{profileId}/countries/{dartId}", "response": { "$ref": "Country" }, @@ -2823,7 +2825,7 @@ }, "list": { "description": "Retrieves a list of countries.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/countries", + "flatPath": "userprofiles/{profileId}/countries", "httpMethod": "GET", "id": "dfareporting.countries.list", "parameterOrder": [ @@ -2838,7 +2840,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/countries", + "path": "userprofiles/{profileId}/countries", "response": { "$ref": "CountriesListResponse" }, @@ -2852,7 +2854,7 @@ "methods": { "insert": { "description": "Inserts a new creative asset.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "flatPath": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", "httpMethod": "POST", "id": "dfareporting.creativeAssets.insert", "mediaUpload": { @@ -2887,7 +2889,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", + "path": "userprofiles/{profileId}/creativeAssets/{advertiserId}/creativeAssets", "request": { "$ref": "CreativeAssetMetadata" }, @@ -2905,7 +2907,7 @@ "methods": { "delete": { "description": "Deletes an existing creative field value.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", "httpMethod": "DELETE", "id": "dfareporting.creativeFieldValues.delete", "parameterOrder": [ @@ -2936,14 +2938,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one creative field value by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", "httpMethod": "GET", "id": "dfareporting.creativeFieldValues.get", "parameterOrder": [ @@ -2974,7 +2976,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues/{id}", "response": { "$ref": "CreativeFieldValue" }, @@ -2984,7 +2986,7 @@ }, "insert": { "description": "Inserts a new creative field value.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "httpMethod": "POST", "id": "dfareporting.creativeFieldValues.insert", "parameterOrder": [ @@ -3007,7 +3009,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "request": { "$ref": "CreativeFieldValue" }, @@ -3020,7 +3022,7 @@ }, "list": { "description": "Retrieves a list of creative field values, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "httpMethod": "GET", "id": "dfareporting.creativeFieldValues.list", "parameterOrder": [ @@ -3097,7 +3099,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "response": { "$ref": "CreativeFieldValuesListResponse" }, @@ -3107,7 +3109,7 @@ }, "patch": { "description": "Updates an existing creative field value. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "httpMethod": "PATCH", "id": "dfareporting.creativeFieldValues.patch", "parameterOrder": [ @@ -3138,7 +3140,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "request": { "$ref": "CreativeFieldValue" }, @@ -3151,7 +3153,7 @@ }, "update": { "description": "Updates an existing creative field value.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "flatPath": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "httpMethod": "PUT", "id": "dfareporting.creativeFieldValues.update", "parameterOrder": [ @@ -3174,7 +3176,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", + "path": "userprofiles/{profileId}/creativeFields/{creativeFieldId}/creativeFieldValues", "request": { "$ref": "CreativeFieldValue" }, @@ -3191,7 +3193,7 @@ "methods": { "delete": { "description": "Deletes an existing creative field.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{id}", + "flatPath": "userprofiles/{profileId}/creativeFields/{id}", "httpMethod": "DELETE", "id": "dfareporting.creativeFields.delete", "parameterOrder": [ @@ -3214,14 +3216,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{id}", + "path": "userprofiles/{profileId}/creativeFields/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one creative field by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{id}", + "flatPath": "userprofiles/{profileId}/creativeFields/{id}", "httpMethod": "GET", "id": "dfareporting.creativeFields.get", "parameterOrder": [ @@ -3244,7 +3246,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields/{id}", + "path": "userprofiles/{profileId}/creativeFields/{id}", "response": { "$ref": "CreativeField" }, @@ -3254,7 +3256,7 @@ }, "insert": { "description": "Inserts a new creative field.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "flatPath": "userprofiles/{profileId}/creativeFields", "httpMethod": "POST", "id": "dfareporting.creativeFields.insert", "parameterOrder": [ @@ -3269,7 +3271,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "path": "userprofiles/{profileId}/creativeFields", "request": { "$ref": "CreativeField" }, @@ -3282,7 +3284,7 @@ }, "list": { "description": "Retrieves a list of creative fields, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "flatPath": "userprofiles/{profileId}/creativeFields", "httpMethod": "GET", "id": "dfareporting.creativeFields.list", "parameterOrder": [ @@ -3358,7 +3360,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "path": "userprofiles/{profileId}/creativeFields", "response": { "$ref": "CreativeFieldsListResponse" }, @@ -3368,7 +3370,7 @@ }, "patch": { "description": "Updates an existing creative field. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "flatPath": "userprofiles/{profileId}/creativeFields", "httpMethod": "PATCH", "id": "dfareporting.creativeFields.patch", "parameterOrder": [ @@ -3391,7 +3393,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "path": "userprofiles/{profileId}/creativeFields", "request": { "$ref": "CreativeField" }, @@ -3404,7 +3406,7 @@ }, "update": { "description": "Updates an existing creative field.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "flatPath": "userprofiles/{profileId}/creativeFields", "httpMethod": "PUT", "id": "dfareporting.creativeFields.update", "parameterOrder": [ @@ -3419,7 +3421,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeFields", + "path": "userprofiles/{profileId}/creativeFields", "request": { "$ref": "CreativeField" }, @@ -3436,7 +3438,7 @@ "methods": { "get": { "description": "Gets one creative group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups/{id}", + "flatPath": "userprofiles/{profileId}/creativeGroups/{id}", "httpMethod": "GET", "id": "dfareporting.creativeGroups.get", "parameterOrder": [ @@ -3459,7 +3461,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups/{id}", + "path": "userprofiles/{profileId}/creativeGroups/{id}", "response": { "$ref": "CreativeGroup" }, @@ -3469,7 +3471,7 @@ }, "insert": { "description": "Inserts a new creative group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "flatPath": "userprofiles/{profileId}/creativeGroups", "httpMethod": "POST", "id": "dfareporting.creativeGroups.insert", "parameterOrder": [ @@ -3484,7 +3486,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "path": "userprofiles/{profileId}/creativeGroups", "request": { "$ref": "CreativeGroup" }, @@ -3497,7 +3499,7 @@ }, "list": { "description": "Retrieves a list of creative groups, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "flatPath": "userprofiles/{profileId}/creativeGroups", "httpMethod": "GET", "id": "dfareporting.creativeGroups.list", "parameterOrder": [ @@ -3581,7 +3583,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "path": "userprofiles/{profileId}/creativeGroups", "response": { "$ref": "CreativeGroupsListResponse" }, @@ -3591,7 +3593,7 @@ }, "patch": { "description": "Updates an existing creative group. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "flatPath": "userprofiles/{profileId}/creativeGroups", "httpMethod": "PATCH", "id": "dfareporting.creativeGroups.patch", "parameterOrder": [ @@ -3614,7 +3616,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "path": "userprofiles/{profileId}/creativeGroups", "request": { "$ref": "CreativeGroup" }, @@ -3627,7 +3629,7 @@ }, "update": { "description": "Updates an existing creative group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "flatPath": "userprofiles/{profileId}/creativeGroups", "httpMethod": "PUT", "id": "dfareporting.creativeGroups.update", "parameterOrder": [ @@ -3642,7 +3644,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creativeGroups", + "path": "userprofiles/{profileId}/creativeGroups", "request": { "$ref": "CreativeGroup" }, @@ -3659,7 +3661,7 @@ "methods": { "get": { "description": "Gets one creative by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creatives/{id}", + "flatPath": "userprofiles/{profileId}/creatives/{id}", "httpMethod": "GET", "id": "dfareporting.creatives.get", "parameterOrder": [ @@ -3682,7 +3684,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creatives/{id}", + "path": "userprofiles/{profileId}/creatives/{id}", "response": { "$ref": "Creative" }, @@ -3692,7 +3694,7 @@ }, "insert": { "description": "Inserts a new creative.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "flatPath": "userprofiles/{profileId}/creatives", "httpMethod": "POST", "id": "dfareporting.creatives.insert", "parameterOrder": [ @@ -3707,7 +3709,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "path": "userprofiles/{profileId}/creatives", "request": { "$ref": "Creative" }, @@ -3720,7 +3722,7 @@ }, "list": { "description": "Retrieves a list of creatives, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "flatPath": "userprofiles/{profileId}/creatives", "httpMethod": "GET", "id": "dfareporting.creatives.list", "parameterOrder": [ @@ -3905,7 +3907,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "path": "userprofiles/{profileId}/creatives", "response": { "$ref": "CreativesListResponse" }, @@ -3915,7 +3917,7 @@ }, "patch": { "description": "Updates an existing creative. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "flatPath": "userprofiles/{profileId}/creatives", "httpMethod": "PATCH", "id": "dfareporting.creatives.patch", "parameterOrder": [ @@ -3938,7 +3940,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "path": "userprofiles/{profileId}/creatives", "request": { "$ref": "Creative" }, @@ -3951,7 +3953,7 @@ }, "update": { "description": "Updates an existing creative.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "flatPath": "userprofiles/{profileId}/creatives", "httpMethod": "PUT", "id": "dfareporting.creatives.update", "parameterOrder": [ @@ -3966,7 +3968,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/creatives", + "path": "userprofiles/{profileId}/creatives", "request": { "$ref": "Creative" }, @@ -3983,7 +3985,7 @@ "methods": { "query": { "description": "Retrieves list of report dimension values for a list of filters.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/dimensionvalues/query", + "flatPath": "userprofiles/{profileId}/dimensionvalues/query", "httpMethod": "POST", "id": "dfareporting.dimensionValues.query", "parameterOrder": [ @@ -4012,7 +4014,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/dimensionvalues/query", + "path": "userprofiles/{profileId}/dimensionvalues/query", "request": { "$ref": "DimensionValueRequest" }, @@ -4029,7 +4031,7 @@ "methods": { "get": { "description": "Gets one directory site by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/directorySites/{id}", + "flatPath": "userprofiles/{profileId}/directorySites/{id}", "httpMethod": "GET", "id": "dfareporting.directorySites.get", "parameterOrder": [ @@ -4052,7 +4054,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/directorySites/{id}", + "path": "userprofiles/{profileId}/directorySites/{id}", "response": { "$ref": "DirectorySite" }, @@ -4062,7 +4064,7 @@ }, "insert": { "description": "Inserts a new directory site.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/directorySites", + "flatPath": "userprofiles/{profileId}/directorySites", "httpMethod": "POST", "id": "dfareporting.directorySites.insert", "parameterOrder": [ @@ -4077,7 +4079,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/directorySites", + "path": "userprofiles/{profileId}/directorySites", "request": { "$ref": "DirectorySite" }, @@ -4090,7 +4092,7 @@ }, "list": { "description": "Retrieves a list of directory sites, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/directorySites", + "flatPath": "userprofiles/{profileId}/directorySites", "httpMethod": "GET", "id": "dfareporting.directorySites.list", "parameterOrder": [ @@ -4184,7 +4186,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/directorySites", + "path": "userprofiles/{profileId}/directorySites", "response": { "$ref": "DirectorySitesListResponse" }, @@ -4198,7 +4200,7 @@ "methods": { "delete": { "description": "Deletes an existing dynamic targeting key.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", "httpMethod": "DELETE", "id": "dfareporting.dynamicTargetingKeys.delete", "parameterOrder": [ @@ -4247,14 +4249,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys/{objectId}", + "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": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", "httpMethod": "POST", "id": "dfareporting.dynamicTargetingKeys.insert", "parameterOrder": [ @@ -4269,7 +4271,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys", + "path": "userprofiles/{profileId}/dynamicTargetingKeys", "request": { "$ref": "DynamicTargetingKey" }, @@ -4282,7 +4284,7 @@ }, "list": { "description": "Retrieves a list of dynamic targeting keys.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys", + "flatPath": "userprofiles/{profileId}/dynamicTargetingKeys", "httpMethod": "GET", "id": "dfareporting.dynamicTargetingKeys.list", "parameterOrder": [ @@ -4332,7 +4334,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/dynamicTargetingKeys", + "path": "userprofiles/{profileId}/dynamicTargetingKeys", "response": { "$ref": "DynamicTargetingKeysListResponse" }, @@ -4346,7 +4348,7 @@ "methods": { "delete": { "description": "Deletes an existing event tag.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags/{id}", + "flatPath": "userprofiles/{profileId}/eventTags/{id}", "httpMethod": "DELETE", "id": "dfareporting.eventTags.delete", "parameterOrder": [ @@ -4369,14 +4371,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags/{id}", + "path": "userprofiles/{profileId}/eventTags/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one event tag by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags/{id}", + "flatPath": "userprofiles/{profileId}/eventTags/{id}", "httpMethod": "GET", "id": "dfareporting.eventTags.get", "parameterOrder": [ @@ -4399,7 +4401,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags/{id}", + "path": "userprofiles/{profileId}/eventTags/{id}", "response": { "$ref": "EventTag" }, @@ -4409,7 +4411,7 @@ }, "insert": { "description": "Inserts a new event tag.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "flatPath": "userprofiles/{profileId}/eventTags", "httpMethod": "POST", "id": "dfareporting.eventTags.insert", "parameterOrder": [ @@ -4424,7 +4426,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "path": "userprofiles/{profileId}/eventTags", "request": { "$ref": "EventTag" }, @@ -4437,7 +4439,7 @@ }, "list": { "description": "Retrieves a list of event tags, possibly filtered.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "flatPath": "userprofiles/{profileId}/eventTags", "httpMethod": "GET", "id": "dfareporting.eventTags.list", "parameterOrder": [ @@ -4536,7 +4538,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "path": "userprofiles/{profileId}/eventTags", "response": { "$ref": "EventTagsListResponse" }, @@ -4546,7 +4548,7 @@ }, "patch": { "description": "Updates an existing event tag. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "flatPath": "userprofiles/{profileId}/eventTags", "httpMethod": "PATCH", "id": "dfareporting.eventTags.patch", "parameterOrder": [ @@ -4569,7 +4571,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "path": "userprofiles/{profileId}/eventTags", "request": { "$ref": "EventTag" }, @@ -4582,7 +4584,7 @@ }, "update": { "description": "Updates an existing event tag.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "flatPath": "userprofiles/{profileId}/eventTags", "httpMethod": "PUT", "id": "dfareporting.eventTags.update", "parameterOrder": [ @@ -4597,7 +4599,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/eventTags", + "path": "userprofiles/{profileId}/eventTags", "request": { "$ref": "EventTag" }, @@ -4614,7 +4616,7 @@ "methods": { "get": { "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", - "flatPath": "dfareporting/v3.5/reports/{reportId}/files/{fileId}", + "flatPath": "reports/{reportId}/files/{fileId}", "httpMethod": "GET", "id": "dfareporting.files.get", "parameterOrder": [ @@ -4637,7 +4639,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/reports/{reportId}/files/{fileId}", + "path": "reports/{reportId}/files/{fileId}", "response": { "$ref": "File" }, @@ -4648,7 +4650,7 @@ }, "list": { "description": "Lists files for a user profile.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/files", + "flatPath": "userprofiles/{profileId}/files", "httpMethod": "GET", "id": "dfareporting.files.list", "parameterOrder": [ @@ -4721,7 +4723,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/files", + "path": "userprofiles/{profileId}/files", "response": { "$ref": "FileList" }, @@ -4735,7 +4737,7 @@ "methods": { "delete": { "description": "Deletes an existing floodlight activity.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/{id}", + "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", "httpMethod": "DELETE", "id": "dfareporting.floodlightActivities.delete", "parameterOrder": [ @@ -4758,14 +4760,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/{id}", + "path": "userprofiles/{profileId}/floodlightActivities/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "generatetag": { "description": "Generates a tag for a floodlight activity.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/generatetag", + "flatPath": "userprofiles/{profileId}/floodlightActivities/generatetag", "httpMethod": "POST", "id": "dfareporting.floodlightActivities.generatetag", "parameterOrder": [ @@ -4786,7 +4788,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/generatetag", + "path": "userprofiles/{profileId}/floodlightActivities/generatetag", "response": { "$ref": "FloodlightActivitiesGenerateTagResponse" }, @@ -4796,7 +4798,7 @@ }, "get": { "description": "Gets one floodlight activity by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/{id}", + "flatPath": "userprofiles/{profileId}/floodlightActivities/{id}", "httpMethod": "GET", "id": "dfareporting.floodlightActivities.get", "parameterOrder": [ @@ -4819,7 +4821,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities/{id}", + "path": "userprofiles/{profileId}/floodlightActivities/{id}", "response": { "$ref": "FloodlightActivity" }, @@ -4829,7 +4831,7 @@ }, "insert": { "description": "Inserts a new floodlight activity.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "flatPath": "userprofiles/{profileId}/floodlightActivities", "httpMethod": "POST", "id": "dfareporting.floodlightActivities.insert", "parameterOrder": [ @@ -4844,7 +4846,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "path": "userprofiles/{profileId}/floodlightActivities", "request": { "$ref": "FloodlightActivity" }, @@ -4857,7 +4859,7 @@ }, "list": { "description": "Retrieves a list of floodlight activities, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "flatPath": "userprofiles/{profileId}/floodlightActivities", "httpMethod": "GET", "id": "dfareporting.floodlightActivities.list", "parameterOrder": [ @@ -4973,7 +4975,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "path": "userprofiles/{profileId}/floodlightActivities", "response": { "$ref": "FloodlightActivitiesListResponse" }, @@ -4983,7 +4985,7 @@ }, "patch": { "description": "Updates an existing floodlight activity. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "flatPath": "userprofiles/{profileId}/floodlightActivities", "httpMethod": "PATCH", "id": "dfareporting.floodlightActivities.patch", "parameterOrder": [ @@ -5006,7 +5008,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "path": "userprofiles/{profileId}/floodlightActivities", "request": { "$ref": "FloodlightActivity" }, @@ -5019,7 +5021,7 @@ }, "update": { "description": "Updates an existing floodlight activity.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "flatPath": "userprofiles/{profileId}/floodlightActivities", "httpMethod": "PUT", "id": "dfareporting.floodlightActivities.update", "parameterOrder": [ @@ -5034,7 +5036,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivities", + "path": "userprofiles/{profileId}/floodlightActivities", "request": { "$ref": "FloodlightActivity" }, @@ -5051,7 +5053,7 @@ "methods": { "get": { "description": "Gets one floodlight activity group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups/{id}", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups/{id}", "httpMethod": "GET", "id": "dfareporting.floodlightActivityGroups.get", "parameterOrder": [ @@ -5074,7 +5076,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups/{id}", + "path": "userprofiles/{profileId}/floodlightActivityGroups/{id}", "response": { "$ref": "FloodlightActivityGroup" }, @@ -5084,7 +5086,7 @@ }, "insert": { "description": "Inserts a new floodlight activity group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", "httpMethod": "POST", "id": "dfareporting.floodlightActivityGroups.insert", "parameterOrder": [ @@ -5099,7 +5101,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "path": "userprofiles/{profileId}/floodlightActivityGroups", "request": { "$ref": "FloodlightActivityGroup" }, @@ -5112,7 +5114,7 @@ }, "list": { "description": "Retrieves a list of floodlight activity groups, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", "httpMethod": "GET", "id": "dfareporting.floodlightActivityGroups.list", "parameterOrder": [ @@ -5206,7 +5208,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "path": "userprofiles/{profileId}/floodlightActivityGroups", "response": { "$ref": "FloodlightActivityGroupsListResponse" }, @@ -5216,7 +5218,7 @@ }, "patch": { "description": "Updates an existing floodlight activity group. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", "httpMethod": "PATCH", "id": "dfareporting.floodlightActivityGroups.patch", "parameterOrder": [ @@ -5239,7 +5241,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "path": "userprofiles/{profileId}/floodlightActivityGroups", "request": { "$ref": "FloodlightActivityGroup" }, @@ -5252,7 +5254,7 @@ }, "update": { "description": "Updates an existing floodlight activity group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "flatPath": "userprofiles/{profileId}/floodlightActivityGroups", "httpMethod": "PUT", "id": "dfareporting.floodlightActivityGroups.update", "parameterOrder": [ @@ -5267,7 +5269,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightActivityGroups", + "path": "userprofiles/{profileId}/floodlightActivityGroups", "request": { "$ref": "FloodlightActivityGroup" }, @@ -5284,7 +5286,7 @@ "methods": { "get": { "description": "Gets one floodlight configuration by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations/{id}", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations/{id}", "httpMethod": "GET", "id": "dfareporting.floodlightConfigurations.get", "parameterOrder": [ @@ -5307,7 +5309,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations/{id}", + "path": "userprofiles/{profileId}/floodlightConfigurations/{id}", "response": { "$ref": "FloodlightConfiguration" }, @@ -5317,7 +5319,7 @@ }, "list": { "description": "Retrieves a list of floodlight configurations, possibly filtered.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", "httpMethod": "GET", "id": "dfareporting.floodlightConfigurations.list", "parameterOrder": [ @@ -5339,7 +5341,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "path": "userprofiles/{profileId}/floodlightConfigurations", "response": { "$ref": "FloodlightConfigurationsListResponse" }, @@ -5349,7 +5351,7 @@ }, "patch": { "description": "Updates an existing floodlight configuration. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", "httpMethod": "PATCH", "id": "dfareporting.floodlightConfigurations.patch", "parameterOrder": [ @@ -5372,7 +5374,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "path": "userprofiles/{profileId}/floodlightConfigurations", "request": { "$ref": "FloodlightConfiguration" }, @@ -5385,7 +5387,7 @@ }, "update": { "description": "Updates an existing floodlight configuration.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "flatPath": "userprofiles/{profileId}/floodlightConfigurations", "httpMethod": "PUT", "id": "dfareporting.floodlightConfigurations.update", "parameterOrder": [ @@ -5400,7 +5402,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/floodlightConfigurations", + "path": "userprofiles/{profileId}/floodlightConfigurations", "request": { "$ref": "FloodlightConfiguration" }, @@ -5417,7 +5419,7 @@ "methods": { "get": { "description": "Gets one inventory item by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", "httpMethod": "GET", "id": "dfareporting.inventoryItems.get", "parameterOrder": [ @@ -5448,7 +5450,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", + "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems/{id}", "response": { "$ref": "InventoryItem" }, @@ -5458,7 +5460,7 @@ }, "list": { "description": "Retrieves a list of inventory items, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/inventoryItems", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", "httpMethod": "GET", "id": "dfareporting.inventoryItems.list", "parameterOrder": [ @@ -5562,7 +5564,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/inventoryItems", + "path": "userprofiles/{profileId}/projects/{projectId}/inventoryItems", "response": { "$ref": "InventoryItemsListResponse" }, @@ -5576,7 +5578,7 @@ "methods": { "list": { "description": "Retrieves a list of languages.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/languages", + "flatPath": "userprofiles/{profileId}/languages", "httpMethod": "GET", "id": "dfareporting.languages.list", "parameterOrder": [ @@ -5591,7 +5593,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/languages", + "path": "userprofiles/{profileId}/languages", "response": { "$ref": "LanguagesListResponse" }, @@ -5605,7 +5607,7 @@ "methods": { "list": { "description": "Retrieves a list of metros.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/metros", + "flatPath": "userprofiles/{profileId}/metros", "httpMethod": "GET", "id": "dfareporting.metros.list", "parameterOrder": [ @@ -5620,7 +5622,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/metros", + "path": "userprofiles/{profileId}/metros", "response": { "$ref": "MetrosListResponse" }, @@ -5634,7 +5636,7 @@ "methods": { "get": { "description": "Gets one mobile app by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/mobileApps/{id}", + "flatPath": "userprofiles/{profileId}/mobileApps/{id}", "httpMethod": "GET", "id": "dfareporting.mobileApps.get", "parameterOrder": [ @@ -5656,7 +5658,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/mobileApps/{id}", + "path": "userprofiles/{profileId}/mobileApps/{id}", "response": { "$ref": "MobileApp" }, @@ -5666,7 +5668,7 @@ }, "list": { "description": "Retrieves list of available mobile apps.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/mobileApps", + "flatPath": "userprofiles/{profileId}/mobileApps", "httpMethod": "GET", "id": "dfareporting.mobileApps.list", "parameterOrder": [ @@ -5678,9 +5680,25 @@ "enum": [ "UNKNOWN", "APPLE_APP_STORE", - "GOOGLE_PLAY_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": [ + "", + "", + "", + "", + "", + "", + "", + "", "", "", "" @@ -5722,7 +5740,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/mobileApps", + "path": "userprofiles/{profileId}/mobileApps", "response": { "$ref": "MobileAppsListResponse" }, @@ -5736,7 +5754,7 @@ "methods": { "get": { "description": "Gets one mobile carrier by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/mobileCarriers/{id}", + "flatPath": "userprofiles/{profileId}/mobileCarriers/{id}", "httpMethod": "GET", "id": "dfareporting.mobileCarriers.get", "parameterOrder": [ @@ -5759,7 +5777,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/mobileCarriers/{id}", + "path": "userprofiles/{profileId}/mobileCarriers/{id}", "response": { "$ref": "MobileCarrier" }, @@ -5769,7 +5787,7 @@ }, "list": { "description": "Retrieves a list of mobile carriers.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/mobileCarriers", + "flatPath": "userprofiles/{profileId}/mobileCarriers", "httpMethod": "GET", "id": "dfareporting.mobileCarriers.list", "parameterOrder": [ @@ -5784,7 +5802,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/mobileCarriers", + "path": "userprofiles/{profileId}/mobileCarriers", "response": { "$ref": "MobileCarriersListResponse" }, @@ -5798,7 +5816,7 @@ "methods": { "get": { "description": "Gets one operating system version by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystemVersions/{id}", + "flatPath": "userprofiles/{profileId}/operatingSystemVersions/{id}", "httpMethod": "GET", "id": "dfareporting.operatingSystemVersions.get", "parameterOrder": [ @@ -5821,7 +5839,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystemVersions/{id}", + "path": "userprofiles/{profileId}/operatingSystemVersions/{id}", "response": { "$ref": "OperatingSystemVersion" }, @@ -5831,7 +5849,7 @@ }, "list": { "description": "Retrieves a list of operating system versions.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystemVersions", + "flatPath": "userprofiles/{profileId}/operatingSystemVersions", "httpMethod": "GET", "id": "dfareporting.operatingSystemVersions.list", "parameterOrder": [ @@ -5846,7 +5864,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystemVersions", + "path": "userprofiles/{profileId}/operatingSystemVersions", "response": { "$ref": "OperatingSystemVersionsListResponse" }, @@ -5860,7 +5878,7 @@ "methods": { "get": { "description": "Gets one operating system by DART ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystems/{dartId}", + "flatPath": "userprofiles/{profileId}/operatingSystems/{dartId}", "httpMethod": "GET", "id": "dfareporting.operatingSystems.get", "parameterOrder": [ @@ -5883,7 +5901,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystems/{dartId}", + "path": "userprofiles/{profileId}/operatingSystems/{dartId}", "response": { "$ref": "OperatingSystem" }, @@ -5893,7 +5911,7 @@ }, "list": { "description": "Retrieves a list of operating systems.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystems", + "flatPath": "userprofiles/{profileId}/operatingSystems", "httpMethod": "GET", "id": "dfareporting.operatingSystems.list", "parameterOrder": [ @@ -5908,7 +5926,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/operatingSystems", + "path": "userprofiles/{profileId}/operatingSystems", "response": { "$ref": "OperatingSystemsListResponse" }, @@ -5922,7 +5940,7 @@ "methods": { "get": { "description": "Gets one order document by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", "httpMethod": "GET", "id": "dfareporting.orderDocuments.get", "parameterOrder": [ @@ -5953,7 +5971,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", + "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments/{id}", "response": { "$ref": "OrderDocument" }, @@ -5963,7 +5981,7 @@ }, "list": { "description": "Retrieves a list of order documents, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orderDocuments", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", "httpMethod": "GET", "id": "dfareporting.orderDocuments.list", "parameterOrder": [ @@ -6059,7 +6077,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orderDocuments", + "path": "userprofiles/{profileId}/projects/{projectId}/orderDocuments", "response": { "$ref": "OrderDocumentsListResponse" }, @@ -6073,7 +6091,7 @@ "methods": { "get": { "description": "Gets one order by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orders/{id}", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", "httpMethod": "GET", "id": "dfareporting.orders.get", "parameterOrder": [ @@ -6104,7 +6122,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orders/{id}", + "path": "userprofiles/{profileId}/projects/{projectId}/orders/{id}", "response": { "$ref": "Order" }, @@ -6114,7 +6132,7 @@ }, "list": { "description": "Retrieves a list of orders, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orders", + "flatPath": "userprofiles/{profileId}/projects/{projectId}/orders", "httpMethod": "GET", "id": "dfareporting.orders.list", "parameterOrder": [ @@ -6198,7 +6216,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{projectId}/orders", + "path": "userprofiles/{profileId}/projects/{projectId}/orders", "response": { "$ref": "OrdersListResponse" }, @@ -6212,7 +6230,7 @@ "methods": { "get": { "description": "Gets one placement group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups/{id}", + "flatPath": "userprofiles/{profileId}/placementGroups/{id}", "httpMethod": "GET", "id": "dfareporting.placementGroups.get", "parameterOrder": [ @@ -6235,7 +6253,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups/{id}", + "path": "userprofiles/{profileId}/placementGroups/{id}", "response": { "$ref": "PlacementGroup" }, @@ -6245,7 +6263,7 @@ }, "insert": { "description": "Inserts a new placement group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "flatPath": "userprofiles/{profileId}/placementGroups", "httpMethod": "POST", "id": "dfareporting.placementGroups.insert", "parameterOrder": [ @@ -6260,7 +6278,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "path": "userprofiles/{profileId}/placementGroups", "request": { "$ref": "PlacementGroup" }, @@ -6273,7 +6291,7 @@ }, "list": { "description": "Retrieves a list of placement groups, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "flatPath": "userprofiles/{profileId}/placementGroups", "httpMethod": "GET", "id": "dfareporting.placementGroups.list", "parameterOrder": [ @@ -6444,7 +6462,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "path": "userprofiles/{profileId}/placementGroups", "response": { "$ref": "PlacementGroupsListResponse" }, @@ -6454,7 +6472,7 @@ }, "patch": { "description": "Updates an existing placement group. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "flatPath": "userprofiles/{profileId}/placementGroups", "httpMethod": "PATCH", "id": "dfareporting.placementGroups.patch", "parameterOrder": [ @@ -6477,7 +6495,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "path": "userprofiles/{profileId}/placementGroups", "request": { "$ref": "PlacementGroup" }, @@ -6490,7 +6508,7 @@ }, "update": { "description": "Updates an existing placement group.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "flatPath": "userprofiles/{profileId}/placementGroups", "httpMethod": "PUT", "id": "dfareporting.placementGroups.update", "parameterOrder": [ @@ -6505,7 +6523,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementGroups", + "path": "userprofiles/{profileId}/placementGroups", "request": { "$ref": "PlacementGroup" }, @@ -6522,7 +6540,7 @@ "methods": { "delete": { "description": "Deletes an existing placement strategy.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies/{id}", + "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", "httpMethod": "DELETE", "id": "dfareporting.placementStrategies.delete", "parameterOrder": [ @@ -6545,14 +6563,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies/{id}", + "path": "userprofiles/{profileId}/placementStrategies/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one placement strategy by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies/{id}", + "flatPath": "userprofiles/{profileId}/placementStrategies/{id}", "httpMethod": "GET", "id": "dfareporting.placementStrategies.get", "parameterOrder": [ @@ -6575,7 +6593,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies/{id}", + "path": "userprofiles/{profileId}/placementStrategies/{id}", "response": { "$ref": "PlacementStrategy" }, @@ -6585,7 +6603,7 @@ }, "insert": { "description": "Inserts a new placement strategy.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "flatPath": "userprofiles/{profileId}/placementStrategies", "httpMethod": "POST", "id": "dfareporting.placementStrategies.insert", "parameterOrder": [ @@ -6600,7 +6618,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "path": "userprofiles/{profileId}/placementStrategies", "request": { "$ref": "PlacementStrategy" }, @@ -6613,7 +6631,7 @@ }, "list": { "description": "Retrieves a list of placement strategies, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "flatPath": "userprofiles/{profileId}/placementStrategies", "httpMethod": "GET", "id": "dfareporting.placementStrategies.list", "parameterOrder": [ @@ -6682,7 +6700,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "path": "userprofiles/{profileId}/placementStrategies", "response": { "$ref": "PlacementStrategiesListResponse" }, @@ -6692,7 +6710,7 @@ }, "patch": { "description": "Updates an existing placement strategy. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "flatPath": "userprofiles/{profileId}/placementStrategies", "httpMethod": "PATCH", "id": "dfareporting.placementStrategies.patch", "parameterOrder": [ @@ -6715,7 +6733,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "path": "userprofiles/{profileId}/placementStrategies", "request": { "$ref": "PlacementStrategy" }, @@ -6728,7 +6746,7 @@ }, "update": { "description": "Updates an existing placement strategy.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "flatPath": "userprofiles/{profileId}/placementStrategies", "httpMethod": "PUT", "id": "dfareporting.placementStrategies.update", "parameterOrder": [ @@ -6743,7 +6761,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placementStrategies", + "path": "userprofiles/{profileId}/placementStrategies", "request": { "$ref": "PlacementStrategy" }, @@ -6760,7 +6778,7 @@ "methods": { "generatetags": { "description": "Generates tags for a placement.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements/generatetags", + "flatPath": "userprofiles/{profileId}/placements/generatetags", "httpMethod": "POST", "id": "dfareporting.placements.generatetags", "parameterOrder": [ @@ -6838,7 +6856,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements/generatetags", + "path": "userprofiles/{profileId}/placements/generatetags", "response": { "$ref": "PlacementsGenerateTagsResponse" }, @@ -6848,7 +6866,7 @@ }, "get": { "description": "Gets one placement by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements/{id}", + "flatPath": "userprofiles/{profileId}/placements/{id}", "httpMethod": "GET", "id": "dfareporting.placements.get", "parameterOrder": [ @@ -6871,7 +6889,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements/{id}", + "path": "userprofiles/{profileId}/placements/{id}", "response": { "$ref": "Placement" }, @@ -6881,7 +6899,7 @@ }, "insert": { "description": "Inserts a new placement.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "flatPath": "userprofiles/{profileId}/placements", "httpMethod": "POST", "id": "dfareporting.placements.insert", "parameterOrder": [ @@ -6896,7 +6914,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "path": "userprofiles/{profileId}/placements", "request": { "$ref": "Placement" }, @@ -6909,7 +6927,7 @@ }, "list": { "description": "Retrieves a list of placements, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "flatPath": "userprofiles/{profileId}/placements", "httpMethod": "GET", "id": "dfareporting.placements.list", "parameterOrder": [ @@ -7116,7 +7134,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "path": "userprofiles/{profileId}/placements", "response": { "$ref": "PlacementsListResponse" }, @@ -7126,7 +7144,7 @@ }, "patch": { "description": "Updates an existing placement. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "flatPath": "userprofiles/{profileId}/placements", "httpMethod": "PATCH", "id": "dfareporting.placements.patch", "parameterOrder": [ @@ -7149,7 +7167,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "path": "userprofiles/{profileId}/placements", "request": { "$ref": "Placement" }, @@ -7162,7 +7180,7 @@ }, "update": { "description": "Updates an existing placement.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "flatPath": "userprofiles/{profileId}/placements", "httpMethod": "PUT", "id": "dfareporting.placements.update", "parameterOrder": [ @@ -7177,7 +7195,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/placements", + "path": "userprofiles/{profileId}/placements", "request": { "$ref": "Placement" }, @@ -7194,7 +7212,7 @@ "methods": { "get": { "description": "Gets one platform type by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/platformTypes/{id}", + "flatPath": "userprofiles/{profileId}/platformTypes/{id}", "httpMethod": "GET", "id": "dfareporting.platformTypes.get", "parameterOrder": [ @@ -7217,7 +7235,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/platformTypes/{id}", + "path": "userprofiles/{profileId}/platformTypes/{id}", "response": { "$ref": "PlatformType" }, @@ -7227,7 +7245,7 @@ }, "list": { "description": "Retrieves a list of platform types.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/platformTypes", + "flatPath": "userprofiles/{profileId}/platformTypes", "httpMethod": "GET", "id": "dfareporting.platformTypes.list", "parameterOrder": [ @@ -7242,7 +7260,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/platformTypes", + "path": "userprofiles/{profileId}/platformTypes", "response": { "$ref": "PlatformTypesListResponse" }, @@ -7256,7 +7274,7 @@ "methods": { "get": { "description": "Gets one postal code by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/postalCodes/{code}", + "flatPath": "userprofiles/{profileId}/postalCodes/{code}", "httpMethod": "GET", "id": "dfareporting.postalCodes.get", "parameterOrder": [ @@ -7278,7 +7296,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/postalCodes/{code}", + "path": "userprofiles/{profileId}/postalCodes/{code}", "response": { "$ref": "PostalCode" }, @@ -7288,7 +7306,7 @@ }, "list": { "description": "Retrieves a list of postal codes.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/postalCodes", + "flatPath": "userprofiles/{profileId}/postalCodes", "httpMethod": "GET", "id": "dfareporting.postalCodes.list", "parameterOrder": [ @@ -7303,7 +7321,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/postalCodes", + "path": "userprofiles/{profileId}/postalCodes", "response": { "$ref": "PostalCodesListResponse" }, @@ -7317,7 +7335,7 @@ "methods": { "get": { "description": "Gets one project by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects/{id}", + "flatPath": "userprofiles/{profileId}/projects/{id}", "httpMethod": "GET", "id": "dfareporting.projects.get", "parameterOrder": [ @@ -7340,7 +7358,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects/{id}", + "path": "userprofiles/{profileId}/projects/{id}", "response": { "$ref": "Project" }, @@ -7350,7 +7368,7 @@ }, "list": { "description": "Retrieves a list of projects, possibly filtered. This method supports paging .", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/projects", + "flatPath": "userprofiles/{profileId}/projects", "httpMethod": "GET", "id": "dfareporting.projects.list", "parameterOrder": [ @@ -7426,7 +7444,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/projects", + "path": "userprofiles/{profileId}/projects", "response": { "$ref": "ProjectsListResponse" }, @@ -7440,7 +7458,7 @@ "methods": { "list": { "description": "Retrieves a list of regions.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/regions", + "flatPath": "userprofiles/{profileId}/regions", "httpMethod": "GET", "id": "dfareporting.regions.list", "parameterOrder": [ @@ -7455,7 +7473,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/regions", + "path": "userprofiles/{profileId}/regions", "response": { "$ref": "RegionsListResponse" }, @@ -7469,7 +7487,7 @@ "methods": { "get": { "description": "Gets one remarketing list share by remarketing list ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares/{remarketingListId}", + "flatPath": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", "httpMethod": "GET", "id": "dfareporting.remarketingListShares.get", "parameterOrder": [ @@ -7492,7 +7510,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares/{remarketingListId}", + "path": "userprofiles/{profileId}/remarketingListShares/{remarketingListId}", "response": { "$ref": "RemarketingListShare" }, @@ -7502,7 +7520,7 @@ }, "patch": { "description": "Updates an existing remarketing list share. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares", + "flatPath": "userprofiles/{profileId}/remarketingListShares", "httpMethod": "PATCH", "id": "dfareporting.remarketingListShares.patch", "parameterOrder": [ @@ -7525,7 +7543,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares", + "path": "userprofiles/{profileId}/remarketingListShares", "request": { "$ref": "RemarketingListShare" }, @@ -7538,7 +7556,7 @@ }, "update": { "description": "Updates an existing remarketing list share.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares", + "flatPath": "userprofiles/{profileId}/remarketingListShares", "httpMethod": "PUT", "id": "dfareporting.remarketingListShares.update", "parameterOrder": [ @@ -7553,7 +7571,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingListShares", + "path": "userprofiles/{profileId}/remarketingListShares", "request": { "$ref": "RemarketingListShare" }, @@ -7570,7 +7588,7 @@ "methods": { "get": { "description": "Gets one remarketing list by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists/{id}", + "flatPath": "userprofiles/{profileId}/remarketingLists/{id}", "httpMethod": "GET", "id": "dfareporting.remarketingLists.get", "parameterOrder": [ @@ -7593,7 +7611,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists/{id}", + "path": "userprofiles/{profileId}/remarketingLists/{id}", "response": { "$ref": "RemarketingList" }, @@ -7603,7 +7621,7 @@ }, "insert": { "description": "Inserts a new remarketing list.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "flatPath": "userprofiles/{profileId}/remarketingLists", "httpMethod": "POST", "id": "dfareporting.remarketingLists.insert", "parameterOrder": [ @@ -7618,7 +7636,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "path": "userprofiles/{profileId}/remarketingLists", "request": { "$ref": "RemarketingList" }, @@ -7631,7 +7649,7 @@ }, "list": { "description": "Retrieves a list of remarketing lists, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "flatPath": "userprofiles/{profileId}/remarketingLists", "httpMethod": "GET", "id": "dfareporting.remarketingLists.list", "parameterOrder": [ @@ -7712,7 +7730,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "path": "userprofiles/{profileId}/remarketingLists", "response": { "$ref": "RemarketingListsListResponse" }, @@ -7722,7 +7740,7 @@ }, "patch": { "description": "Updates an existing remarketing list. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "flatPath": "userprofiles/{profileId}/remarketingLists", "httpMethod": "PATCH", "id": "dfareporting.remarketingLists.patch", "parameterOrder": [ @@ -7745,7 +7763,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "path": "userprofiles/{profileId}/remarketingLists", "request": { "$ref": "RemarketingList" }, @@ -7758,7 +7776,7 @@ }, "update": { "description": "Updates an existing remarketing list.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "flatPath": "userprofiles/{profileId}/remarketingLists", "httpMethod": "PUT", "id": "dfareporting.remarketingLists.update", "parameterOrder": [ @@ -7773,7 +7791,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/remarketingLists", + "path": "userprofiles/{profileId}/remarketingLists", "request": { "$ref": "RemarketingList" }, @@ -7790,7 +7808,7 @@ "methods": { "delete": { "description": "Deletes a report by its ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "DELETE", "id": "dfareporting.reports.delete", "parameterOrder": [ @@ -7813,14 +7831,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "path": "userprofiles/{profileId}/reports/{reportId}", "scopes": [ "https://www.googleapis.com/auth/dfareporting" ] }, "get": { "description": "Retrieves a report by its ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "GET", "id": "dfareporting.reports.get", "parameterOrder": [ @@ -7843,7 +7861,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "path": "userprofiles/{profileId}/reports/{reportId}", "response": { "$ref": "Report" }, @@ -7853,7 +7871,7 @@ }, "insert": { "description": "Creates a report.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports", + "flatPath": "userprofiles/{profileId}/reports", "httpMethod": "POST", "id": "dfareporting.reports.insert", "parameterOrder": [ @@ -7868,7 +7886,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports", + "path": "userprofiles/{profileId}/reports", "request": { "$ref": "Report" }, @@ -7881,7 +7899,7 @@ }, "list": { "description": "Retrieves list of reports.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports", + "flatPath": "userprofiles/{profileId}/reports", "httpMethod": "GET", "id": "dfareporting.reports.list", "parameterOrder": [ @@ -7954,7 +7972,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports", + "path": "userprofiles/{profileId}/reports", "response": { "$ref": "ReportList" }, @@ -7964,7 +7982,7 @@ }, "patch": { "description": "Updates an existing report. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "PATCH", "id": "dfareporting.reports.patch", "parameterOrder": [ @@ -7987,7 +8005,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "path": "userprofiles/{profileId}/reports/{reportId}", "request": { "$ref": "Report" }, @@ -8000,7 +8018,7 @@ }, "run": { "description": "Runs a report.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/run", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/run", "httpMethod": "POST", "id": "dfareporting.reports.run", "parameterOrder": [ @@ -8029,7 +8047,7 @@ "type": "boolean" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/run", + "path": "userprofiles/{profileId}/reports/{reportId}/run", "response": { "$ref": "File" }, @@ -8039,7 +8057,7 @@ }, "update": { "description": "Updates a report.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "flatPath": "userprofiles/{profileId}/reports/{reportId}", "httpMethod": "PUT", "id": "dfareporting.reports.update", "parameterOrder": [ @@ -8062,7 +8080,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}", + "path": "userprofiles/{profileId}/reports/{reportId}", "request": { "$ref": "Report" }, @@ -8079,7 +8097,7 @@ "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": "dfareporting/v3.5/userprofiles/{profileId}/reports/compatiblefields/query", + "flatPath": "userprofiles/{profileId}/reports/compatiblefields/query", "httpMethod": "POST", "id": "dfareporting.reports.compatibleFields.query", "parameterOrder": [ @@ -8094,7 +8112,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/compatiblefields/query", + "path": "userprofiles/{profileId}/reports/compatiblefields/query", "request": { "$ref": "Report" }, @@ -8111,7 +8129,7 @@ "methods": { "get": { "description": "Retrieves a report file by its report ID and file ID. This method supports media download.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", "httpMethod": "GET", "id": "dfareporting.reports.files.get", "parameterOrder": [ @@ -8142,7 +8160,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/files/{fileId}", + "path": "userprofiles/{profileId}/reports/{reportId}/files/{fileId}", "response": { "$ref": "File" }, @@ -8153,7 +8171,7 @@ }, "list": { "description": "Lists files for a report.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/files", + "flatPath": "userprofiles/{profileId}/reports/{reportId}/files", "httpMethod": "GET", "id": "dfareporting.reports.files.list", "parameterOrder": [ @@ -8218,7 +8236,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/reports/{reportId}/files", + "path": "userprofiles/{profileId}/reports/{reportId}/files", "response": { "$ref": "FileList" }, @@ -8234,7 +8252,7 @@ "methods": { "get": { "description": "Gets one site by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sites/{id}", + "flatPath": "userprofiles/{profileId}/sites/{id}", "httpMethod": "GET", "id": "dfareporting.sites.get", "parameterOrder": [ @@ -8257,7 +8275,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sites/{id}", + "path": "userprofiles/{profileId}/sites/{id}", "response": { "$ref": "Site" }, @@ -8267,7 +8285,7 @@ }, "insert": { "description": "Inserts a new site.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "flatPath": "userprofiles/{profileId}/sites", "httpMethod": "POST", "id": "dfareporting.sites.insert", "parameterOrder": [ @@ -8282,7 +8300,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "path": "userprofiles/{profileId}/sites", "request": { "$ref": "Site" }, @@ -8295,7 +8313,7 @@ }, "list": { "description": "Retrieves a list of sites, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "flatPath": "userprofiles/{profileId}/sites", "httpMethod": "GET", "id": "dfareporting.sites.list", "parameterOrder": [ @@ -8414,7 +8432,7 @@ "type": "boolean" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "path": "userprofiles/{profileId}/sites", "response": { "$ref": "SitesListResponse" }, @@ -8424,7 +8442,7 @@ }, "patch": { "description": "Updates an existing site. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "flatPath": "userprofiles/{profileId}/sites", "httpMethod": "PATCH", "id": "dfareporting.sites.patch", "parameterOrder": [ @@ -8447,7 +8465,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "path": "userprofiles/{profileId}/sites", "request": { "$ref": "Site" }, @@ -8460,7 +8478,7 @@ }, "update": { "description": "Updates an existing site.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "flatPath": "userprofiles/{profileId}/sites", "httpMethod": "PUT", "id": "dfareporting.sites.update", "parameterOrder": [ @@ -8475,7 +8493,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sites", + "path": "userprofiles/{profileId}/sites", "request": { "$ref": "Site" }, @@ -8492,7 +8510,7 @@ "methods": { "get": { "description": "Gets one size by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sizes/{id}", + "flatPath": "userprofiles/{profileId}/sizes/{id}", "httpMethod": "GET", "id": "dfareporting.sizes.get", "parameterOrder": [ @@ -8515,7 +8533,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sizes/{id}", + "path": "userprofiles/{profileId}/sizes/{id}", "response": { "$ref": "Size" }, @@ -8525,7 +8543,7 @@ }, "insert": { "description": "Inserts a new size.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/sizes", + "flatPath": "userprofiles/{profileId}/sizes", "httpMethod": "POST", "id": "dfareporting.sizes.insert", "parameterOrder": [ @@ -8540,7 +8558,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sizes", + "path": "userprofiles/{profileId}/sizes", "request": { "$ref": "Size" }, @@ -8553,7 +8571,7 @@ }, "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": "dfareporting/v3.5/userprofiles/{profileId}/sizes", + "flatPath": "userprofiles/{profileId}/sizes", "httpMethod": "GET", "id": "dfareporting.sizes.list", "parameterOrder": [ @@ -8596,7 +8614,7 @@ "type": "integer" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/sizes", + "path": "userprofiles/{profileId}/sizes", "response": { "$ref": "SizesListResponse" }, @@ -8610,7 +8628,7 @@ "methods": { "get": { "description": "Gets one subaccount by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts/{id}", + "flatPath": "userprofiles/{profileId}/subaccounts/{id}", "httpMethod": "GET", "id": "dfareporting.subaccounts.get", "parameterOrder": [ @@ -8633,7 +8651,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts/{id}", + "path": "userprofiles/{profileId}/subaccounts/{id}", "response": { "$ref": "Subaccount" }, @@ -8643,7 +8661,7 @@ }, "insert": { "description": "Inserts a new subaccount.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "flatPath": "userprofiles/{profileId}/subaccounts", "httpMethod": "POST", "id": "dfareporting.subaccounts.insert", "parameterOrder": [ @@ -8658,7 +8676,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "path": "userprofiles/{profileId}/subaccounts", "request": { "$ref": "Subaccount" }, @@ -8671,7 +8689,7 @@ }, "list": { "description": "Gets a list of subaccounts, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "flatPath": "userprofiles/{profileId}/subaccounts", "httpMethod": "GET", "id": "dfareporting.subaccounts.list", "parameterOrder": [ @@ -8740,7 +8758,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "path": "userprofiles/{profileId}/subaccounts", "response": { "$ref": "SubaccountsListResponse" }, @@ -8750,7 +8768,7 @@ }, "patch": { "description": "Updates an existing subaccount. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "flatPath": "userprofiles/{profileId}/subaccounts", "httpMethod": "PATCH", "id": "dfareporting.subaccounts.patch", "parameterOrder": [ @@ -8773,7 +8791,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "path": "userprofiles/{profileId}/subaccounts", "request": { "$ref": "Subaccount" }, @@ -8786,7 +8804,7 @@ }, "update": { "description": "Updates an existing subaccount.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "flatPath": "userprofiles/{profileId}/subaccounts", "httpMethod": "PUT", "id": "dfareporting.subaccounts.update", "parameterOrder": [ @@ -8801,7 +8819,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/subaccounts", + "path": "userprofiles/{profileId}/subaccounts", "request": { "$ref": "Subaccount" }, @@ -8818,7 +8836,7 @@ "methods": { "get": { "description": "Gets one remarketing list by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetableRemarketingLists/{id}", + "flatPath": "userprofiles/{profileId}/targetableRemarketingLists/{id}", "httpMethod": "GET", "id": "dfareporting.targetableRemarketingLists.get", "parameterOrder": [ @@ -8841,7 +8859,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetableRemarketingLists/{id}", + "path": "userprofiles/{profileId}/targetableRemarketingLists/{id}", "response": { "$ref": "TargetableRemarketingList" }, @@ -8851,7 +8869,7 @@ }, "list": { "description": "Retrieves a list of targetable remarketing lists, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetableRemarketingLists", + "flatPath": "userprofiles/{profileId}/targetableRemarketingLists", "httpMethod": "GET", "id": "dfareporting.targetableRemarketingLists.list", "parameterOrder": [ @@ -8926,7 +8944,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetableRemarketingLists", + "path": "userprofiles/{profileId}/targetableRemarketingLists", "response": { "$ref": "TargetableRemarketingListsListResponse" }, @@ -8940,7 +8958,7 @@ "methods": { "get": { "description": "Gets one targeting template by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates/{id}", + "flatPath": "userprofiles/{profileId}/targetingTemplates/{id}", "httpMethod": "GET", "id": "dfareporting.targetingTemplates.get", "parameterOrder": [ @@ -8963,7 +8981,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates/{id}", + "path": "userprofiles/{profileId}/targetingTemplates/{id}", "response": { "$ref": "TargetingTemplate" }, @@ -8973,7 +8991,7 @@ }, "insert": { "description": "Inserts a new targeting template.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "flatPath": "userprofiles/{profileId}/targetingTemplates", "httpMethod": "POST", "id": "dfareporting.targetingTemplates.insert", "parameterOrder": [ @@ -8988,7 +9006,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "path": "userprofiles/{profileId}/targetingTemplates", "request": { "$ref": "TargetingTemplate" }, @@ -9001,7 +9019,7 @@ }, "list": { "description": "Retrieves a list of targeting templates, optionally filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "flatPath": "userprofiles/{profileId}/targetingTemplates", "httpMethod": "GET", "id": "dfareporting.targetingTemplates.list", "parameterOrder": [ @@ -9076,7 +9094,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "path": "userprofiles/{profileId}/targetingTemplates", "response": { "$ref": "TargetingTemplatesListResponse" }, @@ -9086,7 +9104,7 @@ }, "patch": { "description": "Updates an existing targeting template. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "flatPath": "userprofiles/{profileId}/targetingTemplates", "httpMethod": "PATCH", "id": "dfareporting.targetingTemplates.patch", "parameterOrder": [ @@ -9109,7 +9127,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "path": "userprofiles/{profileId}/targetingTemplates", "request": { "$ref": "TargetingTemplate" }, @@ -9122,7 +9140,7 @@ }, "update": { "description": "Updates an existing targeting template.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "flatPath": "userprofiles/{profileId}/targetingTemplates", "httpMethod": "PUT", "id": "dfareporting.targetingTemplates.update", "parameterOrder": [ @@ -9137,7 +9155,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/targetingTemplates", + "path": "userprofiles/{profileId}/targetingTemplates", "request": { "$ref": "TargetingTemplate" }, @@ -9154,7 +9172,7 @@ "methods": { "get": { "description": "Gets one user profile by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}", + "flatPath": "userprofiles/{profileId}", "httpMethod": "GET", "id": "dfareporting.userProfiles.get", "parameterOrder": [ @@ -9169,7 +9187,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}", + "path": "userprofiles/{profileId}", "response": { "$ref": "UserProfile" }, @@ -9181,12 +9199,12 @@ }, "list": { "description": "Retrieves list of user profiles for a user.", - "flatPath": "dfareporting/v3.5/userprofiles", + "flatPath": "userprofiles", "httpMethod": "GET", "id": "dfareporting.userProfiles.list", "parameterOrder": [], "parameters": {}, - "path": "dfareporting/v3.5/userprofiles", + "path": "userprofiles", "response": { "$ref": "UserProfileList" }, @@ -9202,7 +9220,7 @@ "methods": { "get": { "description": "Gets one user role permission group by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissionGroups/{id}", + "flatPath": "userprofiles/{profileId}/userRolePermissionGroups/{id}", "httpMethod": "GET", "id": "dfareporting.userRolePermissionGroups.get", "parameterOrder": [ @@ -9225,7 +9243,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissionGroups/{id}", + "path": "userprofiles/{profileId}/userRolePermissionGroups/{id}", "response": { "$ref": "UserRolePermissionGroup" }, @@ -9235,7 +9253,7 @@ }, "list": { "description": "Gets a list of all supported user role permission groups.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissionGroups", + "flatPath": "userprofiles/{profileId}/userRolePermissionGroups", "httpMethod": "GET", "id": "dfareporting.userRolePermissionGroups.list", "parameterOrder": [ @@ -9250,7 +9268,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissionGroups", + "path": "userprofiles/{profileId}/userRolePermissionGroups", "response": { "$ref": "UserRolePermissionGroupsListResponse" }, @@ -9264,7 +9282,7 @@ "methods": { "get": { "description": "Gets one user role permission by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissions/{id}", + "flatPath": "userprofiles/{profileId}/userRolePermissions/{id}", "httpMethod": "GET", "id": "dfareporting.userRolePermissions.get", "parameterOrder": [ @@ -9287,7 +9305,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissions/{id}", + "path": "userprofiles/{profileId}/userRolePermissions/{id}", "response": { "$ref": "UserRolePermission" }, @@ -9297,7 +9315,7 @@ }, "list": { "description": "Gets a list of user role permissions, possibly filtered.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissions", + "flatPath": "userprofiles/{profileId}/userRolePermissions", "httpMethod": "GET", "id": "dfareporting.userRolePermissions.list", "parameterOrder": [ @@ -9319,7 +9337,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRolePermissions", + "path": "userprofiles/{profileId}/userRolePermissions", "response": { "$ref": "UserRolePermissionsListResponse" }, @@ -9333,7 +9351,7 @@ "methods": { "delete": { "description": "Deletes an existing user role.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles/{id}", + "flatPath": "userprofiles/{profileId}/userRoles/{id}", "httpMethod": "DELETE", "id": "dfareporting.userRoles.delete", "parameterOrder": [ @@ -9356,14 +9374,14 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles/{id}", + "path": "userprofiles/{profileId}/userRoles/{id}", "scopes": [ "https://www.googleapis.com/auth/dfatrafficking" ] }, "get": { "description": "Gets one user role by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles/{id}", + "flatPath": "userprofiles/{profileId}/userRoles/{id}", "httpMethod": "GET", "id": "dfareporting.userRoles.get", "parameterOrder": [ @@ -9386,7 +9404,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles/{id}", + "path": "userprofiles/{profileId}/userRoles/{id}", "response": { "$ref": "UserRole" }, @@ -9396,7 +9414,7 @@ }, "insert": { "description": "Inserts a new user role.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "flatPath": "userprofiles/{profileId}/userRoles", "httpMethod": "POST", "id": "dfareporting.userRoles.insert", "parameterOrder": [ @@ -9411,7 +9429,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "path": "userprofiles/{profileId}/userRoles", "request": { "$ref": "UserRole" }, @@ -9424,7 +9442,7 @@ }, "list": { "description": "Retrieves a list of user roles, possibly filtered. This method supports paging.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "flatPath": "userprofiles/{profileId}/userRoles", "httpMethod": "GET", "id": "dfareporting.userRoles.list", "parameterOrder": [ @@ -9504,7 +9522,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "path": "userprofiles/{profileId}/userRoles", "response": { "$ref": "UserRolesListResponse" }, @@ -9514,7 +9532,7 @@ }, "patch": { "description": "Updates an existing user role. This method supports patch semantics.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "flatPath": "userprofiles/{profileId}/userRoles", "httpMethod": "PATCH", "id": "dfareporting.userRoles.patch", "parameterOrder": [ @@ -9537,7 +9555,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "path": "userprofiles/{profileId}/userRoles", "request": { "$ref": "UserRole" }, @@ -9550,7 +9568,7 @@ }, "update": { "description": "Updates an existing user role.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "flatPath": "userprofiles/{profileId}/userRoles", "httpMethod": "PUT", "id": "dfareporting.userRoles.update", "parameterOrder": [ @@ -9565,7 +9583,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/userRoles", + "path": "userprofiles/{profileId}/userRoles", "request": { "$ref": "UserRole" }, @@ -9582,7 +9600,7 @@ "methods": { "get": { "description": "Gets one video format by ID.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/videoFormats/{id}", + "flatPath": "userprofiles/{profileId}/videoFormats/{id}", "httpMethod": "GET", "id": "dfareporting.videoFormats.get", "parameterOrder": [ @@ -9605,7 +9623,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/videoFormats/{id}", + "path": "userprofiles/{profileId}/videoFormats/{id}", "response": { "$ref": "VideoFormat" }, @@ -9615,7 +9633,7 @@ }, "list": { "description": "Lists available video formats.", - "flatPath": "dfareporting/v3.5/userprofiles/{profileId}/videoFormats", + "flatPath": "userprofiles/{profileId}/videoFormats", "httpMethod": "GET", "id": "dfareporting.videoFormats.list", "parameterOrder": [ @@ -9630,7 +9648,7 @@ "type": "string" } }, - "path": "dfareporting/v3.5/userprofiles/{profileId}/videoFormats", + "path": "userprofiles/{profileId}/videoFormats", "response": { "$ref": "VideoFormatsListResponse" }, @@ -9641,7 +9659,7 @@ } } }, - "revision": "20220104", + "revision": "20230118", "rootUrl": "https://dfareporting.googleapis.com/", "schemas": { "Account": { @@ -10792,7 +10810,7 @@ "description": "Measurement partner campaign link for tag wrapping." }, "name": { - "description": "Name of this campaign. This is a required field and must be less than 256 characters long and unique among campaigns of the same advertiser.", + "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": { @@ -11649,12 +11667,14 @@ "CREATIVE_AUTHORING_SOURCE_DCM", "CREATIVE_AUTHORING_SOURCE_DBM", "CREATIVE_AUTHORING_SOURCE_STUDIO", - "CREATIVE_AUTHORING_SOURCE_GWD" + "CREATIVE_AUTHORING_SOURCE_GWD", + "CREATIVE_AUTHORING_SOURCE_ACS" ], "enumDescriptions": [ "", "", "", + "", "" ], "type": "string" @@ -12903,7 +12923,8 @@ "CLICK_TAG_IN_GWD", "CLICK_TAG_HARD_CODED", "SVG_INVALID", - "CLICK_TAG_IN_RICH_MEDIA" + "CLICK_TAG_IN_RICH_MEDIA", + "MISSING_ENABLER_REFERENCE" ], "enumDescriptions": [ "", @@ -12930,6 +12951,7 @@ "", "", "", + "", "" ], "type": "string" @@ -15956,9 +15978,11 @@ "description": "Measurement partner used for tag wrapping.", "enum": [ "NONE", - "INTEGRAL_AD_SCIENCE" + "INTEGRAL_AD_SCIENCE", + "DOUBLE_VERIFY" ], "enumDescriptions": [ + "", "", "" ], @@ -16002,9 +16026,11 @@ "description": "Measurement partner used for tag wrapping.", "enum": [ "NONE", - "INTEGRAL_AD_SCIENCE" + "INTEGRAL_AD_SCIENCE", + "DOUBLE_VERIFY" ], "enumDescriptions": [ + "", "", "" ], @@ -16049,9 +16075,11 @@ "description": "Measurement partner used for wrapping the placement.", "enum": [ "NONE", - "INTEGRAL_AD_SCIENCE" + "INTEGRAL_AD_SCIENCE", + "DOUBLE_VERIFY" ], "enumDescriptions": [ + "", "", "" ], @@ -16066,9 +16094,23 @@ "MONITORING_ONLY", "VIDEO_PIXEL_MONITORING", "TRACKING", - "NON_VPAID_MONITORING" + "VPAID_MONITORING", + "VPAID_BLOCKING", + "NON_VPAID_MONITORING", + "VPAID_ONLY_MONITORING", + "VPAID_ONLY_BLOCKING", + "VPAID_ONLY_FILTERING", + "VPAID_FILTERING", + "NON_VPAID_FILTERING" ], "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", "", "", "", @@ -16166,9 +16208,25 @@ "enum": [ "UNKNOWN", "APPLE_APP_STORE", - "GOOGLE_PLAY_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": [ + "", + "", + "", + "", + "", + "", + "", + "", "", "", "" @@ -17041,7 +17099,7 @@ "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 256 characters long.", + "description": "Name of this placement.This is a required field and must be less than or equal to 512 characters long.", "type": "string" }, "partnerWrappingData": { @@ -20540,7 +20598,7 @@ "type": "object" } }, - "servicePath": "", + "servicePath": "dfareporting/v3.5/", "title": "Campaign Manager 360 API", "version": "v3.5" } \ No newline at end of file diff --git a/etc/api/dialogflow/v2/dialogflow-api.json b/etc/api/dialogflow/v2/dialogflow-api.json index b03af1a12d..bbbb28b39e 100644 --- a/etc/api/dialogflow/v2/dialogflow-api.json +++ b/etc/api/dialogflow/v2/dialogflow-api.json @@ -2613,7 +2613,7 @@ ], "parameters": { "filter": { - "description": "Required. Filters to restrict results to specific answer records. Filter on answer record type. Currently predicates on `type` is supported, valid values are `ARTICLE_ANSWER`, `FAQ_ANSWER`. For more information about filtering, see [API Filtering](https://aip.dev/160).", + "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" }, @@ -3675,6 +3675,39 @@ } } } + }, + "suggestions": { + "methods": { + "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", + "httpMethod": "POST", + "id": "dialogflow.projects.conversations.suggestions.suggestConversationSummary", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+conversation}/suggestions:suggestConversationSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -4186,7 +4219,7 @@ ], "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).", + "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" }, @@ -6309,7 +6342,7 @@ ], "parameters": { "filter": { - "description": "Required. Filters to restrict results to specific answer records. Filter on answer record type. Currently predicates on `type` is supported, valid values are `ARTICLE_ANSWER`, `FAQ_ANSWER`. For more information about filtering, see [API Filtering](https://aip.dev/160).", + "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" }, @@ -7455,6 +7488,39 @@ } } } + }, + "suggestions": { + "methods": { + "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", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.conversations.suggestions.suggestConversationSummary", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+conversation}/suggestions:suggestConversationSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -8077,7 +8143,7 @@ } } }, - "revision": "20220228", + "revision": "20230110", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AudioInput": { @@ -8161,6 +8227,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3ConversationTurn", @@ -8362,6 +8439,10 @@ "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -8399,6 +8480,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3EventHandler", @@ -8589,7 +8684,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -8946,7 +9041,7 @@ "id": "GoogleCloudDialogflowCxV3Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -9103,6 +9198,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -9453,7 +9552,11 @@ "id": "GoogleCloudDialogflowCxV3TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -9558,6 +9661,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata", @@ -9569,8 +9727,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3WebhookRequest", "properties": { "detectIntentResponseId": { @@ -9640,7 +9864,7 @@ "id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -9768,6 +9992,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", @@ -9849,6 +10088,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", @@ -10050,6 +10300,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -10087,6 +10341,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3beta1EventHandler", @@ -10277,7 +10545,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -10634,7 +10902,7 @@ "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -10791,6 +11059,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -11141,7 +11413,11 @@ "id": "GoogleCloudDialogflowCxV3beta1TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -11246,6 +11522,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata", @@ -11257,8 +11588,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3beta1Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", "properties": { "detectIntentResponseId": { @@ -11328,7 +11725,7 @@ "id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -11456,6 +11853,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2Agent": { "description": "A Dialogflow agent is a virtual agent that handles conversations with your end-users. It is a natural language understanding module that understands the nuances of human language. Dialogflow translates end-user text or audio during a conversation to structured data that your apps and services can understand. You design and build a Dialogflow agent to handle the types of conversations required for your system. For more information about agents, see the [Agent guide](https://cloud.google.com/dialogflow/docs/agents-overview). ", "id": "GoogleCloudDialogflowV2Agent", @@ -11594,6 +12006,31 @@ "Document is efficient." ], "type": "string" + }, + "summarizationFeedback": { + "$ref": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", + "description": "Optional. Feedback for conversation summarization." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback": { + "description": "Feedback for conversation summarization.", + "id": "GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback", + "properties": { + "startTime": { + "description": "Timestamp when composing of the summary starts.", + "format": "google-datetime", + "type": "string" + }, + "submitTime": { + "description": "Timestamp when the summary was submitted.", + "format": "google-datetime", + "type": "string" + }, + "summaryText": { + "description": "Text of actual submitted summary.", + "type": "string" } }, "type": "object" @@ -11623,6 +12060,14 @@ "$ref": "GoogleCloudDialogflowV2AssistQueryParameters", "description": "Parameters for a human assist query." }, + "cxParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional parameters to be put into Dialogflow CX session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. Note: this field should only be used if you are connecting to a Dialogflow CX agent.", + "type": "object" + }, "eventInput": { "$ref": "GoogleCloudDialogflowV2EventInput", "description": "An input event to send to Dialogflow." @@ -11659,14 +12104,14 @@ "description": "Indicates the parameters of DTMF." }, "endUserSuggestionResults": { - "description": "The suggestions for end user. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.end_user_suggestion_config.", + "description": "The suggestions for end user. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.end_user_suggestion_config. Same as human_agent_suggestion_results, any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", "items": { "$ref": "GoogleCloudDialogflowV2SuggestionResult" }, "type": "array" }, "humanAgentSuggestionResults": { - "description": "The suggestions for most recent human agent. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.human_agent_suggestion_config.", + "description": "The suggestions for most recent human agent. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.human_agent_suggestion_config. Note that any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", "items": { "$ref": "GoogleCloudDialogflowV2SuggestionResult" }, @@ -11877,6 +12322,10 @@ ], "type": "string" }, + "cxCurrentPage": { + "description": "The unique identifier of the current Dialogflow CX conversation page. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, "detectIntentResponse": { "$ref": "GoogleCloudDialogflowV2DetectIntentResponse", "description": "Response of the Dialogflow Sessions.DetectIntent call." @@ -12097,9 +12546,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -12136,9 +12585,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -12418,6 +12867,11 @@ "description": "The resource name of the evaluation. Format: `projects//conversationModels//evaluations/`", "type": "string" }, + "rawHumanEvalTemplateCsv": { + "description": "Output only. Human eval template in csv format. It tooks real-world conversations provided through input dataset, generates example suggestions for customer to verify quality of the model. For Smart Reply, the generated csv file contains columns of Context, (Suggestions,Q1,Q2)*3, Actual reply. Context contains at most 10 latest messages in the conversation prior to the current suggestion. Q1: \"Would you send it as the next message of agent?\" Evaluated based on whether the suggest is appropriate to be sent by agent in current context. Q2: \"Does the suggestion move the conversation closer to resolution?\" Evaluated based on whether the suggestion provide solutions, or answers customer's question or collect information from customer to resolve the customer's issue. Actual reply column contains the actual agent reply sent in the context.", + "readOnly": true, + "type": "string" + }, "smartReplyMetrics": { "$ref": "GoogleCloudDialogflowV2SmartReplyMetrics", "description": "Output only. Only available when model is for smart reply.", @@ -12508,7 +12962,12 @@ "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { "description": "Metadata for ConversationDatasets.", "id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", - "properties": {}, + "properties": { + "conversationDataset": { + "description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", + "type": "string" + } + }, "type": "object" }, "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { @@ -13055,7 +13514,7 @@ "id": "GoogleCloudDialogflowV2EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -13078,7 +13537,7 @@ "id": "GoogleCloudDialogflowV2ExportAgentRequest", "properties": { "agentUri": { - "description": "Required. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline.", + "description": "Required. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -13293,7 +13752,7 @@ "type": "object" }, "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig": { - "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY.", + "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION.", "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig", "properties": { "model": { @@ -13566,7 +14025,7 @@ "type": "string" }, "agentUri": { - "description": "The URI to a Google Cloud Storage file containing the agent to import. Note: The URI must start with \"gs://\".", + "description": "The URI to a Google Cloud Storage file containing the agent to import. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -15271,6 +15730,10 @@ "description": "Optional. The unique identifier of this participant. Format: `projects//locations//conversations//participants/`.", "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 returns an error if you try to add a user id for a non-END_USER participant. Dialogflow uses this user id for billing and measurement purposes. For example, Dialogflow determines whether a user in one conversation returned in a later conversation. 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": { "description": "Immutable. The role this participant plays in the conversation. This field must be set during participant creation and is then immutable.", "enum": [ @@ -15308,7 +15771,7 @@ }, "text": { "$ref": "GoogleCloudDialogflowV2TextInput", - "description": "The natural language text to be processed." + "description": "The natural language text to be processed. Text length must not exceed 256 character for virtual agent interactions." } }, "type": "object" @@ -15378,7 +15841,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -15485,7 +15948,7 @@ "type": "string" }, "agentUri": { - "description": "The URI to a Google Cloud Storage file containing the agent to restore. Note: The URI must start with \"gs://\".", + "description": "The URI to a Google Cloud Storage file containing the agent to restore. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -15510,7 +15973,7 @@ "type": "object" }, "GoogleCloudDialogflowV2Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -15619,9 +16082,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -15760,6 +16223,10 @@ "description": "Configures speech transcription for ConversationProfile.", "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.", + "type": "string" + }, "speechModelVariant": { "description": "The speech model used in speech to text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and StreamingAnalyzeContentRequest request. If enhanced model variant is specified and an enhanced version of the specified model for the language does not exist, then it would emit an error.", "enum": [ @@ -15822,6 +16289,64 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2SuggestConversationSummaryRequest": { + "description": "The request message for Conversations.SuggestConversationSummary.", + "id": "GoogleCloudDialogflowV2SuggestConversationSummaryRequest", + "properties": { + "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", + "type": "integer" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2SuggestConversationSummaryResponse": { + "description": "The response message for Conversations.SuggestConversationSummary.", + "id": "GoogleCloudDialogflowV2SuggestConversationSummaryResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including last_conversation_message used to compile the suggestion. It may be smaller than the SuggestSummaryRequest.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. Format: `projects//locations//conversations//messages/`.", + "type": "string" + }, + "summary": { + "$ref": "GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary", + "description": "Generated summary." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary": { + "description": "Generated summary for a conversation.", + "id": "GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: \"projects//answerRecords/\"", + "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" + }, "GoogleCloudDialogflowV2SuggestFaqAnswersRequest": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2SuggestFaqAnswersRequest", @@ -15923,9 +16448,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -15989,7 +16514,7 @@ "type": "object" }, "GoogleCloudDialogflowV2TextInput": { - "description": "Represents the natural language text to be processed.", + "description": "============================================================================ Auxiliary proto messages. Represents the natural language text to be processed.", "id": "GoogleCloudDialogflowV2TextInput", "properties": { "languageCode": { @@ -15997,7 +16522,7 @@ "type": "string" }, "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. Text length must not exceed 256 characters for virtual agent interactions.", "type": "string" } }, @@ -16382,13 +16907,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -16441,6 +16968,7 @@ "TYPE_UNSPECIFIED", "CONVERSATION_STARTED", "CONVERSATION_FINISHED", + "HUMAN_INTERVENTION_NEEDED", "NEW_MESSAGE", "UNRECOVERABLE_ERROR" ], @@ -16448,6 +16976,7 @@ "Type not set.", "A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", "An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", + "An existing conversation has received notification from Dialogflow that human intervention is required.", "An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", "Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." ], @@ -16533,7 +17062,7 @@ "id": "GoogleCloudDialogflowV2beta1EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -17836,7 +18365,7 @@ "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.", - "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." + "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." ], "type": "string" } @@ -18068,7 +18597,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -18151,7 +18680,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -18245,13 +18774,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -18456,6 +18987,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowV3alpha1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata": { "description": "Metadata for CreateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata", @@ -18538,6 +19080,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowV3alpha1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "triggeredAbandonmentEvent": { + "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata", @@ -18655,7 +19256,7 @@ "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/dialogflow/v2beta1/dialogflow-api.json b/etc/api/dialogflow/v2beta1/dialogflow-api.json index 47f6d0aaab..00cecc4b48 100644 --- a/etc/api/dialogflow/v2beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v2beta1/dialogflow-api.json @@ -2643,6 +2643,11 @@ "parent" ], "parameters": { + "filter": { + "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" + }, "pageSize": { "description": "Optional. The maximum number of records to return in a single page. The server may return fewer records than this. If unspecified, we use 10. The maximum is 100.", "format": "int32", @@ -3456,6 +3461,39 @@ } } } + }, + "suggestions": { + "methods": { + "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", + "httpMethod": "POST", + "id": "dialogflow.projects.conversations.suggestions.suggestConversationSummary", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+conversation}/suggestions:suggestConversationSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -3943,7 +3981,7 @@ ], "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).", + "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" }, @@ -6091,6 +6129,11 @@ "parent" ], "parameters": { + "filter": { + "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" + }, "pageSize": { "description": "Optional. The maximum number of records to return in a single page. The server may return fewer records than this. If unspecified, we use 10. The maximum is 100.", "format": "int32", @@ -6833,6 +6876,39 @@ } } } + }, + "suggestions": { + "methods": { + "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", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.conversations.suggestions.suggestConversationSummary", + "parameterOrder": [ + "conversation" + ], + "parameters": { + "conversation": { + "description": "Required. The conversation to fetch suggestion for. Format: `projects//locations//conversations/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+conversation}/suggestions:suggestConversationSummary", + "request": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } } } }, @@ -7431,7 +7507,7 @@ } } }, - "revision": "20220228", + "revision": "20230110", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AudioInput": { @@ -7515,6 +7591,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3ConversationTurn", @@ -7716,6 +7803,10 @@ "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -7753,6 +7844,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3EventHandler", @@ -7943,7 +8048,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -8300,7 +8405,7 @@ "id": "GoogleCloudDialogflowCxV3Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -8457,6 +8562,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -8807,7 +8916,11 @@ "id": "GoogleCloudDialogflowCxV3TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -8912,6 +9025,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata", @@ -8923,8 +9091,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3WebhookRequest", "properties": { "detectIntentResponseId": { @@ -8994,7 +9228,7 @@ "id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -9122,6 +9356,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3beta1AudioInput", @@ -9203,6 +9452,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", @@ -9404,6 +9664,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -9441,6 +9705,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3beta1EventHandler", @@ -9631,7 +9909,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -9988,7 +10266,7 @@ "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -10145,6 +10423,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -10495,7 +10777,11 @@ "id": "GoogleCloudDialogflowCxV3beta1TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -10600,6 +10886,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata", @@ -10611,8 +10952,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3beta1Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", "properties": { "detectIntentResponseId": { @@ -10682,7 +11089,7 @@ "id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -10810,6 +11217,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2AnnotatedMessagePart": { "description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", "id": "GoogleCloudDialogflowV2AnnotatedMessagePart", @@ -10955,9 +11377,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -11097,7 +11519,12 @@ "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { "description": "Metadata for ConversationDatasets.", "id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", - "properties": {}, + "properties": { + "conversationDataset": { + "description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", + "type": "string" + } + }, "type": "object" }, "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { @@ -11293,7 +11720,7 @@ "id": "GoogleCloudDialogflowV2EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -12528,7 +12955,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -12607,7 +13034,7 @@ "type": "object" }, "GoogleCloudDialogflowV2Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -12705,9 +13132,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -13127,6 +13554,22 @@ "$ref": "GoogleCloudDialogflowV2beta1AssistQueryParameters", "description": "Parameters for a human assist query." }, + "audioInput": { + "$ref": "GoogleCloudDialogflowV2beta1AudioInput", + "description": "The natural language speech audio to be processed." + }, + "cxCurrentPage": { + "description": "The unique identifier of the CX page to override the `current_page` in the session. Format: `projects//locations//agents//flows//pages/`. If `cx_current_page` is specified, the previous state of the session will be ignored by Dialogflow CX, including the previous page and the previous session parameters. In most cases, `cx_current_page` and `cx_parameters` should be configured together to direct a session to a specific state. Note: this field should only be used if you are connecting to a Dialogflow CX agent.", + "type": "string" + }, + "cxParameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional parameters to be put into Dialogflow CX session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. Note: this field should only be used if you are connecting to a Dialogflow CX agent.", + "type": "object" + }, "eventInput": { "$ref": "GoogleCloudDialogflowV2beta1EventInput", "description": "An input event to send to Dialogflow." @@ -13168,14 +13611,14 @@ "description": "Indicates the parameters of DTMF." }, "endUserSuggestionResults": { - "description": "The suggestions for end user. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.end_user_suggestion_config.", + "description": "The suggestions for end user. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.end_user_suggestion_config. Same as human_agent_suggestion_results, any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", "items": { "$ref": "GoogleCloudDialogflowV2beta1SuggestionResult" }, "type": "array" }, "humanAgentSuggestionResults": { - "description": "The suggestions for most recent human agent. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.human_agent_suggestion_config.", + "description": "The suggestions for most recent human agent. The order is the same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of HumanAgentAssistantConfig.human_agent_suggestion_config. Note that any failure of Agent Assist features will not lead to the overall failure of an AnalyzeContent API call. Instead, the features will fail silently with the error field set in the corresponding SuggestionResult.", "items": { "$ref": "GoogleCloudDialogflowV2beta1SuggestionResult" }, @@ -13326,6 +13769,22 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1AudioInput": { + "description": "Represents the natural language speech audio to be processed.", + "id": "GoogleCloudDialogflowV2beta1AudioInput", + "properties": { + "audio": { + "description": "Required. The natural language speech audio to be processed. A single request can contain up to 1 minute of speech audio data. The transcribed text cannot contain more than 256 bytes for virtual agent interactions.", + "format": "byte", + "type": "string" + }, + "config": { + "$ref": "GoogleCloudDialogflowV2beta1InputAudioConfig", + "description": "Required. Instructs the speech recognizer how to process the speech audio." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1AutomatedAgentConfig": { "description": "Defines the Automated Agent to connect to a conversation.", "id": "GoogleCloudDialogflowV2beta1AutomatedAgentConfig", @@ -13359,6 +13818,10 @@ ], "type": "string" }, + "cxCurrentPage": { + "description": "The unique identifier of the current Dialogflow CX conversation page. Format: `projects//locations//agents//flows//pages/`.", + "type": "string" + }, "cxSessionParameters": { "additionalProperties": { "description": "Properties of the object.", @@ -13640,13 +14103,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -13679,13 +14144,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -13842,6 +14309,7 @@ "TYPE_UNSPECIFIED", "CONVERSATION_STARTED", "CONVERSATION_FINISHED", + "HUMAN_INTERVENTION_NEEDED", "NEW_MESSAGE", "UNRECOVERABLE_ERROR" ], @@ -13849,6 +14317,7 @@ "Type not set.", "A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", "An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", + "An existing conversation has received notification from Dialogflow that human intervention is required.", "An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", "Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." ], @@ -14321,7 +14790,7 @@ "id": "GoogleCloudDialogflowV2beta1EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -14344,7 +14813,7 @@ "id": "GoogleCloudDialogflowV2beta1ExportAgentRequest", "properties": { "agentUri": { - "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline.", + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -14551,7 +15020,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationModelConfig": { - "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY.", + "description": "Custom conversation models used in agent assist feature. Supported feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY, CONVERSATION_SUMMARIZATION.", "id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantConfigConversationModelConfig", "properties": { "model": { @@ -14824,7 +15293,7 @@ "type": "string" }, "agentUri": { - "description": "The URI to a Google Cloud Storage file containing the agent to import. Note: The URI must start with \"gs://\".", + "description": "The URI to a Google Cloud Storage file containing the agent to import. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -16180,7 +16649,7 @@ "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.", - "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." + "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." ], "type": "string" } @@ -16898,7 +17367,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -17007,6 +17476,10 @@ "$ref": "GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff", "description": "Hands off conversation to a live agent." }, + "mixedAudio": { + "$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", + "description": "An audio response message composed of both the synthesized Dialogflow agent responses and the audios hosted in places known to the client." + }, "payload": { "additionalProperties": { "description": "Properties of the object.", @@ -17047,6 +17520,40 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio": { + "description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs.", + "id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", + "properties": { + "segments": { + "description": "Segments this audio response is composed of.", + "items": { + "$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment": { + "description": "Represents one segment of audio.", + "id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment", + "properties": { + "allowPlaybackInterruption": { + "description": "Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", + "type": "boolean" + }, + "audio": { + "description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", + "format": "byte", + "type": "string" + }, + "uri": { + "description": "Client-specific URI that points to an audio clip accessible to the client.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall": { "description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", "id": "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall", @@ -17086,7 +17593,7 @@ "type": "string" }, "agentUri": { - "description": "The URI to a Google Cloud Storage file containing the agent to restore. Note: The URI must start with \"gs://\".", + "description": "The URI to a Google Cloud Storage file containing the agent to restore. Note: The URI must start with \"gs://\". Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -17111,7 +17618,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -17216,13 +17723,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -17299,6 +17808,10 @@ "description": "Configures speech transcription for ConversationProfile.", "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.", + "type": "string" + }, "speechModelVariant": { "description": "The speech model used in speech to text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and StreamingAnalyzeContentRequest request. If enhanced model variant is specified and an enhanced version of the specified model for the language does not exist, then it would emit an error.", "enum": [ @@ -17376,6 +17889,64 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest": { + "description": "The request message for Conversations.SuggestConversationSummary.", + "id": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest", + "properties": { + "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", + "type": "integer" + }, + "latestMessage": { + "description": "The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponse": { + "description": "The response message for Conversations.SuggestConversationSummary.", + "id": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponse", + "properties": { + "contextSize": { + "description": "Number of messages prior to and including last_conversation_message used to compile the suggestion. It may be smaller than the SuggestSummaryRequest.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. Format: `projects//locations//conversations//messages/`.", + "type": "string" + }, + "summary": { + "$ref": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponseSummary", + "description": "Generated summary." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponseSummary": { + "description": "Generated summary for a conversation.", + "id": "GoogleCloudDialogflowV2beta1SuggestConversationSummaryResponseSummary", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: \"projects//answerRecords/\"", + "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" + }, "GoogleCloudDialogflowV2beta1SuggestFaqAnswersRequest": { "description": "The request message for Participants.SuggestFaqAnswers.", "id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersRequest", @@ -17574,13 +18145,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -17704,7 +18277,7 @@ "type": "string" }, "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. Text length must not exceed 256 characters for virtual agent interactions.", "type": "string" } }, @@ -17967,6 +18540,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowV3alpha1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata": { "description": "Metadata for CreateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata", @@ -18049,6 +18633,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowV3alpha1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "triggeredAbandonmentEvent": { + "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata", @@ -18166,7 +18809,7 @@ "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/dialogflow/v3/dialogflow-api.json b/etc/api/dialogflow/v3/dialogflow-api.json index 1c57ded539..4ec88aabb8 100644 --- a/etc/api/dialogflow/v3/dialogflow-api.json +++ b/etc/api/dialogflow/v3/dialogflow-api.json @@ -148,7 +148,7 @@ ], "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).", + "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" }, @@ -3078,7 +3078,7 @@ ] }, "import": { - "description": "Imports the test cases from a Cloud Storage bucket or a local file. It always creates new test cases and won't overwite any existing ones. The provided ID in the imported test case is neglected. 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`: ImportTestCasesMetadata - `response`: ImportTestCasesResponse", + "description": "Imports the test cases from a Cloud Storage bucket or a local file. It always creates new test cases and won't overwrite any existing ones. The provided ID in the imported test case is neglected. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportTestCasesMetadata - `response`: ImportTestCasesResponse", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:import", "httpMethod": "POST", "id": "dialogflow.projects.locations.agents.testCases.import", @@ -3820,11 +3820,11 @@ } } }, - "revision": "20220228", + "revision": "20230110", "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. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "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": { "loggingSettings": { @@ -3881,6 +3881,10 @@ "description": "Indicates if stackdriver logging is enabled for the agent. Please use agent.advanced_settings instead.", "type": "boolean" }, + "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" + }, "name": { "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" @@ -4136,6 +4140,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3ConversationTurn", @@ -4566,6 +4581,10 @@ "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -4603,6 +4622,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3EventHandler", @@ -4877,7 +4910,19 @@ "id": "GoogleCloudDialogflowCxV3ExportAgentRequest", "properties": { "agentUri": { - "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline.", + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", + "type": "string" + }, + "dataFormat": { + "description": "Optional. The data format of the exported agent. If not specified, `BLOB` is assumed.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "BLOB" + ], + "enumDescriptions": [ + "Unspecified format.", + "Agent content will be exported as raw bytes." + ], "type": "string" }, "environment": { @@ -4908,7 +4953,7 @@ "id": "GoogleCloudDialogflowCxV3ExportFlowRequest", "properties": { "flowUri": { - "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the flow to. The format of this URI must be `gs:///`. If left unspecified, the serialized flow is returned inline.", + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the flow to. The format of this URI must be `gs:///`. If left unspecified, the serialized flow is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" }, "includeReferencedFlows": { @@ -4963,7 +5008,7 @@ "type": "string" }, "gcsUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the test cases to. The format of this URI must be `gs:///`. If unspecified, the serialized test cases is returned inline.", + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the test cases to. The format of this URI must be `gs:///`. If unspecified, the serialized test cases is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -5020,7 +5065,7 @@ "type": "array" }, "transitionRoutes": { - "description": "A flow's transition routes serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition routes and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.", + "description": "A flow's transition routes serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition routes and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.", "items": { "$ref": "GoogleCloudDialogflowCxV3TransitionRoute" }, @@ -5192,7 +5237,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -5323,7 +5368,7 @@ "type": "string" }, "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:///`.", + "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" }, "importOption": { @@ -5378,7 +5423,7 @@ "type": "string" }, "gcsUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import test cases from. The format of this URI must be `gs:///`.", + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import test cases from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -6003,7 +6048,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters extracted from the query. 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 extracted from the query. 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" }, "resolvedInput": { @@ -6143,7 +6188,7 @@ "id": "GoogleCloudDialogflowCxV3Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -6293,6 +6338,10 @@ "description": "Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.", "type": "boolean" }, + "channel": { + "description": "The channel which this query is for. If specified, only the ResponseMessage associated with the channel will be returned. If no ResponseMessage is associated with the channel, it falls back to the ResponseMessage with unspecified channel. If unspecified, the ResponseMessage with unspecified channel will be returned.", + "type": "string" + }, "currentPage": { "description": "The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//flows//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.", "type": "string" @@ -6317,7 +6366,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Additional parameters to be put into session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. You can reference the session parameters in the agent with the following format: $session.params.parameter-id. 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": "Additional parameters to be put into session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. You can reference the session parameters in the agent with the following format: $session.params.parameter-id. 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" }, "payload": { @@ -6362,7 +6411,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The free-form diagnostic info. For example, this field could contain webhook call latency. The string keys of the Struct's fields map can change without notice.", + "description": "The free-form diagnostic info. For example, this field could contain webhook call latency. The fields of this data can change without notice, so you should not write code that depends on its structure. One of the fields is called \"Alternative Matched Intents\", which may aid with debugging. The following describes these intent results: - The list is empty if no intent was matched to end-user input. - Only intents that are referenced in the currently active flow are included. - The matched intent is included. - Other intents that could have matched end-user input, but did not match because they are referenced by intent routes that are out of [scope](https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope), are included. - Other intents referenced by intent routes in scope that matched end-user input, but had a lower confidence score.", "type": "object" }, "dtmf": { @@ -6391,7 +6440,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collected session 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 collected session 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" }, "responseMessages": { @@ -6472,6 +6521,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -6664,7 +6717,7 @@ "type": "string" }, "agentUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to restore agent from. The format of this URI must be `gs:///`.", + "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" }, "restoreOption": { @@ -6811,6 +6864,10 @@ "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", "properties": { + "audioExportSettings": { + "$ref": "GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings", + "description": "Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent." + }, "deidentifyTemplate": { "description": "[DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.", "type": "string" @@ -6871,13 +6928,48 @@ "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. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use Dialogflow's default TTL. Note: Interaction logging is a limited access feature. Talk to your Google representative to check availability for you.", + "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", "type": "integer" } }, "type": "object" }, + "GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings": { + "description": "Settings for exporting audio.", + "id": "GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings", + "properties": { + "audioExportPattern": { + "description": "Filename pattern for exported audio.", + "type": "string" + }, + "audioFormat": { + "description": "File format for exported audio file. Currently only in telephony recordings.", + "enum": [ + "AUDIO_FORMAT_UNSPECIFIED", + "MULAW", + "MP3", + "OGG" + ], + "enumDescriptions": [ + "Unspecified. Do not use.", + "G.711 mu-law PCM with 8kHz sample rate.", + "MP3 file format.", + "OGG Vorbis." + ], + "type": "string" + }, + "enableAudioRedaction": { + "description": "Enable audio redaction if it is true.", + "type": "boolean" + }, + "gcsBucket": { + "description": "Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings": { "description": "Settings for exporting conversations to [Insights](https://cloud.google.com/contact-center/insights/docs).", "id": "GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings", @@ -7120,7 +7212,11 @@ "id": "GoogleCloudDialogflowCxV3TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -7302,7 +7398,7 @@ "id": "GoogleCloudDialogflowCxV3TransitionRouteGroup", "properties": { "displayName": { - "description": "Required. The human-readable name of the transition route group, unique within the Agent. The display name can be no longer than 30 characters.", + "description": "Required. The human-readable name of the transition route group, unique within the flow. The display name can be no longer than 30 characters.", "type": "string" }, "name": { @@ -7376,6 +7472,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata", @@ -7647,7 +7798,7 @@ "id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", "properties": { "allowedCaCerts": { - "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\")", + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", "items": { "format": "byte", "type": "string" @@ -7677,7 +7828,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3WebhookRequest", "properties": { "detectIntentResponseId": { @@ -7747,7 +7898,7 @@ "id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -7971,6 +8122,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", @@ -8172,6 +8334,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -8209,6 +8375,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3beta1EventHandler", @@ -8399,7 +8579,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -8756,7 +8936,7 @@ "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -8913,6 +9093,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -9263,7 +9447,11 @@ "id": "GoogleCloudDialogflowCxV3beta1TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -9368,6 +9556,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata", @@ -9379,8 +9622,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3beta1Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", "properties": { "detectIntentResponseId": { @@ -9450,7 +9759,7 @@ "id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -9578,6 +9887,21 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2AnnotatedMessagePart": { "description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", "id": "GoogleCloudDialogflowV2AnnotatedMessagePart", @@ -9723,9 +10047,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -9865,7 +10189,12 @@ "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { "description": "Metadata for ConversationDatasets.", "id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", - "properties": {}, + "properties": { + "conversationDataset": { + "description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", + "type": "string" + } + }, "type": "object" }, "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { @@ -10061,7 +10390,7 @@ "id": "GoogleCloudDialogflowV2EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -11296,7 +11625,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -11375,7 +11704,7 @@ "type": "object" }, "GoogleCloudDialogflowV2Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -11473,9 +11802,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -11818,13 +12147,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -11877,6 +12208,7 @@ "TYPE_UNSPECIFIED", "CONVERSATION_STARTED", "CONVERSATION_FINISHED", + "HUMAN_INTERVENTION_NEEDED", "NEW_MESSAGE", "UNRECOVERABLE_ERROR" ], @@ -11884,6 +12216,7 @@ "Type not set.", "A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", "An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", + "An existing conversation has received notification from Dialogflow that human intervention is required.", "An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", "Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." ], @@ -11969,7 +12302,7 @@ "id": "GoogleCloudDialogflowV2beta1EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -13272,7 +13605,7 @@ "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.", - "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." + "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." ], "type": "string" } @@ -13504,7 +13837,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -13587,7 +13920,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -13681,13 +14014,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -13892,6 +14227,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowV3alpha1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata": { "description": "Metadata for CreateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata", @@ -13974,6 +14320,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowV3alpha1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "triggeredAbandonmentEvent": { + "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata", @@ -14091,7 +14496,7 @@ "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/dialogflow/v3beta1/dialogflow-api.json b/etc/api/dialogflow/v3beta1/dialogflow-api.json index 032a32f4bd..08838d8dd6 100644 --- a/etc/api/dialogflow/v3beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v3beta1/dialogflow-api.json @@ -148,7 +148,7 @@ ], "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).", + "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" }, @@ -3078,7 +3078,7 @@ ] }, "import": { - "description": "Imports the test cases from a Cloud Storage bucket or a local file. It always creates new test cases and won't overwite any existing ones. The provided ID in the imported test case is neglected. 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`: ImportTestCasesMetadata - `response`: ImportTestCasesResponse", + "description": "Imports the test cases from a Cloud Storage bucket or a local file. It always creates new test cases and won't overwrite any existing ones. The provided ID in the imported test case is neglected. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportTestCasesMetadata - `response`: ImportTestCasesResponse", "flatPath": "v3beta1/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:import", "httpMethod": "POST", "id": "dialogflow.projects.locations.agents.testCases.import", @@ -3820,7 +3820,7 @@ } } }, - "revision": "20220228", + "revision": "20230110", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AudioInput": { @@ -3904,6 +3904,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3ConversationTurn", @@ -4105,6 +4116,10 @@ "$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -4142,6 +4157,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3EventHandler", @@ -4332,7 +4361,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -4689,7 +4718,7 @@ "id": "GoogleCloudDialogflowCxV3Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -4846,6 +4875,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -5196,7 +5229,11 @@ "id": "GoogleCloudDialogflowCxV3TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -5301,6 +5338,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3UpdateDocumentOperationMetadata", @@ -5312,8 +5404,74 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3Webhook": { + "description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", + "id": "GoogleCloudDialogflowCxV3Webhook", + "properties": { + "disabled": { + "description": "Indicates whether the webhook is disabled.", + "type": "boolean" + }, + "displayName": { + "description": "Required. The human-readable name of the webhook, unique within the agent.", + "type": "string" + }, + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Configuration for a generic web service." + }, + "name": { + "description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", + "type": "string" + }, + "serviceDirectory": { + "$ref": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." + }, + "timeout": { + "description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3WebhookGenericWebService": { + "description": "Represents configuration for a generic web service.", + "id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "properties": { + "allowedCaCerts": { + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "password": { + "description": "The password for HTTP Basic authentication.", + "type": "string" + }, + "requestHeaders": { + "additionalProperties": { + "type": "string" + }, + "description": "The HTTP request headers to send together with webhook requests.", + "type": "object" + }, + "uri": { + "description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", + "type": "string" + }, + "username": { + "description": "The user name for HTTP Basic authentication.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3WebhookRequest", "properties": { "detectIntentResponseId": { @@ -5383,7 +5541,7 @@ "id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -5511,8 +5669,23 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig": { + "description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", + "id": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", + "properties": { + "genericWebService": { + "$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", + "description": "Generic Service configuration of this webhook." + }, + "service": { + "description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", + "type": "string" + } + }, + "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. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", + "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": { "loggingSettings": { @@ -5569,6 +5742,10 @@ "description": "Indicates if stackdriver logging is enabled for the agent. Please use agent.advanced_settings instead.", "type": "boolean" }, + "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" + }, "name": { "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" @@ -5824,6 +6001,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ConversationTurn": { "description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", "id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", @@ -6254,6 +6442,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" }, "type": "array" + }, + "webhookConfig": { + "$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "description": "The webhook configuration for this environment." } }, "type": "object" @@ -6291,6 +6483,20 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { + "description": "Configuration for webhooks.", + "id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", + "properties": { + "webhookOverrides": { + "description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1Webhook" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1EventHandler": { "description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", "id": "GoogleCloudDialogflowCxV3beta1EventHandler", @@ -6565,7 +6771,19 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportAgentRequest", "properties": { "agentUri": { - "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline.", + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", + "type": "string" + }, + "dataFormat": { + "description": "Optional. The data format of the exported agent. If not specified, `BLOB` is assumed.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "BLOB" + ], + "enumDescriptions": [ + "Unspecified format.", + "Agent content will be exported as raw bytes." + ], "type": "string" }, "environment": { @@ -6596,7 +6814,7 @@ "id": "GoogleCloudDialogflowCxV3beta1ExportFlowRequest", "properties": { "flowUri": { - "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the flow to. The format of this URI must be `gs:///`. If left unspecified, the serialized flow is returned inline.", + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the flow to. The format of this URI must be `gs:///`. If left unspecified, the serialized flow is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" }, "includeReferencedFlows": { @@ -6651,7 +6869,7 @@ "type": "string" }, "gcsUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the test cases to. The format of this URI must be `gs:///`. If unspecified, the serialized test cases is returned inline.", + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the test cases to. The format of this URI must be `gs:///`. If unspecified, the serialized test cases is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -6708,7 +6926,7 @@ "type": "array" }, "transitionRoutes": { - "description": "A flow's transition routes serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition routes and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified.. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.", + "description": "A flow's transition routes serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition routes and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.", "items": { "$ref": "GoogleCloudDialogflowCxV3beta1TransitionRoute" }, @@ -6880,7 +7098,7 @@ "type": "array" }, "tag": { - "description": "The tag used by the webhook to identify which fulfillment is being called. This field is required if `webhook` is specified.", + "description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", "type": "string" }, "webhook": { @@ -7011,7 +7229,7 @@ "type": "string" }, "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:///`.", + "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" }, "importOption": { @@ -7066,7 +7284,7 @@ "type": "string" }, "gcsUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import test cases from. The format of this URI must be `gs:///`.", + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import test cases from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", "type": "string" } }, @@ -7691,7 +7909,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collection of parameters extracted from the query. 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 extracted from the query. 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" }, "resolvedInput": { @@ -7831,7 +8049,7 @@ "id": "GoogleCloudDialogflowCxV3beta1Page", "properties": { "displayName": { - "description": "Required. The human-readable name of the page, unique within the agent.", + "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" }, "entryFulfillment": { @@ -7981,6 +8199,10 @@ "description": "Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.", "type": "boolean" }, + "channel": { + "description": "The channel which this query is for. If specified, only the ResponseMessage associated with the channel will be returned. If no ResponseMessage is associated with the channel, it falls back to the ResponseMessage with unspecified channel. If unspecified, the ResponseMessage with unspecified channel will be returned.", + "type": "string" + }, "currentPage": { "description": "The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//flows//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.", "type": "string" @@ -8005,7 +8227,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Additional parameters to be put into session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. You can reference the session parameters in the agent with the following format: $session.params.parameter-id. 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": "Additional parameters to be put into session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. You can reference the session parameters in the agent with the following format: $session.params.parameter-id. 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" }, "payload": { @@ -8050,7 +8272,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The free-form diagnostic info. For example, this field could contain webhook call latency. The string keys of the Struct's fields map can change without notice.", + "description": "The free-form diagnostic info. For example, this field could contain webhook call latency. The fields of this data can change without notice, so you should not write code that depends on its structure. One of the fields is called \"Alternative Matched Intents\", which may aid with debugging. The following describes these intent results: - The list is empty if no intent was matched to end-user input. - Only intents that are referenced in the currently active flow are included. - The matched intent is included. - Other intents that could have matched end-user input, but did not match because they are referenced by intent routes that are out of [scope](https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope), are included. - Other intents referenced by intent routes in scope that matched end-user input, but had a lower confidence score.", "type": "object" }, "dtmf": { @@ -8079,7 +8301,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "The collected session 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 collected session 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" }, "responseMessages": { @@ -8160,6 +8382,10 @@ "description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", "id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", "properties": { + "channel": { + "description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", + "type": "string" + }, "conversationSuccess": { "$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", "description": "Indicates that the conversation succeeded." @@ -8352,7 +8578,7 @@ "type": "string" }, "agentUri": { - "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to restore agent from. The format of this URI must be `gs:///`.", + "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" }, "restoreOption": { @@ -8499,6 +8725,10 @@ "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", "properties": { + "audioExportSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1SecuritySettingsAudioExportSettings", + "description": "Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent." + }, "deidentifyTemplate": { "description": "[DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.", "type": "string" @@ -8559,13 +8789,48 @@ "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. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use Dialogflow's default TTL. Note: Interaction logging is a limited access feature. Talk to your Google representative to check availability for you.", + "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.", "format": "int32", "type": "integer" } }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1SecuritySettingsAudioExportSettings": { + "description": "Settings for exporting audio.", + "id": "GoogleCloudDialogflowCxV3beta1SecuritySettingsAudioExportSettings", + "properties": { + "audioExportPattern": { + "description": "Filename pattern for exported audio.", + "type": "string" + }, + "audioFormat": { + "description": "File format for exported audio file. Currently only in telephony recordings.", + "enum": [ + "AUDIO_FORMAT_UNSPECIFIED", + "MULAW", + "MP3", + "OGG" + ], + "enumDescriptions": [ + "Unspecified. Do not use.", + "G.711 mu-law PCM with 8kHz sample rate.", + "MP3 file format.", + "OGG Vorbis." + ], + "type": "string" + }, + "enableAudioRedaction": { + "description": "Enable audio redaction if it is true.", + "type": "boolean" + }, + "gcsBucket": { + "description": "Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1SecuritySettingsInsightsExportSettings": { "description": "Settings for exporting conversations to [Insights](https://cloud.google.com/contact-center/insights/docs).", "id": "GoogleCloudDialogflowCxV3beta1SecuritySettingsInsightsExportSettings", @@ -8808,7 +9073,11 @@ "id": "GoogleCloudDialogflowCxV3beta1TestConfig", "properties": { "flow": { - "description": "Flow name. If not set, default start flow is assumed. Format: `projects//locations//agents//flows/`.", + "description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", + "type": "string" + }, + "page": { + "description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If both are set, `page` takes precedence over `flow`. If neither is set, the test case will start with start page on the default start flow.", "type": "string" }, "trackingParameters": { @@ -8990,7 +9259,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TransitionRouteGroup", "properties": { "displayName": { - "description": "Required. The human-readable name of the transition route group, unique within the Agent. The display name can be no longer than 30 characters.", + "description": "Required. The human-readable name of the transition route group, unique within the flow. The display name can be no longer than 30 characters.", "type": "string" }, "name": { @@ -9064,6 +9333,61 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowCxV3beta1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1UpdateDocumentOperationMetadata", @@ -9335,7 +9659,7 @@ "id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", "properties": { "allowedCaCerts": { - "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\")", + "description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", "items": { "format": "byte", "type": "string" @@ -9365,7 +9689,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1WebhookRequest": { - "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases.", + "description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", "id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", "properties": { "detectIntentResponseId": { @@ -9435,7 +9759,7 @@ "id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", "properties": { "tag": { - "description": "Always present. The tag used to identify which fulfillment is being called.", + "description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", "type": "string" } }, @@ -9723,9 +10047,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -9865,7 +10189,12 @@ "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { "description": "Metadata for ConversationDatasets.", "id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", - "properties": {}, + "properties": { + "conversationDataset": { + "description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", + "type": "string" + } + }, "type": "object" }, "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { @@ -10061,7 +10390,7 @@ "id": "GoogleCloudDialogflowV2EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -11296,7 +11625,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -11375,7 +11704,7 @@ "type": "object" }, "GoogleCloudDialogflowV2Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -11473,9 +11802,9 @@ ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", - "Run FAQ model.", - "Run smart reply model." + "Run article suggestion model for chat.", + "Run FAQ model for chat.", + "Run smart reply model for chat." ], "type": "string" } @@ -11818,13 +12147,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -11877,6 +12208,7 @@ "TYPE_UNSPECIFIED", "CONVERSATION_STARTED", "CONVERSATION_FINISHED", + "HUMAN_INTERVENTION_NEEDED", "NEW_MESSAGE", "UNRECOVERABLE_ERROR" ], @@ -11884,6 +12216,7 @@ "Type not set.", "A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", "An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", + "An existing conversation has received notification from Dialogflow that human intervention is required.", "An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", "Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." ], @@ -11969,7 +12302,7 @@ "id": "GoogleCloudDialogflowV2beta1EventInput", "properties": { "languageCode": { - "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", + "description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", "type": "string" }, "name": { @@ -13272,7 +13605,7 @@ "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.", - "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." + "Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." ], "type": "string" } @@ -13504,7 +13837,7 @@ "type": "boolean" }, "cancelsSlotFilling": { - "description": "Indicates whether the conversational query triggers a cancellation for slot filling.", + "description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", "type": "boolean" }, "diagnosticInfo": { @@ -13587,7 +13920,7 @@ "type": "object" }, "GoogleCloudDialogflowV2beta1Sentiment": { - "description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text.", + "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", "properties": { "magnitude": { @@ -13681,13 +14014,15 @@ "TYPE_UNSPECIFIED", "ARTICLE_SUGGESTION", "FAQ", - "SMART_REPLY" + "SMART_REPLY", + "CONVERSATION_SUMMARIZATION" ], "enumDescriptions": [ "Unspecified feature type.", - "Run article suggestion model.", + "Run article suggestion model for chat.", "Run FAQ model.", - "Run smart reply model." + "Run smart reply model for chat.", + "Run conversation summarization model for chat." ], "type": "string" } @@ -13892,6 +14227,17 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1ConversationSignals": { + "description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", + "id": "GoogleCloudDialogflowV3alpha1ConversationSignals", + "properties": { + "turnSignals": { + "$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", + "description": "Required. Turn signals for the current turn." + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata": { "description": "Metadata for CreateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1CreateDocumentOperationMetadata", @@ -13974,6 +14320,65 @@ }, "type": "object" }, + "GoogleCloudDialogflowV3alpha1TurnSignals": { + "description": "Collection of all signals that were extracted for a single turn of the conversation.", + "id": "GoogleCloudDialogflowV3alpha1TurnSignals", + "properties": { + "agentEscalated": { + "description": "Whether agent responded with LiveAgentHandoff fulfillment.", + "type": "boolean" + }, + "dtmfUsed": { + "description": "Whether user was using DTMF input.", + "type": "boolean" + }, + "failureReasons": { + "description": "Failure reasons of the turn.", + "items": { + "enum": [ + "FAILURE_REASON_UNSPECIFIED", + "FAILED_INTENT", + "FAILED_WEBHOOK" + ], + "enumDescriptions": [ + "Failure reason is not assigned.", + "Whether NLU failed to recognize user intent.", + "Whether webhook failed during the turn." + ], + "type": "string" + }, + "type": "array" + }, + "noMatch": { + "description": "Whether NLU predicted NO_MATCH.", + "type": "boolean" + }, + "noUserInput": { + "description": "Whether user provided no input.", + "type": "boolean" + }, + "reachedEndPage": { + "description": "Whether turn resulted in End Session page.", + "type": "boolean" + }, + "triggeredAbandonmentEvent": { + "description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", + "type": "boolean" + }, + "userEscalated": { + "description": "Whether user was specifically asking for a live agent.", + "type": "boolean" + }, + "webhookStatuses": { + "description": "Human-readable statuses of the webhooks triggered during this turn.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata": { "description": "Metadata for UpdateDocument operation.", "id": "GoogleCloudDialogflowV3alpha1UpdateDocumentOperationMetadata", @@ -14091,7 +14496,7 @@ "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/digitalassetlinks/v1/digitalassetlinks-api.json b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json index a762b525e5..8f987ac580 100644 --- a/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json +++ b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json @@ -199,7 +199,7 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://digitalassetlinks.googleapis.com/", "schemas": { "AndroidAppAsset": { diff --git a/etc/api/displayvideo/v1/displayvideo-api.json b/etc/api/displayvideo/v1/displayvideo-api.json index 73f7b3d23a..64837d9bf0 100644 --- a/etc/api/displayvideo/v1/displayvideo-api.json +++ b/etc/api/displayvideo/v1/displayvideo-api.json @@ -312,7 +312,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -607,7 +607,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -756,9 +756,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -801,9 +804,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -910,9 +916,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -955,9 +964,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -1085,7 +1097,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -1513,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` * For `entityStatus`, `minDuration`, `maxDuration`, 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. * 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` The length of this field should be no more than 500 characters.", + "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.", "location": "query", "type": "string" }, @@ -1523,7 +1535,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -1694,7 +1706,7 @@ "type": "string" }, "insertionOrderId": { - "description": "The ID of the insertion order we need to delete.", + "description": "The ID of the insertion order to delete.", "format": "int64", "location": "path", "pattern": "^[^/]+$", @@ -1920,9 +1932,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -1965,9 +1980,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -2074,9 +2092,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2119,9 +2140,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -2183,7 +2207,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -2240,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: * BulkEditLineItemAssignedTargetingOptions * 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: * UpdateLineItem * CreateLineItemAssignedTargetingOption * DeleteLineItemAssignedTargetingOption", "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions", @@ -2381,7 +2405,7 @@ "type": "string" }, "lineItemId": { - "description": "The ID of the line item we need to fetch.", + "description": "The ID of the line item to delete.", "format": "int64", "location": "path", "pattern": "^[^/]+$", @@ -2484,12 +2508,12 @@ "type": "string" }, "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * \u201cflight.dateRange.endDate\u201d * \"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` * `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`.", "location": "query", "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -2509,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: * BulkEditLineItemAssignedTargetingOptions * UpdateLineItem * 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 * CreateLineItemAssignedTargetingOption * DeleteLineItemAssignedTargetingOption", "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.lineItems.patch", @@ -2559,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: * BulkEditLineItemAssignedTargetingOptions * UpdateLineItem * CreateLineItemAssignedTargetingOption * 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: * BulkEditAssignedTargetingOptions * BulkUpdate * UpdateLineItem * DeleteLineItemAssignedTargetingOption", "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", @@ -2628,9 +2652,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2673,9 +2700,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -2695,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: * BulkEditLineItemAssignedTargetingOptions * UpdateLineItem * CreateLineItemAssignedTargetingOption * DeleteLineItemAssignedTargetingOption", + "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", "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", @@ -2772,9 +2802,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2817,9 +2850,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -2913,9 +2949,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -2958,9 +2997,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -3067,9 +3109,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -3112,9 +3157,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -3230,7 +3278,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -3446,7 +3494,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -3639,7 +3687,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -3823,7 +3871,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -4167,9 +4215,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4212,9 +4263,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -4302,9 +4356,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4347,9 +4404,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -4434,9 +4494,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4479,9 +4542,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -4579,9 +4645,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -4624,9 +4693,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -4712,7 +4784,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -4811,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` - `customBiddingAlgorithmState` * 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. * For `customBiddingAlgorithmState`, the value is a string. We return all algorithms whose custom_bidding_algorithm_state 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` * All custom bidding algorithms for which the state is \"ENABLED\": `customBiddingAlgorithmState=ENABLED` 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 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.", "location": "query", "type": "string" }, @@ -4821,7 +4893,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -5040,7 +5112,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -5127,7 +5199,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -5266,7 +5338,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -5474,7 +5546,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -5501,6 +5573,201 @@ } } }, + "guaranteedOrders": { + "methods": { + "create": { + "description": "Creates a new guaranteed order. Returns the newly created guaranteed order if successful.", + "flatPath": "v1/guaranteedOrders", + "httpMethod": "POST", + "id": "displayvideo.guaranteedOrders.create", + "parameterOrder": [], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v1/guaranteedOrders", + "request": { + "$ref": "GuaranteedOrder" + }, + "response": { + "$ref": "GuaranteedOrder" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "editGuaranteedOrderReadAccessors": { + "description": "Edits read advertisers of a guaranteed order.", + "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}:editGuaranteedOrderReadAccessors", + "httpMethod": "POST", + "id": "displayvideo.guaranteedOrders.editGuaranteedOrderReadAccessors", + "parameterOrder": [ + "guaranteedOrderId" + ], + "parameters": { + "guaranteedOrderId": { + "description": "Required. The ID of the guaranteed order to edit. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/guaranteedOrders/{+guaranteedOrderId}:editGuaranteedOrderReadAccessors", + "request": { + "$ref": "EditGuaranteedOrderReadAccessorsRequest" + }, + "response": { + "$ref": "EditGuaranteedOrderReadAccessorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "get": { + "description": "Gets a guaranteed order.", + "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", + "httpMethod": "GET", + "id": "displayvideo.guaranteedOrders.get", + "parameterOrder": [ + "guaranteedOrderId" + ], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that has access to the guaranteed order.", + "format": "int64", + "location": "query", + "type": "string" + }, + "guaranteedOrderId": { + "description": "Required. The ID of the guaranteed order to fetch. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that has access to the guaranteed order.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v1/guaranteedOrders/{+guaranteedOrderId}", + "response": { + "$ref": "GuaranteedOrder" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "list": { + "description": "Lists guaranteed orders that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, guaranteed orders with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", + "flatPath": "v1/guaranteedOrders", + "httpMethod": "GET", + "id": "displayvideo.guaranteedOrders.list", + "parameterOrder": [], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that has access to the guaranteed order.", + "format": "int64", + "location": "query", + "type": "string" + }, + "filter": { + "description": "Allows filtering by guaranteed order 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.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGuaranteedOrders` method. If not specified, the first page of results will be returned.", + "location": "query", + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that has access to the guaranteed order.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v1/guaranteedOrders", + "response": { + "$ref": "ListGuaranteedOrdersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "patch": { + "description": "Updates an existing guaranteed order. Returns the updated guaranteed order if successful.", + "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", + "httpMethod": "PATCH", + "id": "displayvideo.guaranteedOrders.patch", + "parameterOrder": [ + "guaranteedOrderId" + ], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "guaranteedOrderId": { + "description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. The mask to control which fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/guaranteedOrders/{+guaranteedOrderId}", + "request": { + "$ref": "GuaranteedOrder" + }, + "response": { + "$ref": "GuaranteedOrder" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + } + } + }, "inventorySourceGroups": { "methods": { "create": { @@ -5634,7 +5901,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -5891,6 +6158,66 @@ }, "inventorySources": { "methods": { + "create": { + "description": "Creates a new inventory source. Returns the newly created inventory source if successful.", + "flatPath": "v1/inventorySources", + "httpMethod": "POST", + "id": "displayvideo.inventorySources.create", + "parameterOrder": [], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v1/inventorySources", + "request": { + "$ref": "InventorySource" + }, + "response": { + "$ref": "InventorySource" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "editInventorySourceReadWriteAccessors": { + "description": "Edits read/write accessors of an inventory source. Returns the updated read_write_accessors for the inventory source.", + "flatPath": "v1/inventorySources/{inventorySourcesId}:editInventorySourceReadWriteAccessors", + "httpMethod": "POST", + "id": "displayvideo.inventorySources.editInventorySourceReadWriteAccessors", + "parameterOrder": [ + "inventorySourceId" + ], + "parameters": { + "inventorySourceId": { + "description": "Required. The ID of inventory source to update.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/inventorySources/{+inventorySourceId}:editInventorySourceReadWriteAccessors", + "request": { + "$ref": "EditInventorySourceReadWriteAccessorsRequest" + }, + "response": { + "$ref": "InventorySourceAccessors" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, "get": { "description": "Gets an inventory source.", "flatPath": "v1/inventorySources/{inventorySourcesId}", @@ -5947,7 +6274,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -5971,6 +6298,53 @@ "scopes": [ "https://www.googleapis.com/auth/display-video" ] + }, + "patch": { + "description": "Updates an existing inventory source. Returns the updated inventory source if successful.", + "flatPath": "v1/inventorySources/{inventorySourcesId}", + "httpMethod": "PATCH", + "id": "displayvideo.inventorySources.patch", + "parameterOrder": [ + "inventorySourceId" + ], + "parameters": { + "advertiserId": { + "description": "The ID of the advertiser that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "inventorySourceId": { + "description": "Output only. The unique ID of the inventory source. Assigned by the system.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "partnerId": { + "description": "The ID of the partner that the request is being made within.", + "format": "int64", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. The mask to control which fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/inventorySources/{+inventorySourceId}", + "request": { + "$ref": "InventorySource" + }, + "response": { + "$ref": "InventorySource" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] } } }, @@ -6121,7 +6495,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -6246,7 +6620,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -6622,9 +6996,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6667,9 +7044,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -6757,9 +7137,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6802,9 +7185,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -6889,9 +7275,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -6934,9 +7323,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -6973,7 +7365,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -7034,9 +7426,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -7079,9 +7474,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -7227,9 +7625,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -7272,9 +7673,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -7316,7 +7720,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "location": "query", "type": "integer" @@ -7369,9 +7773,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -7414,9 +7821,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -7484,9 +7894,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -7529,9 +7942,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "location": "path", "pattern": "^[^/]+$", @@ -7673,7 +8089,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", "format": "int32", "location": "query", "type": "integer" @@ -7730,7 +8146,7 @@ } } }, - "revision": "20220303", + "revision": "20230119", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActivateManualTriggerRequest": { @@ -8382,6 +8798,14 @@ "$ref": "ChannelAssignedTargetingOptionDetails", "description": "Channel details. This field will be populated when the targeting_type is `TARGETING_TYPE_CHANNEL`." }, + "contentDurationDetails": { + "$ref": "ContentDurationAssignedTargetingOptionDetails", + "description": "Content duration details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_DURATION`." + }, + "contentGenreDetails": { + "$ref": "ContentGenreAssignedTargetingOptionDetails", + "description": "Content genre details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_GENRE`." + }, "contentInstreamPositionDetails": { "$ref": "ContentInstreamPositionAssignedTargetingOptionDetails", "description": "Content instream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`." @@ -8390,6 +8814,10 @@ "$ref": "ContentOutstreamPositionAssignedTargetingOptionDetails", "description": "Content outstream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`." }, + "contentStreamTypeDetails": { + "$ref": "ContentStreamTypeAssignedTargetingOptionDetails", + "description": "Content duration details. This field will be populated when the TargetingType is `TARGETING_TYPE_CONTENT_STREAM_TYPE`." + }, "dayAndTimeDetails": { "$ref": "DayAndTimeAssignedTargetingOptionDetails", "description": "Day and time details. This field will be populated when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`." @@ -8551,9 +8979,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -8596,9 +9027,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "readOnly": true, "type": "string" @@ -9939,7 +10373,7 @@ "id": "ContactInfoList", "properties": { "contactInfos": { - "description": "A list of ContactInfo objects defining Customer Match audience members.", + "description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", "items": { "$ref": "ContactInfo" }, @@ -9948,6 +10382,106 @@ }, "type": "object" }, + "ContentDurationAssignedTargetingOptionDetails": { + "description": "Details for content duration assigned targeting option. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. Explicitly targeting all options is not supported. Remove all content duration targeting options to achieve this effect.", + "id": "ContentDurationAssignedTargetingOptionDetails", + "properties": { + "contentDuration": { + "description": "Output only. The content duration.", + "enum": [ + "CONTENT_DURATION_UNSPECIFIED", + "CONTENT_DURATION_UNKNOWN", + "CONTENT_DURATION_0_TO_1_MIN", + "CONTENT_DURATION_1_TO_5_MIN", + "CONTENT_DURATION_5_TO_15_MIN", + "CONTENT_DURATION_15_TO_30_MIN", + "CONTENT_DURATION_30_TO_60_MIN", + "CONTENT_DURATION_OVER_60_MIN" + ], + "enumDescriptions": [ + "Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", + "The content duration is unknown.", + "Content is 0-1 minute long.", + "Content is 1-5 minutes long.", + "Content is 5-15 minutes long.", + "Content is 15-30 minutes long.", + "Content is 30-60 minutes long.", + "Content is over 60 minutes long." + ], + "readOnly": true, + "type": "string" + }, + "targetingOptionId": { + "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", + "type": "string" + } + }, + "type": "object" + }, + "ContentDurationTargetingOptionDetails": { + "description": "Represents a targetable content duration. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", + "id": "ContentDurationTargetingOptionDetails", + "properties": { + "contentDuration": { + "description": "Output only. The content duration.", + "enum": [ + "CONTENT_DURATION_UNSPECIFIED", + "CONTENT_DURATION_UNKNOWN", + "CONTENT_DURATION_0_TO_1_MIN", + "CONTENT_DURATION_1_TO_5_MIN", + "CONTENT_DURATION_5_TO_15_MIN", + "CONTENT_DURATION_15_TO_30_MIN", + "CONTENT_DURATION_30_TO_60_MIN", + "CONTENT_DURATION_OVER_60_MIN" + ], + "enumDescriptions": [ + "Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", + "The content duration is unknown.", + "Content is 0-1 minute long.", + "Content is 1-5 minutes long.", + "Content is 5-15 minutes long.", + "Content is 15-30 minutes long.", + "Content is 30-60 minutes long.", + "Content is over 60 minutes long." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ContentGenreAssignedTargetingOptionDetails": { + "description": "Details for content genre assigned targeting option. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. Explicitly targeting all options is not supported. Remove all content genre targeting options to achieve this effect.", + "id": "ContentGenreAssignedTargetingOptionDetails", + "properties": { + "displayName": { + "description": "Output only. The display name of the content genre.", + "readOnly": true, + "type": "string" + }, + "negative": { + "description": "Indicates if this option is being negatively targeted.", + "type": "boolean" + }, + "targetingOptionId": { + "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", + "type": "string" + } + }, + "type": "object" + }, + "ContentGenreTargetingOptionDetails": { + "description": "Represents a targetable content genre. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", + "id": "ContentGenreTargetingOptionDetails", + "properties": { + "displayName": { + "description": "Output only. The display name of the content genre", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ContentInstreamPositionAssignedTargetingOptionDetails": { "description": "Assigned content instream position targeting option details. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", "id": "ContentInstreamPositionAssignedTargetingOptionDetails", @@ -10096,6 +10630,54 @@ }, "type": "object" }, + "ContentStreamTypeAssignedTargetingOptionDetails": { + "description": "Details for content stream type assigned targeting option. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. Explicitly targeting all options is not supported. Remove all content stream type targeting options to achieve this effect.", + "id": "ContentStreamTypeAssignedTargetingOptionDetails", + "properties": { + "contentStreamType": { + "description": "Output only. The content stream type.", + "enum": [ + "CONTENT_STREAM_TYPE_UNSPECIFIED", + "CONTENT_LIVE_STREAM", + "CONTENT_ON_DEMAND" + ], + "enumDescriptions": [ + "Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", + "The content is being live-streamed.", + "The content is viewed on-demand." + ], + "readOnly": true, + "type": "string" + }, + "targetingOptionId": { + "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", + "type": "string" + } + }, + "type": "object" + }, + "ContentStreamTypeTargetingOptionDetails": { + "description": "Represents a targetable content stream type. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", + "id": "ContentStreamTypeTargetingOptionDetails", + "properties": { + "contentStreamType": { + "description": "Output only. The content stream type.", + "enum": [ + "CONTENT_STREAM_TYPE_UNSPECIFIED", + "CONTENT_LIVE_STREAM", + "CONTENT_ON_DEMAND" + ], + "enumDescriptions": [ + "Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", + "The content is being live-streamed.", + "The content is viewed on-demand." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ConversionCountingConfig": { "description": "Settings that control how conversions are counted. All post-click conversions will be counted. A percentage value can be set for post-view conversions counting.", "id": "ConversionCountingConfig", @@ -10206,9 +10788,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -10251,9 +10836,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "type": "string" } @@ -10298,7 +10886,8 @@ "SDF_VERSION_5_1", "SDF_VERSION_5_2", "SDF_VERSION_5_3", - "SDF_VERSION_5_4" + "SDF_VERSION_5_4", + "SDF_VERSION_5_5" ], "enumDescriptions": [ "SDF version value is not specified or is unknown in this version.", @@ -10310,7 +10899,8 @@ "SDF version 5.1", "SDF version 5.2", "SDF version 5.3", - "SDF version 5.4" + "SDF version 5.4", + "SDF version 5.5" ], "type": "string" } @@ -10658,7 +11248,7 @@ "description": "Optional. An optional creative identifier provided by a registry that is unique across all platforms. Universal Ad ID is part of the VAST 4.0 standard. It can be modified after the creative is created. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" }, "updateTime": { - "description": "Output only. The timestamp when the creative was last updated. Assigned by the system.", + "description": "Output only. The timestamp when the creative was last updated, either by the user or system (e.g. creative review). Assigned by the system.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -10800,6 +11390,14 @@ ], "type": "string" }, + "modelReadiness": { + "description": "Output only. The state of custom bidding model readiness for each advertiser who has access. This field may only include the state of the queried advertiser if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", + "items": { + "$ref": "CustomBiddingModelReadinessState" + }, + "readOnly": true, + "type": "array" + }, "name": { "description": "Output only. The resource name of the custom bidding algorithm.", "readOnly": true, @@ -10821,6 +11419,36 @@ }, "type": "object" }, + "CustomBiddingModelReadinessState": { + "description": "The custom bidding algorithm model readiness state for a single shared advertiser.", + "id": "CustomBiddingModelReadinessState", + "properties": { + "advertiserId": { + "description": "The unique ID of the relevant advertiser.", + "format": "int64", + "type": "string" + }, + "readinessState": { + "description": "The readiness state of custom bidding model.", + "enum": [ + "READINESS_STATE_UNSPECIFIED", + "READINESS_STATE_ACTIVE", + "READINESS_STATE_INSUFFICIENT_DATA", + "READINESS_STATE_TRAINING", + "READINESS_STATE_NO_VALID_SCRIPT" + ], + "enumDescriptions": [ + "State is not specified or is unknown in this version.", + "The model is trained and ready for serving.", + "There is not enough data to train the serving model.", + "The model is training and not ready for serving.", + "A valid custom bidding script has not been provided with which to train the model. This state will only be applied to algorithms whose `custom_bidding_algorithm_type` is `SCRIPT_BASED`." + ], + "type": "string" + } + }, + "type": "object" + }, "CustomBiddingScript": { "description": "A single custom bidding script.", "id": "CustomBiddingScript", @@ -11097,9 +11725,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -11142,9 +11773,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "type": "string" } @@ -11693,8 +12327,101 @@ }, "type": "object" }, + "EditGuaranteedOrderReadAccessorsRequest": { + "description": "Request message for GuaranteedOrderService.EditGuaranteedOrderReadAccessors.", + "id": "EditGuaranteedOrderReadAccessorsRequest", + "properties": { + "addedAdvertisers": { + "description": "The advertisers to add as read accessors to the guaranteed order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "partnerId": { + "description": "Required. The partner context in which the change is being made.", + "format": "int64", + "type": "string" + }, + "readAccessInherited": { + "description": "Whether to give all advertisers of the read/write accessor partner read access to the guaranteed order. Only applicable if read_write_partner_id is set in the guaranteed order.", + "type": "boolean" + }, + "removedAdvertisers": { + "description": "The advertisers to remove as read accessors to the guaranteed order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EditGuaranteedOrderReadAccessorsResponse": { + "id": "EditGuaranteedOrderReadAccessorsResponse", + "properties": { + "readAccessInherited": { + "description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order.", + "type": "boolean" + }, + "readAdvertiserIds": { + "description": "The IDs of advertisers with read access to the guaranteed order.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EditInventorySourceReadWriteAccessorsRequest": { + "description": "Request message for InventorySourceService.EditInventorySourceReadWriteAccessors.", + "id": "EditInventorySourceReadWriteAccessorsRequest", + "properties": { + "advertisersUpdate": { + "$ref": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", + "description": "The advertisers to add or remove from the list of advertisers that have read/write access to the inventory source. This change will remove an existing partner read/write accessor." + }, + "assignPartner": { + "description": "Set the partner context as read/write accessor of the inventory source. This will remove all other current read/write advertiser accessors.", + "type": "boolean" + }, + "partnerId": { + "description": "Required. The partner context by which the accessors change is being made.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate": { + "description": "Update to the list of advertisers with read/write access to the inventory source.", + "id": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", + "properties": { + "addedAdvertisers": { + "description": "The advertisers to add.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "removedAdvertisers": { + "description": "The advertisers to remove.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" @@ -11845,9 +12572,16 @@ "EXCHANGE_WAZE", "EXCHANGE_SOUNDCAST", "EXCHANGE_SHARETHROUGH", + "EXCHANGE_FYBER", "EXCHANGE_RED_FOR_PUBLISHERS", "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY" + "EXCHANGE_TAPJOY", + "EXCHANGE_VISTAR", + "EXCHANGE_DAX", + "EXCHANGE_JCD", + "EXCHANGE_PLACE_EXCHANGE", + "EXCHANGE_APPLOVIN", + "EXCHANGE_CONNATIX" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -11913,9 +12647,16 @@ "Waze.", "SoundCast.", "Sharethrough.", + "Fyber.", "Red For Publishers.", "Media.net.", - "Tapjoy." + "Tapjoy.", + "Vistar.", + "DAX.", + "JCD.", + "Place Exchange.", + "AppLovin.", + "Connatix." ], "type": "string" }, @@ -12007,9 +12748,16 @@ "EXCHANGE_WAZE", "EXCHANGE_SOUNDCAST", "EXCHANGE_SHARETHROUGH", + "EXCHANGE_FYBER", "EXCHANGE_RED_FOR_PUBLISHERS", "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY" + "EXCHANGE_TAPJOY", + "EXCHANGE_VISTAR", + "EXCHANGE_DAX", + "EXCHANGE_JCD", + "EXCHANGE_PLACE_EXCHANGE", + "EXCHANGE_APPLOVIN", + "EXCHANGE_CONNATIX" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -12075,9 +12823,16 @@ "Waze.", "SoundCast.", "Sharethrough.", + "Fyber.", "Red For Publishers.", "Media.net.", - "Tapjoy." + "Tapjoy.", + "Vistar.", + "DAX.", + "JCD.", + "Place Exchange.", + "AppLovin.", + "Connatix." ], "type": "string" }, @@ -12170,9 +12925,16 @@ "EXCHANGE_WAZE", "EXCHANGE_SOUNDCAST", "EXCHANGE_SHARETHROUGH", + "EXCHANGE_FYBER", "EXCHANGE_RED_FOR_PUBLISHERS", "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY" + "EXCHANGE_TAPJOY", + "EXCHANGE_VISTAR", + "EXCHANGE_DAX", + "EXCHANGE_JCD", + "EXCHANGE_PLACE_EXCHANGE", + "EXCHANGE_APPLOVIN", + "EXCHANGE_CONNATIX" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -12238,9 +13000,16 @@ "Waze.", "SoundCast.", "Sharethrough.", + "Fyber.", "Red For Publishers.", "Media.net.", - "Tapjoy." + "Tapjoy.", + "Vistar.", + "DAX.", + "JCD.", + "Place Exchange.", + "AppLovin.", + "Connatix." ], "readOnly": true, "type": "string" @@ -12633,7 +13402,7 @@ "type": "object" }, "GenderAssignedTargetingOptionDetails": { - "description": "Details for assigned gender targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARTGETING_TYPE_GENDER`.", + "description": "Details for assigned gender targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", "id": "GenderAssignedTargetingOptionDetails", "properties": { "gender": { @@ -12710,13 +13479,13 @@ "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" ], "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", + "Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", "Image, HTML5, native, or rich media ads.", "Display ads that drive installs of an app.", "Video ads sold on a CPM basis for a variety of environments.", "Video ads that drive installs of an app.", - "Display ads served on mobile app inventory.", - "Video ads served on mobile app inventory.", + "Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", + "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`." ], @@ -12989,12 +13758,285 @@ }, "type": "object" }, + "GuaranteedOrder": { + "description": "A guaranteed order. Guaranteed orders are parent entity of guaranteed inventory sources. When creating a guaranteed inventory source, a guaranteed order ID must be assigned to the inventory source.", + "id": "GuaranteedOrder", + "properties": { + "defaultAdvertiserId": { + "description": "Output only. The ID of default advertiser of the guaranteed order. The default advertiser is either the read_write_advertiser_id or, if that is not set, the first advertiser listed in read_advertiser_ids. Otherwise, there is no default advertiser.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "defaultCampaignId": { + "description": "The ID of the default campaign that is assigned to the guaranteed order. The default campaign must belong to the default advertiser.", + "format": "int64", + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", + "type": "string" + }, + "exchange": { + "description": "Required. Immutable. The exchange where the guaranteed order originated.", + "enum": [ + "EXCHANGE_UNSPECIFIED", + "EXCHANGE_GOOGLE_AD_MANAGER", + "EXCHANGE_APPNEXUS", + "EXCHANGE_BRIGHTROLL", + "EXCHANGE_ADFORM", + "EXCHANGE_ADMETA", + "EXCHANGE_ADMIXER", + "EXCHANGE_ADSMOGO", + "EXCHANGE_ADSWIZZ", + "EXCHANGE_BIDSWITCH", + "EXCHANGE_BRIGHTROLL_DISPLAY", + "EXCHANGE_CADREON", + "EXCHANGE_DAILYMOTION", + "EXCHANGE_FIVE", + "EXCHANGE_FLUCT", + "EXCHANGE_FREEWHEEL", + "EXCHANGE_GENIEE", + "EXCHANGE_GUMGUM", + "EXCHANGE_IMOBILE", + "EXCHANGE_IBILLBOARD", + "EXCHANGE_IMPROVE_DIGITAL", + "EXCHANGE_INDEX", + "EXCHANGE_KARGO", + "EXCHANGE_MICROAD", + "EXCHANGE_MOPUB", + "EXCHANGE_NEND", + "EXCHANGE_ONE_BY_AOL_DISPLAY", + "EXCHANGE_ONE_BY_AOL_MOBILE", + "EXCHANGE_ONE_BY_AOL_VIDEO", + "EXCHANGE_OOYALA", + "EXCHANGE_OPENX", + "EXCHANGE_PERMODO", + "EXCHANGE_PLATFORMONE", + "EXCHANGE_PLATFORMID", + "EXCHANGE_PUBMATIC", + "EXCHANGE_PULSEPOINT", + "EXCHANGE_REVENUEMAX", + "EXCHANGE_RUBICON", + "EXCHANGE_SMARTCLIP", + "EXCHANGE_SMARTRTB", + "EXCHANGE_SMARTSTREAMTV", + "EXCHANGE_SOVRN", + "EXCHANGE_SPOTXCHANGE", + "EXCHANGE_STROER", + "EXCHANGE_TEADSTV", + "EXCHANGE_TELARIA", + "EXCHANGE_TVN", + "EXCHANGE_UNITED", + "EXCHANGE_YIELDLAB", + "EXCHANGE_YIELDMO", + "EXCHANGE_UNRULYX", + "EXCHANGE_OPEN8", + "EXCHANGE_TRITON", + "EXCHANGE_TRIPLELIFT", + "EXCHANGE_TABOOLA", + "EXCHANGE_INMOBI", + "EXCHANGE_SMAATO", + "EXCHANGE_AJA", + "EXCHANGE_SUPERSHIP", + "EXCHANGE_NEXSTAR_DIGITAL", + "EXCHANGE_WAZE", + "EXCHANGE_SOUNDCAST", + "EXCHANGE_SHARETHROUGH", + "EXCHANGE_FYBER", + "EXCHANGE_RED_FOR_PUBLISHERS", + "EXCHANGE_MEDIANET", + "EXCHANGE_TAPJOY", + "EXCHANGE_VISTAR", + "EXCHANGE_DAX", + "EXCHANGE_JCD", + "EXCHANGE_PLACE_EXCHANGE", + "EXCHANGE_APPLOVIN", + "EXCHANGE_CONNATIX" + ], + "enumDescriptions": [ + "Exchange is not specified or is unknown in this version.", + "Google Ad Manager.", + "AppNexus.", + "BrightRoll Exchange for Video from Yahoo!.", + "Adform.", + "Admeta.", + "Admixer.", + "AdsMogo.", + "AdsWizz.", + "BidSwitch.", + "BrightRoll Exchange for Display from Yahoo!.", + "Cadreon.", + "Dailymotion.", + "Five.", + "Fluct.", + "FreeWheel SSP.", + "Geniee.", + "GumGum.", + "i-mobile.", + "iBILLBOARD.", + "Improve Digital.", + "Index Exchange.", + "Kargo.", + "MicroAd.", + "MoPub.", + "Nend.", + "ONE by AOL: Display Market Place.", + "ONE by AOL: Mobile.", + "ONE by AOL: Video.", + "Ooyala.", + "OpenX.", + "Permodo.", + "Platform One.", + "PlatformId.", + "PubMatic.", + "PulsePoint.", + "RevenueMax.", + "Rubicon.", + "SmartClip.", + "SmartRTB+.", + "SmartstreamTv.", + "Sovrn.", + "SpotXchange.", + "Str\u00f6er SSP.", + "TeadsTv.", + "Telaria.", + "TVN.", + "United.", + "Yieldlab.", + "Yieldmo.", + "UnrulyX.", + "Open8.", + "Triton.", + "TripleLift.", + "Taboola.", + "InMobi.", + "Smaato.", + "Aja.", + "Supership.", + "Nexstar Digital.", + "Waze.", + "SoundCast.", + "Sharethrough.", + "Fyber.", + "Red For Publishers.", + "Media.net.", + "Tapjoy.", + "Vistar.", + "DAX.", + "JCD.", + "Place Exchange.", + "AppLovin.", + "Connatix." + ], + "type": "string" + }, + "guaranteedOrderId": { + "description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", + "readOnly": true, + "type": "string" + }, + "legacyGuaranteedOrderId": { + "description": "Output only. The legacy ID of the guaranteed order. Assigned by the original exchange. The legacy ID is unique within one exchange, but is not guaranteed to be unique across all guaranteed orders. This ID is used in SDF and UI.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the guaranteed order.", + "readOnly": true, + "type": "string" + }, + "publisherName": { + "description": "Required. The publisher name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", + "type": "string" + }, + "readAccessInherited": { + "description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order. Only applicable if read_write_partner_id is set. If True, overrides read_advertiser_ids.", + "type": "boolean" + }, + "readAdvertiserIds": { + "description": "The IDs of advertisers with read access to the guaranteed order. This field must not include the advertiser assigned to read_write_advertiser_id if it is set. All advertisers in this field must belong to read_write_partner_id or the same partner as read_write_advertiser_id.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "readWriteAdvertiserId": { + "description": "The advertiser with read/write access to the guaranteed order. This is also the default advertiser of the guaranteed order.", + "format": "int64", + "type": "string" + }, + "readWritePartnerId": { + "description": "The partner with read/write access to the guaranteed order.", + "format": "int64", + "type": "string" + }, + "status": { + "$ref": "GuaranteedOrderStatus", + "description": "The status settings of the guaranteed order." + }, + "updateTime": { + "description": "Output only. The timestamp when the guaranteed order was last updated. Assigned by the system.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GuaranteedOrderStatus": { + "description": "The status settings of the guaranteed order.", + "id": "GuaranteedOrderStatus", + "properties": { + "configStatus": { + "description": "Output only. The configuration status of the guaranteed order. Acceptable values are `PENDING` and `COMPLETED`. A guaranteed order must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve. Currently the configuration action can only be performed via UI.", + "enum": [ + "GUARANTEED_ORDER_CONFIG_STATUS_UNSPECIFIED", + "PENDING", + "COMPLETED" + ], + "enumDescriptions": [ + "The approval status is not specified or is unknown in this version.", + "The beginning state of a guaranteed order. The guaranteed order in this state needs to be configured before it can serve.", + "The state after the buyer configures a guaranteed order." + ], + "readOnly": true, + "type": "string" + }, + "entityPauseReason": { + "description": "The user-provided reason for pausing this guaranteed order. Must be UTF-8 encoded with a maximum length of 100 bytes. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", + "type": "string" + }, + "entityStatus": { + "description": "Whether or not the guaranteed order is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", + "enum": [ + "ENTITY_STATUS_UNSPECIFIED", + "ENTITY_STATUS_ACTIVE", + "ENTITY_STATUS_ARCHIVED", + "ENTITY_STATUS_DRAFT", + "ENTITY_STATUS_PAUSED", + "ENTITY_STATUS_SCHEDULED_FOR_DELETION" + ], + "enumDescriptions": [ + "Default value when status is not specified or is unknown in this version.", + "The entity is enabled to bid and spend budget.", + "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", + "The entity is under draft. Bidding and budget spending are disabled.", + "Bidding and budget spending are paused for the entity.", + "The entity is scheduled for deletion." + ], + "type": "string" + } + }, + "type": "object" + }, "HouseholdIncomeAssignedTargetingOptionDetails": { "description": "Details for assigned household income targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", "id": "HouseholdIncomeAssignedTargetingOptionDetails", "properties": { "householdIncome": { - "description": "Output only. The household income of the audience.", + "description": "The household income of the audience. Output only in v1. Required in v2.", "enum": [ "HOUSEHOLD_INCOME_UNSPECIFIED", "HOUSEHOLD_INCOME_UNKNOWN", @@ -13015,7 +14057,6 @@ "The audience is in the top 11-20% of U.S. household incomes.", "The audience is in the top 10% of U.S. household incomes." ], - "readOnly": true, "type": "string" }, "targetingOptionId": { @@ -13126,6 +14167,22 @@ "$ref": "BiddingStrategy", "description": "The bidding strategy of the insertion order. By default, fixed_bid is set." }, + "billableOutcome": { + "description": "Immutable. The billable outcome of the insertion order.", + "enum": [ + "BILLABLE_OUTCOME_UNSPECIFIED", + "BILLABLE_OUTCOME_PAY_PER_IMPRESSION", + "BILLABLE_OUTCOME_PAY_PER_CLICK", + "BILLABLE_OUTCOME_PAY_PER_VIEWABLE_IMPRESSION" + ], + "enumDescriptions": [ + "Unspecified billable outcome.", + "Pay per impressions.", + "Pay per click.", + "Pay per active view." + ], + "type": "string" + }, "budget": { "$ref": "InsertionOrderBudget", "description": "Required. The budget allocation settings of the insertion order." @@ -13296,7 +14353,7 @@ "description": "Required. The start and end date settings of the budget segment. They are resolved relative to the parent advertiser's time zone. * When creating a new budget segment, both `start_date` and `end_date` must be in the future. * An existing budget segment with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." }, "description": { - "description": "The budget segment description. It can be used to enter Purchase Order information for each budget segment and have that information printed on the invoices. Must be UTF-8 encoded with a length of no more than 80 characters.", + "description": "The budget segment description. It can be used to enter Purchase Order information for each budget segment and have that information printed on the invoices. Must be UTF-8 encoded.", "type": "string" } }, @@ -13635,9 +14692,16 @@ "EXCHANGE_WAZE", "EXCHANGE_SOUNDCAST", "EXCHANGE_SHARETHROUGH", + "EXCHANGE_FYBER", "EXCHANGE_RED_FOR_PUBLISHERS", "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY" + "EXCHANGE_TAPJOY", + "EXCHANGE_VISTAR", + "EXCHANGE_DAX", + "EXCHANGE_JCD", + "EXCHANGE_PLACE_EXCHANGE", + "EXCHANGE_APPLOVIN", + "EXCHANGE_CONNATIX" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -13703,18 +14767,58 @@ "Waze.", "SoundCast.", "Sharethrough.", + "Fyber.", "Red For Publishers.", "Media.net.", - "Tapjoy." + "Tapjoy.", + "Vistar.", + "DAX.", + "JCD.", + "Place Exchange.", + "AppLovin.", + "Connatix." ], "type": "string" }, + "guaranteedOrderId": { + "description": "Immutable. The ID of the guaranteed order that this inventory source belongs to. Only applicable when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`.", + "type": "string" + }, "inventorySourceId": { "description": "Output only. The unique ID of the inventory source. Assigned by the system.", "format": "int64", "readOnly": true, "type": "string" }, + "inventorySourceProductType": { + "description": "Output only. The product type of the inventory source, denoting the way through which it sells inventory.", + "enum": [ + "INVENTORY_SOURCE_PRODUCT_TYPE_UNSPECIFIED", + "PREFERRED_DEAL", + "PRIVATE_AUCTION", + "PROGRAMMATIC_GUARANTEED", + "TAG_GUARANTEED", + "YOUTUBE_RESERVE", + "INSTANT_RESERVE", + "GUARANTEED_PACKAGE", + "PROGRAMMATIC_TV", + "AUCTION_PACKAGE" + ], + "enumDescriptions": [ + "The product type is not specified or is unknown in this version. Modifying inventory sources of this product type are not supported via API.", + "The inventory source sells inventory through Preferred Deal.", + "The inventory source sells inventory through Private Auction.", + "The inventory source sells inventory through Programmatic Guaranteed.", + "The inventory source sells inventory through Tag Guaranteed.", + "The inventory source sells inventory through YouTube Reserve.", + "The inventory source sells inventory through Instant Reserve. Modifying inventory sources of this product type are not supported via API.", + "The inventory source sells inventory through Guaranteed Package. Modifying inventory sources of this product type are not supported via API.", + "The inventory source sells inventory through Programmtic TV. Modifying inventory sources of this product type are not supported via API.", + "The inventory source sells inventory through Auction Package. Modifying inventory sources of this product type are not supported via API." + ], + "readOnly": true, + "type": "string" + }, "inventorySourceType": { "description": "Denotes the type of the inventory source.", "enum": [ @@ -13742,10 +14846,37 @@ "$ref": "RateDetails", "description": "Required. The rate details of the inventory source." }, + "readAdvertiserIds": { + "description": "Output only. The IDs of advertisers with read-only access to the inventory source.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "readPartnerIds": { + "description": "Output only. The IDs of partners with read-only access to the inventory source. All advertisers of partners in this field inherit read-only access to the inventory source.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "readWriteAccessors": { + "$ref": "InventorySourceAccessors", + "description": "The partner or advertisers that have read/write access to the inventory source. Output only when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`, in which case the read/write accessors are inherited from the parent guaranteed order. Required when commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED`. If commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED` and a partner is set in this field, all advertisers under this partner will automatically have read-only access to the inventory source. These advertisers will not be included in read_advertiser_ids." + }, "status": { "$ref": "InventorySourceStatus", "description": "The status settings of the inventory source." }, + "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." @@ -13759,6 +14890,48 @@ }, "type": "object" }, + "InventorySourceAccessors": { + "description": "The partner or advertisers with access to the inventory source.", + "id": "InventorySourceAccessors", + "properties": { + "advertisers": { + "$ref": "InventorySourceAccessorsAdvertiserAccessors", + "description": "The advertisers with access to the inventory source. All advertisers must belong to the same partner." + }, + "partner": { + "$ref": "InventorySourceAccessorsPartnerAccessor", + "description": "The partner with access to the inventory source." + } + }, + "type": "object" + }, + "InventorySourceAccessorsAdvertiserAccessors": { + "description": "The advertisers with access to the inventory source.", + "id": "InventorySourceAccessorsAdvertiserAccessors", + "properties": { + "advertiserIds": { + "description": "The IDs of the advertisers.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InventorySourceAccessorsPartnerAccessor": { + "description": "The partner with access to the inventory source.", + "id": "InventorySourceAccessorsPartnerAccessor", + "properties": { + "partnerId": { + "description": "The ID of the partner.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "InventorySourceAssignedTargetingOptionDetails": { "description": "Targeting details for inventory source. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`.", "id": "InventorySourceAssignedTargetingOptionDetails", @@ -14178,13 +15351,13 @@ "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" ], "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", + "Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", "Image, HTML5, native, or rich media ads.", "Display ads that drive installs of an app.", "Video ads sold on a CPM basis for a variety of environments.", "Video ads that drive installs of an app.", - "Display ads served on mobile app inventory.", - "Video ads served on mobile app inventory.", + "Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", + "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`." ], @@ -14233,7 +15406,7 @@ }, "targetingExpansion": { "$ref": "TargetingExpansionConfig", - "description": "The [targeting expansion](https://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." + "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." }, "updateTime": { "description": "Output only. The timestamp when the line item was last updated. Assigned by the system.", @@ -14609,6 +15782,23 @@ }, "type": "object" }, + "ListGuaranteedOrdersResponse": { + "id": "ListGuaranteedOrdersResponse", + "properties": { + "guaranteedOrders": { + "description": "The list of guaranteed orders. This list will be absent if empty.", + "items": { + "$ref": "GuaranteedOrder" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGuaranteedOrders` method to retrieve the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListInsertionOrderAssignedTargetingOptionsResponse": { "description": "Response message for ListInsertionOrderAssignedTargetingOptions.", "id": "ListInsertionOrderAssignedTargetingOptionsResponse", @@ -15048,7 +16238,7 @@ "type": "string" }, "raiseBidForDeals": { - "description": "Controls whether the strategy takes deal floor prices into account.", + "description": "Whether the strategy takes deal floor prices into account.", "type": "boolean" } }, @@ -15110,7 +16300,7 @@ "id": "MobileDeviceIdList", "properties": { "mobileDeviceIds": { - "description": "A list of mobile device IDs defining Customer Match audience members.", + "description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", "items": { "type": "string" }, @@ -15603,11 +16793,11 @@ "type": "object" }, "ParentalStatusAssignedTargetingOptionDetails": { - "description": "Details for assigned parental status targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARTGETING_TYPE_PARENTAL_STATUS`.", + "description": "Details for assigned parental status targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", "id": "ParentalStatusAssignedTargetingOptionDetails", "properties": { "parentalStatus": { - "description": "Output only. The parental status of the audience.", + "description": "The parental status of the audience. Output only in v1. Required in v2.", "enum": [ "PARENTAL_STATUS_UNSPECIFIED", "PARENTAL_STATUS_PARENT", @@ -15620,7 +16810,6 @@ "The audience is not a parent.", "The parental status of the audience is unknown." ], - "readOnly": true, "type": "string" }, "targetingOptionId": { @@ -16444,7 +17633,8 @@ "SDF_VERSION_5_1", "SDF_VERSION_5_2", "SDF_VERSION_5_3", - "SDF_VERSION_5_4" + "SDF_VERSION_5_4", + "SDF_VERSION_5_5" ], "enumDescriptions": [ "SDF version value is not specified or is unknown in this version.", @@ -16456,7 +17646,8 @@ "SDF version 5.1", "SDF version 5.2", "SDF version 5.3", - "SDF version 5.4" + "SDF version 5.4", + "SDF version 5.5" ], "type": "string" } @@ -16500,7 +17691,8 @@ "SDF_VERSION_5_1", "SDF_VERSION_5_2", "SDF_VERSION_5_3", - "SDF_VERSION_5_4" + "SDF_VERSION_5_4", + "SDF_VERSION_5_5" ], "enumDescriptions": [ "SDF version value is not specified or is unknown in this version.", @@ -16512,7 +17704,8 @@ "SDF version 5.1", "SDF version 5.2", "SDF version 5.3", - "SDF version 5.4" + "SDF version 5.4", + "SDF version 5.5" ], "type": "string" } @@ -16537,7 +17730,7 @@ "description": "Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`." }, "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", "format": "int32", "type": "integer" }, @@ -16579,7 +17772,7 @@ "type": "string" }, "sensitiveCategory": { - "description": "An enum for the DV360 Sensitive category content classifier. Output only in v1. Required in v2.", + "description": "Output only. An enum for the DV360 Sensitive category content classifier.", "enum": [ "SENSITIVE_CATEGORY_UNSPECIFIED", "SENSITIVE_CATEGORY_ADULT", @@ -16620,6 +17813,7 @@ "Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", "Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor." ], + "readOnly": true, "type": "string" } }, @@ -16744,15 +17938,15 @@ "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.", + "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.", "id": "TargetingExpansionConfig", "properties": { "excludeFirstPartyAudience": { - "description": "Required. Whether to exclude first party audiences from 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.", + "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.", "type": "boolean" }, "targetingExpansionLevel": { - "description": "Required. Magnitude of expansion for applicable targeting under this line item.", + "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`.", "enum": [ "TARGETING_EXPANSION_LEVEL_UNSPECIFIED", "NO_EXPANSION", @@ -16812,6 +18006,14 @@ "$ref": "CategoryTargetingOptionDetails", "description": "Category resource details." }, + "contentDurationDetails": { + "$ref": "ContentDurationTargetingOptionDetails", + "description": "Content duration resource details." + }, + "contentGenreDetails": { + "$ref": "ContentGenreTargetingOptionDetails", + "description": "Content genre resource details." + }, "contentInstreamPositionDetails": { "$ref": "ContentInstreamPositionTargetingOptionDetails", "description": "Content instream position details." @@ -16820,6 +18022,10 @@ "$ref": "ContentOutstreamPositionTargetingOptionDetails", "description": "Content outstream position details." }, + "contentStreamTypeDetails": { + "$ref": "ContentStreamTypeTargetingOptionDetails", + "description": "Content stream type resource details." + }, "deviceMakeModelDetails": { "$ref": "DeviceMakeModelTargetingOptionDetails", "description": "Device make and model resource details." @@ -16941,9 +18147,12 @@ "TARGETING_TYPE_SUB_EXCHANGE", "TARGETING_TYPE_POI", "TARGETING_TYPE_BUSINESS_CHAIN", + "TARGETING_TYPE_CONTENT_DURATION", + "TARGETING_TYPE_CONTENT_STREAM_TYPE", "TARGETING_TYPE_NATIVE_CONTENT_POSITION", "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" + "TARGETING_TYPE_AUDIO_CONTENT_TYPE", + "TARGETING_TYPE_CONTENT_GENRE" ], "enumDescriptions": [ "Default value when type is not specified or is unknown in this version.", @@ -16986,9 +18195,12 @@ "Purchase impressions from specific sub-exchanges.", "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", "Target ads around locations of a business chain within a specific geo region.", + "Target ads to a specific video content duration.", + "Target ads to a specific video content stream type.", "Target ads to a specific native content position.", "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type." + "Target ads to a specific audio content type.", + "Target ads to a specific content genre." ], "readOnly": true, "type": "string" diff --git a/etc/api/dlp/v2/dlp-api.json b/etc/api/dlp/v2/dlp-api.json index 0433cd2e1c..33be9a9095 100644 --- a/etc/api/dlp/v2/dlp-api.json +++ b/etc/api/dlp/v2/dlp-api.json @@ -108,7 +108,7 @@ "infoTypes": { "methods": { "list": { - "description": "Returns a list of the sensitive information types that the 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/dlp/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 the 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/dlp/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 re-using 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/dlp/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.organizations.deidentifyTemplates.create", @@ -290,12 +290,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -354,7 +354,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for re-using 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/dlp/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.organizations.inspectTemplates.create", @@ -446,12 +446,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -512,7 +512,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for re-using 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/dlp/docs/creating-templates-deid to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.organizations.locations.deidentifyTemplates.create", @@ -604,12 +604,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -677,7 +677,7 @@ ], "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The resource name of the trigger that created job. - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", + "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, @@ -687,7 +687,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 time the job was created. - `end_time`: corresponds to time the job ended. - `name`: corresponds to 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, 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" }, @@ -738,7 +738,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for re-using 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/dlp/docs/creating-templates to learn more.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.organizations.locations.inspectTemplates.create", @@ -830,12 +830,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -991,7 +991,7 @@ "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 time the JobTrigger was created. - `update_time`: corresponds to time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to JobTrigger's name. - `display_name`: corresponds to JobTrigger's display name. - `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, 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" }, @@ -1162,12 +1162,12 @@ "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 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, 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 server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -1178,7 +1178,7 @@ "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/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", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -1320,12 +1320,12 @@ "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 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, 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 server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -1336,7 +1336,7 @@ "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/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", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1476,7 +1476,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for re-using 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/dlp/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.projects.deidentifyTemplates.create", @@ -1568,12 +1568,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -1688,7 +1688,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 cancelled 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/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/dlpJobs/{dlpJobsId}", "httpMethod": "DELETE", "id": "dlp.projects.dlpJobs.delete", @@ -1747,7 +1747,7 @@ ], "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The resource name of the trigger that created job. - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", + "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, @@ -1757,7 +1757,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 time the job was created. - `end_time`: corresponds to time the job ended. - `name`: corresponds to 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, 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" }, @@ -1840,7 +1840,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for re-using 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/dlp/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.projects.inspectTemplates.create", @@ -1932,12 +1932,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -2121,7 +2121,7 @@ "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 time the JobTrigger was created. - `update_time`: corresponds to time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to JobTrigger's name. - `display_name`: corresponds to JobTrigger's display name. - `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, 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" }, @@ -2290,7 +2290,7 @@ "deidentifyTemplates": { "methods": { "create": { - "description": "Creates a DeidentifyTemplate for re-using 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/dlp/docs/creating-templates-deid to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/deidentifyTemplates", "httpMethod": "POST", "id": "dlp.projects.locations.deidentifyTemplates.create", @@ -2382,12 +2382,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -2502,7 +2502,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 cancelled 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/dlp/docs/inspecting-storage and https://cloud.google.com/dlp/docs/compute-risk-analysis to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/dlpJobs/{dlpJobsId}", "httpMethod": "DELETE", "id": "dlp.projects.locations.dlpJobs.delete", @@ -2617,7 +2617,7 @@ ], "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The resource name of the trigger that created job. - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to time the job finished. - 'start_time` - Corresponds to time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", + "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 for inspect jobs: - `state` - PENDING|RUNNING|CANCELED|FINISHED|FAILED - `inspected_storage` - DATASTORE|CLOUD_STORAGE|BIGQUERY - `trigger_name` - The name of the trigger that created the job. - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * Supported fields for risk analysis jobs: - `state` - RUNNING|CANCELED|FINISHED|FAILED - 'end_time` - Corresponds to the time the job finished. - 'start_time` - Corresponds to the time the job finished. * The operator must be `=` or `!=`. Examples: * inspected_storage = cloud_storage AND state = done * inspected_storage = cloud_storage OR inspected_storage = bigquery * inspected_storage = cloud_storage AND (state = done OR state = canceled) * end_time > \\\"2017-12-12T00:00:00+00:00\\\" The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, @@ -2627,7 +2627,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 time the job was created. - `end_time`: corresponds to time the job ended. - `name`: corresponds to 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, 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" }, @@ -2710,7 +2710,7 @@ "inspectTemplates": { "methods": { "create": { - "description": "Creates an InspectTemplate for re-using 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/dlp/docs/creating-templates to learn more.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/inspectTemplates", "httpMethod": "POST", "id": "dlp.projects.locations.inspectTemplates.create", @@ -2802,12 +2802,12 @@ "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 time the template was created. - `update_time`: corresponds to time the template was last updated. - `name`: corresponds to template's name. - `display_name`: corresponds to template's display name.", + "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.", "location": "query", "type": "string" }, "pageSize": { - "description": "Size of the page, can be limited by server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -3019,7 +3019,7 @@ "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 time the JobTrigger was created. - `update_time`: corresponds to time the JobTrigger was last updated. - `last_run_time`: corresponds to the last time the JobTrigger ran. - `name`: corresponds to JobTrigger's name. - `display_name`: corresponds to JobTrigger's display name. - `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, 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" }, @@ -3190,12 +3190,12 @@ "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 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, 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 server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -3206,7 +3206,7 @@ "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/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", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -3348,12 +3348,12 @@ "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 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, 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 server. If zero server returns a page of max size 100.", + "description": "Size of the page, can be limited by the server. If zero server returns a page of max size 100.", "format": "int32", "location": "query", "type": "integer" @@ -3364,7 +3364,7 @@ "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/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", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -3412,20 +3412,24 @@ } } }, - "revision": "20220227", + "revision": "20230121", "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.", "id": "GooglePrivacyDlpV2Action", "properties": { + "deidentify": { + "$ref": "GooglePrivacyDlpV2Deidentify", + "description": "Create a de-identified copy of the input data." + }, "jobNotificationEmails": { "$ref": "GooglePrivacyDlpV2JobNotificationEmails", - "description": "Enable email notification for project owners and editors on job's completion/failure." + "description": "Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts)." }, "pubSub": { "$ref": "GooglePrivacyDlpV2PublishToPubSub", - "description": "Publish a notification to a pubsub topic." + "description": "Publish a notification to a Pub/Sub topic." }, "publishFindingsToCloudDataCatalog": { "$ref": "GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog", @@ -3452,6 +3456,18 @@ "properties": {}, "type": "object" }, + "GooglePrivacyDlpV2AllInfoTypes": { + "description": "Apply transformation to all findings.", + "id": "GooglePrivacyDlpV2AllInfoTypes", + "properties": {}, + "type": "object" + }, + "GooglePrivacyDlpV2AllText": { + "description": "Apply to all text.", + "id": "GooglePrivacyDlpV2AllText", + "properties": {}, + "type": "object" + }, "GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails": { "description": "Result of a risk analysis operation request.", "id": "GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails", @@ -3703,6 +3719,8 @@ "TEXT_UTF8", "WORD_DOCUMENT", "PDF", + "POWERPOINT_DOCUMENT", + "EXCEL_DOCUMENT", "AVRO", "CSV", "TSV" @@ -3717,6 +3735,8 @@ "plain text", "docx, docm, dotx, dotm", "pdf", + "pptx, pptm, potx, potm, pot", + "xlsx, xlsm, xltx, xltm", "avro", "csv", "tsv" @@ -3807,7 +3827,7 @@ "type": "string" }, "numberToMask": { - "description": "Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.", + "description": "Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally. If `number_to_mask` is negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values: - `masking_character` is `*` - `number_to_mask` is `-4` - `reverse_order` is `false` - `CharsToIgnore` includes `-` - Input string is `1234-5678-9012-3456` The resulting de-identified string is `****-****-****-3456`. Cloud DLP masks all but the last four characters. If `reverse_order` is `true`, all but the first four characters are masked as `1234-****-****-****`.", "format": "int32", "type": "integer" }, @@ -3861,7 +3881,7 @@ "type": "object" }, "GooglePrivacyDlpV2CloudStorageOptions": { - "description": "Options defining a file or a set of files within a Google Cloud Storage bucket.", + "description": "Options defining a file or a set of files within a Cloud Storage bucket.", "id": "GooglePrivacyDlpV2CloudStorageOptions", "properties": { "bytesLimitPerFile": { @@ -3890,7 +3910,9 @@ "PDF", "AVRO", "CSV", - "TSV" + "TSV", + "POWERPOINT", + "EXCEL" ], "enumDescriptions": [ "Includes all files.", @@ -3901,7 +3923,9 @@ "PDF files >30 MB will be scanned as binary files. Included file extensions: pdf", "Included file extensions: avro", "Included file extensions: csv", - "Included file extensions: tsv" + "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" ], "type": "string" }, @@ -4044,7 +4068,7 @@ "id": "GooglePrivacyDlpV2Container", "properties": { "fullPath": { - "description": "A string representation of the full container name. Examples: - BigQuery: 'Project:DataSetId.TableId' - Google Cloud Storage: 'gs://Bucket/folders/filename.txt'", + "description": "A string representation of the full container name. Examples: - BigQuery: 'Project:DataSetId.TableId' - Cloud Storage: 'gs://Bucket/folders/filename.txt'", "type": "string" }, "projectId": { @@ -4052,31 +4076,30 @@ "type": "string" }, "relativePath": { - "description": "The rest of the path after the root. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the relative path is `table_id` - Google Cloud Storage file `gs://bucket/folder/filename.txt`, the relative path is `folder/filename.txt`", + "description": "The rest of the path after the root. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the relative path is `table_id` - For Cloud Storage file `gs://bucket/folder/filename.txt`, the relative path is `folder/filename.txt`", "type": "string" }, "rootPath": { - "description": "The root of the container. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the root is `dataset_id` - For Google Cloud Storage file `gs://bucket/folder/filename.txt`, the root is `gs://bucket`", + "description": "The root of the container. Examples: - For BigQuery table `project_id:dataset_id.table_id`, the root is `dataset_id` - For Cloud Storage file `gs://bucket/folder/filename.txt`, the root is `gs://bucket`", "type": "string" }, "type": { - "description": "Container type, for example BigQuery or Google Cloud Storage.", + "description": "Container type, for example BigQuery or Cloud Storage.", "type": "string" }, "updateTime": { - "description": "Findings container modification timestamp, if applicable. For Google Cloud Storage contains last file modification timestamp. For BigQuery table contains last_modified_time property. For Datastore - not populated.", + "description": "Findings container modification timestamp, if applicable. For Cloud Storage, this field contains the last file modification timestamp. For a BigQuery table, this field contains the last_modified_time property. For Datastore, this field isn't populated.", "format": "google-datetime", "type": "string" }, "version": { - "description": "Findings container version, if available (\"generation\" for Google Cloud Storage).", + "description": "Findings container version, if available (\"generation\" for Cloud Storage).", "type": "string" } }, "type": "object" }, "GooglePrivacyDlpV2ContentItem": { - "description": "Container structure for the content to inspect.", "id": "GooglePrivacyDlpV2ContentItem", "properties": { "byteItem": { @@ -4099,16 +4122,16 @@ "id": "GooglePrivacyDlpV2ContentLocation", "properties": { "containerName": { - "description": "Name of the container where the finding is located. The top level name is the source file name or table name. Names of some common storage containers are formatted as follows: * BigQuery tables: `{project_id}:{dataset_id}.{table_id}` * Cloud Storage files: `gs://{bucket}/{path}` * Datastore namespace: {namespace} Nested names could be absent if the embedded object has no string identifier (for an example an image contained within a document).", + "description": "Name of the container where the finding is located. The top level name is the source file name or table name. Names of some common storage containers are formatted as follows: * BigQuery tables: `{project_id}:{dataset_id}.{table_id}` * Cloud Storage files: `gs://{bucket}/{path}` * Datastore namespace: {namespace} Nested names could be absent if the embedded object has no string identifier (for example, an image contained within a document).", "type": "string" }, "containerTimestamp": { - "description": "Findings container modification timestamp, if applicable. For Google Cloud Storage contains last file modification timestamp. For BigQuery table contains last_modified_time property. For Datastore - not populated.", + "description": "Finding container modification timestamp, if applicable. For Cloud Storage, this field contains the last file modification timestamp. For a BigQuery table, this field contains the last_modified_time property. For Datastore, this field isn't populated.", "format": "google-datetime", "type": "string" }, "containerVersion": { - "description": "Findings container version, if available (\"generation\" for Google Cloud Storage).", + "description": "Finding container version, if available (\"generation\" for Cloud Storage).", "type": "string" }, "documentLocation": { @@ -4235,7 +4258,7 @@ "properties": { "context": { "$ref": "GooglePrivacyDlpV2FieldId", - "description": "A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s." + "description": "A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well. If the context is not set, plaintext would be used as is for encryption. If the context is set but: 1. there is no record present when transforming a given value or 2. the field is not present when transforming a given value, plaintext would be used as is for encryption. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s." }, "cryptoKey": { "$ref": "GooglePrivacyDlpV2CryptoKey", @@ -4302,7 +4325,7 @@ }, "context": { "$ref": "GooglePrivacyDlpV2FieldId", - "description": "The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2" + "description": "The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used. If the context is set but: 1. there is no record present when transforming a given value or 1. the field is not present when transforming a given value, a default tweak will be used. Note that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and unstructured `ContentItem`s. Currently, the referenced field may be of value type integer or string. The tweak is constructed as a sequence of bytes in big endian byte order such that: - a 64 bit integer is encoded followed by a single byte of value 1 - a string is encoded in UTF-8 format followed by a single byte of value 2" }, "cryptoKey": { "$ref": "GooglePrivacyDlpV2CryptoKey", @@ -4367,11 +4390,11 @@ ], "enumDescriptions": [ "Default value; same as POSSIBLE.", - "Few matching elements.", - "", - "Some matching elements.", - "", - "Many matching elements." + "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" }, @@ -4390,6 +4413,145 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DataProfileAction": { + "description": "A task to execute when a data profile has been generated.", + "id": "GooglePrivacyDlpV2DataProfileAction", + "properties": { + "exportData": { + "$ref": "GooglePrivacyDlpV2Export", + "description": "Export data profiles into a provided location." + }, + "pubSubNotification": { + "$ref": "GooglePrivacyDlpV2PubSubNotification", + "description": "Publish a message into the Pub/Sub topic." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DataProfileConfigSnapshot": { + "description": "Snapshot of the configurations used to generate the profile.", + "id": "GooglePrivacyDlpV2DataProfileConfigSnapshot", + "properties": { + "dataProfileJob": { + "$ref": "GooglePrivacyDlpV2DataProfileJobConfig", + "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`." + } + }, + "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).", + "id": "GooglePrivacyDlpV2DataProfileJobConfig", + "properties": { + "dataProfileActions": { + "description": "Actions to execute at the completion of the job.", + "items": { + "$ref": "GooglePrivacyDlpV2DataProfileAction" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "location": { + "$ref": "GooglePrivacyDlpV2DataProfileLocation", + "description": "The data to scan." + }, + "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" + }, + "GooglePrivacyDlpV2DataProfileLocation": { + "description": "The data that will be profiled.", + "id": "GooglePrivacyDlpV2DataProfileLocation", + "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" + }, + "GooglePrivacyDlpV2DataProfilePubSubCondition": { + "description": "A condition for determining whether a Pub/Sub should be triggered.", + "id": "GooglePrivacyDlpV2DataProfilePubSubCondition", + "properties": { + "expressions": { + "$ref": "GooglePrivacyDlpV2PubSubExpressions", + "description": "An expression." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DataProfilePubSubMessage": { + "description": "Pub/Sub topic message for a DataProfileAction.PubSubNotification event. To receive a message of protocol buffer schema type, convert the message data to an object of this proto class.", + "id": "GooglePrivacyDlpV2DataProfilePubSubMessage", + "properties": { + "event": { + "description": "The event that caused the Pub/Sub message to be sent.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "NEW_PROFILE", + "CHANGED_PROFILE", + "SCORE_INCREASED", + "ERROR_CHANGED" + ], + "enumDescriptions": [ + "Unused.", + "New profile (not a re-profile).", + "Changed one of the following profile metrics: * Table data risk score * Table sensitivity score * Table resource visibility * Table encryption type * Table predicted infoTypes * Table other infoTypes", + "Table data risk score or sensitivity score increased.", + "A user (non-internal) error occurred." + ], + "type": "string" + }, + "profile": { + "$ref": "GooglePrivacyDlpV2TableDataProfile", + "description": "If `DetailLevel` is `TABLE_PROFILE` this will be fully populated. Otherwise, if `DetailLevel` is `RESOURCE_NAME`, then only `name` and `full_resource` will be populated." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DataRiskLevel": { + "description": "Score is a summary of all elements in the data profile. A higher number means more risk.", + "id": "GooglePrivacyDlpV2DataRiskLevel", + "properties": { + "score": { + "description": "The score applied to the resource.", + "enum": [ + "RISK_SCORE_UNSPECIFIED", + "RISK_LOW", + "RISK_MODERATE", + "RISK_HIGH" + ], + "enumDescriptions": [ + "Unused.", + "Low risk - Lower indication of sensitive data that appears to have additional access restrictions in place or no indication of sensitive data found.", + "Medium risk - Sensitive data may be present but additional access or fine grain access restrictions appear to be present. Consider limiting access even further or transform data to mask.", + "High risk \u2013 SPII may be present. Access controls may include public ACLs. Exfiltration of data may lead to user data loss. Re-identification of users may be possible. Consider limiting usage and or removing SPII." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DatastoreKey": { "description": "Record key for a finding in Cloud Datastore.", "id": "GooglePrivacyDlpV2DatastoreKey", @@ -4484,10 +4646,66 @@ }, "type": "object" }, + "GooglePrivacyDlpV2Deidentify": { + "description": "Create a de-identified copy of the requested table or files. A TransformationDetail will be created for each transformation. If any rows in BigQuery are skipped during de-identification (transformation errors or row size exceeds BigQuery insert API limits) they are placed in the failure output table. If the original row exceeds the BigQuery insert API limit it will be truncated when written to the failure output table. The failure output table can be set in the action.deidentify.output.big_query_output.deidentified_failure_output_table field, if no table is set, a table will be automatically created in the same project and dataset as the original table. Compatible with: Inspect", + "id": "GooglePrivacyDlpV2Deidentify", + "properties": { + "cloudStorageOutput": { + "description": "Required. User settable Cloud Storage bucket and folders to store de-identified files. This field must be set for cloud storage deidentification. The output Cloud Storage bucket must be different from the input bucket. De-identified files will overwrite files in the output path. Form of: gs://bucket/folder/ or gs://bucket", + "type": "string" + }, + "fileTypesToTransform": { + "description": "List of user-specified file type groups to transform. If specified, only the files with these filetypes will be transformed. If empty, all supported files will be transformed. Supported types may be automatically added over time. If a file type is set in this field that isn't supported by the Deidentify action then the job will fail and will not be successfully created/started. Currently the only filetypes supported are: IMAGES, TEXT_FILES, CSV, TSV.", + "items": { + "enum": [ + "FILE_TYPE_UNSPECIFIED", + "BINARY_FILE", + "TEXT_FILE", + "IMAGE", + "WORD", + "PDF", + "AVRO", + "CSV", + "TSV", + "POWERPOINT", + "EXCEL" + ], + "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", + "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" + ], + "type": "string" + }, + "type": "array" + }, + "transformationConfig": { + "$ref": "GooglePrivacyDlpV2TransformationConfig", + "description": "User specified deidentify templates and configs for structured, unstructured, and image files." + }, + "transformationDetailsStorageConfig": { + "$ref": "GooglePrivacyDlpV2TransformationDetailsStorageConfig", + "description": "Config for storing transformation details. This is separate from the de-identified content, and contains metadata about the successful transformations and/or failures that occurred while de-identifying. This needs to be set in order for users to access information about the status of each transformation (see TransformationDetails message for more information about what is noted)." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DeidentifyConfig": { "description": "The configuration that controls how the data will change.", "id": "GooglePrivacyDlpV2DeidentifyConfig", "properties": { + "imageTransformations": { + "$ref": "GooglePrivacyDlpV2ImageTransformations", + "description": "Treat the dataset as an image and redact." + }, "infoTypeTransformations": { "$ref": "GooglePrivacyDlpV2InfoTypeTransformations", "description": "Treat the dataset as free-form text and apply the same free text transformation everywhere." @@ -4504,7 +4722,7 @@ "type": "object" }, "GooglePrivacyDlpV2DeidentifyContentRequest": { - "description": "Request to de-identify a list of items.", + "description": "Request to de-identify a ContentItem.", "id": "GooglePrivacyDlpV2DeidentifyContentRequest", "properties": { "deidentifyConfig": { @@ -4525,7 +4743,7 @@ }, "item": { "$ref": "GooglePrivacyDlpV2ContentItem", - "description": "The item to de-identify. Will be treated as text." + "description": "The item to de-identify. Will be treated as text. This value must be of type Table if your deidentify_config is a RecordTransformations object." }, "locationId": { "description": "Deprecated. This field has no effect.", @@ -4761,9 +4979,9 @@ "The job has not yet started.", "The job is currently running. Once a job has finished it will transition to FAILED or DONE.", "The job is no longer running.", - "The job was canceled before it could complete.", + "The job was canceled before it could be completed.", "The job had an error and did not complete.", - "The job is currently accepting findings via hybridInspect. A hybrid job in ACTIVE state may continue to have findings added to it through calling of hybridInspect. After the job has finished no more calls to hybridInspect may be made. ACTIVE jobs can transition to DONE." + "The job is currently accepting findings via hybridInspect. A hybrid job in ACTIVE state may continue to have findings added to it through the calling of hybridInspect. After the job has finished no more calls to hybridInspect may be made. ACTIVE jobs can transition to DONE." ], "type": "string" }, @@ -4826,8 +5044,23 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ExcludeByHotword": { + "description": "The rule to exclude findings based on a hotword. For record inspection of tables, column names are considered hotwords. An example of this is to exclude a finding if it belongs to a BigQuery column that matches a specific pattern.", + "id": "GooglePrivacyDlpV2ExcludeByHotword", + "properties": { + "hotwordRegex": { + "$ref": "GooglePrivacyDlpV2Regex", + "description": "Regular expression pattern defining what qualifies as a hotword." + }, + "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 windowBefore property in proximity should be set to 1 if the hotword needs to be included in a column header." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2ExcludeInfoTypes": { - "description": "List of exclude infoTypes.", + "description": "List of excluded infoTypes.", "id": "GooglePrivacyDlpV2ExcludeInfoTypes", "properties": { "infoTypes": { @@ -4848,6 +5081,10 @@ "$ref": "GooglePrivacyDlpV2Dictionary", "description": "Dictionary which defines the rule." }, + "excludeByHotword": { + "$ref": "GooglePrivacyDlpV2ExcludeByHotword", + "description": "Drop if the hotword rule is contained in the proximate context. For tabular data, the context includes the column name." + }, "excludeInfoTypes": { "$ref": "GooglePrivacyDlpV2ExcludeInfoTypes", "description": "Set of infoTypes for which findings would affect this rule." @@ -4875,8 +5112,19 @@ }, "type": "object" }, + "GooglePrivacyDlpV2Export": { + "description": "If set, the detailed data profiles will be persisted to the location of your choice whenever updated.", + "id": "GooglePrivacyDlpV2Export", + "properties": { + "profileTable": { + "$ref": "GooglePrivacyDlpV2BigQueryTable", + "description": "Store all table and column profiles in an existing table or a new table in an existing dataset. Each re-generation will result in a new row in BigQuery." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Expressions": { - "description": "An expression, consisting or an operator and conditions.", + "description": "An expression, consisting of an operator and conditions.", "id": "GooglePrivacyDlpV2Expressions", "properties": { "conditions": { @@ -4995,11 +5243,11 @@ ], "enumDescriptions": [ "Default value; same as POSSIBLE.", - "Few matching elements.", - "", - "Some matching elements.", - "", - "Many matching elements." + "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" }, @@ -5031,7 +5279,7 @@ "type": "object" }, "GooglePrivacyDlpV2FindingLimits": { - "description": "Configuration to control the number of findings returned for inspection. This is not used for de-identification or data profiling.", + "description": "Configuration to control the number of findings returned for inspection. This is not used for de-identification or data profiling. When redacting sensitive data from images, finding limits don't apply. They can cause unexpected or inconsistent results, where only some data is redacted. Don't include finding limits in RedactImage requests. Otherwise, Cloud DLP returns an error.", "id": "GooglePrivacyDlpV2FindingLimits", "properties": { "maxFindingsPerInfoType": { @@ -5094,7 +5342,7 @@ }, "proximity": { "$ref": "GooglePrivacyDlpV2Proximity", - "description": "Proximity of the finding within which the entire hotword must reside. The total length of the window cannot exceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be used to match substrings of the finding itself. For example, the certainty of a phone number regex \"\\(\\d{3}\\) \\d{3}-\\d{4}\" could be adjusted upwards if the area code is known to be the local area code of a company office using the hotword regex \"\\(xxx\\)\", where \"xxx\" is the area code in question." + "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)." } }, "type": "object" @@ -5258,12 +5506,48 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ImageTransformation": { + "description": "Configuration for determining how redaction of images should occur.", + "id": "GooglePrivacyDlpV2ImageTransformation", + "properties": { + "allInfoTypes": { + "$ref": "GooglePrivacyDlpV2AllInfoTypes", + "description": "Apply transformation to all findings not specified in other ImageTransformation's selected_info_types. Only one instance is allowed within the ImageTransformations message." + }, + "allText": { + "$ref": "GooglePrivacyDlpV2AllText", + "description": "Apply transformation to all text that doesn't match an infoType. Only one instance is allowed within the ImageTransformations message." + }, + "redactionColor": { + "$ref": "GooglePrivacyDlpV2Color", + "description": "The color to use when redacting content from an image. If not specified, the default is black." + }, + "selectedInfoTypes": { + "$ref": "GooglePrivacyDlpV2SelectedInfoTypes", + "description": "Apply transformation to the selected info_types." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2ImageTransformations": { + "description": "A type of transformation that is applied over images.", + "id": "GooglePrivacyDlpV2ImageTransformations", + "properties": { + "transforms": { + "items": { + "$ref": "GooglePrivacyDlpV2ImageTransformation" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2InfoType": { "description": "Type of information detected by the API.", "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/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}`.", "type": "string" }, "version": { @@ -5273,10 +5557,156 @@ }, "type": "object" }, + "GooglePrivacyDlpV2InfoTypeCategory": { + "description": "Classification of infoTypes to organize them according to geographic location, industry, and data type.", + "id": "GooglePrivacyDlpV2InfoTypeCategory", + "properties": { + "industryCategory": { + "description": "The group of relevant businesses where this infoType is commonly used", + "enum": [ + "INDUSTRY_UNSPECIFIED", + "FINANCE", + "HEALTH", + "TELECOMMUNICATIONS" + ], + "enumDescriptions": [ + "Unused industry", + "The infoType is typically used in the finance industry.", + "The infoType is typically used in the health industry.", + "The infoType is typically used in the telecommunications industry." + ], + "type": "string" + }, + "locationCategory": { + "description": "The region or country that issued the ID or document represented by the infoType.", + "enum": [ + "LOCATION_UNSPECIFIED", + "GLOBAL", + "ARGENTINA", + "AUSTRALIA", + "BELGIUM", + "BRAZIL", + "CANADA", + "CHILE", + "CHINA", + "COLOMBIA", + "DENMARK", + "FRANCE", + "FINLAND", + "GERMANY", + "HONG_KONG", + "INDIA", + "INDONESIA", + "IRELAND", + "ISRAEL", + "ITALY", + "JAPAN", + "KOREA", + "MEXICO", + "THE_NETHERLANDS", + "NORWAY", + "PARAGUAY", + "PERU", + "POLAND", + "PORTUGAL", + "SINGAPORE", + "SOUTH_AFRICA", + "SPAIN", + "SWEDEN", + "TAIWAN", + "THAILAND", + "TURKEY", + "UNITED_KINGDOM", + "UNITED_STATES", + "URUGUAY", + "VENEZUELA", + "INTERNAL", + "NEW_ZEALAND" + ], + "enumDescriptions": [ + "Unused location", + "The infoType is not issued by or tied to a specific region, but is used almost everywhere.", + "The infoType is typically used in Argentina.", + "The infoType is typically used in Australia.", + "The infoType is typically used in Belgium.", + "The infoType is typically used in Brazil.", + "The infoType is typically used in Canada.", + "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 Denmark.", + "The infoType is typically used in France.", + "The infoType is typically used in Finland.", + "The infoType is typically used in Germany.", + "The infoType is typically used in Hong Kong.", + "The infoType is typically used in India.", + "The infoType is typically used in Indonesia.", + "The infoType is typically used in Ireland.", + "The infoType is typically used in Israel.", + "The infoType is typically used in Italy.", + "The infoType is typically used in Japan.", + "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 Norway.", + "The infoType is typically used in Paraguay.", + "The infoType is typically used in Peru.", + "The infoType is typically used in Poland.", + "The infoType is typically used in Portugal.", + "The infoType is typically used in Singapore.", + "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 Taiwan.", + "The infoType is typically used in Thailand.", + "The infoType is typically used in Turkey.", + "The infoType is typically used in the United Kingdom.", + "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." + ], + "type": "string" + }, + "typeCategory": { + "description": "The class of identifiers where this infoType belongs", + "enum": [ + "TYPE_UNSPECIFIED", + "PII", + "SPII", + "DEMOGRAPHIC", + "CREDENTIAL", + "GOVERNMENT_ID", + "DOCUMENT", + "CONTEXTUAL_INFORMATION" + ], + "enumDescriptions": [ + "Unused type", + "Personally identifiable information, for example, a name or phone number", + "Personally identifiable information that is especially sensitive, for example, a passport number.", + "Attributes that can partially identify someone, especially in combination with other attributes, like age, height, and gender.", + "Confidential or secret information, for example, a password.", + "An identification document issued by a government.", + "A document, for example, a resume or source code.", + "Information that is not sensitive on its own, but provides details about the circumstances surrounding an entity or an event." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2InfoTypeDescription": { "description": "InfoType description.", "id": "GooglePrivacyDlpV2InfoTypeDescription", "properties": { + "categories": { + "description": "The category of the infoType.", + "items": { + "$ref": "GooglePrivacyDlpV2InfoTypeCategory" + }, + "type": "array" + }, "description": { "description": "Description of the infotype. Translated when language is provided in the request.", "type": "string" @@ -5289,6 +5719,10 @@ "description": "Internal name of the infoType.", "type": "string" }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "The default sensitivity of the infoType." + }, "supportedBy": { "description": "Which parts of the API supports this InfoType.", "items": { @@ -5305,6 +5739,13 @@ "type": "string" }, "type": "array" + }, + "versions": { + "description": "A list of available versions for the infotype.", + "items": { + "$ref": "GooglePrivacyDlpV2VersionDescription" + }, + "type": "array" } }, "type": "object" @@ -5341,6 +5782,22 @@ }, "type": "object" }, + "GooglePrivacyDlpV2InfoTypeSummary": { + "description": "The infoType details for this column.", + "id": "GooglePrivacyDlpV2InfoTypeSummary", + "properties": { + "estimatedPrevalence": { + "description": "Not populated for predicted infotypes.", + "format": "int32", + "type": "integer" + }, + "infoType": { + "$ref": "GooglePrivacyDlpV2InfoType", + "description": "The infoType." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2InfoTypeTransformation": { "description": "A transformation to apply to text that is identified as a specific info_type.", "id": "GooglePrivacyDlpV2InfoTypeTransformation", @@ -5418,7 +5875,7 @@ }, "limits": { "$ref": "GooglePrivacyDlpV2FindingLimits", - "description": "Configuration to control the number of findings returned. This is not used for data profiling." + "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." }, "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.", @@ -5432,11 +5889,11 @@ ], "enumDescriptions": [ "Default value; same as POSSIBLE.", - "Few matching elements.", - "", - "Some matching elements.", - "", - "Many matching elements." + "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" }, @@ -5616,7 +6073,7 @@ "type": "object" }, "GooglePrivacyDlpV2JobNotificationEmails": { - "description": "Enable email notification to project owners and editors on jobs's completion/failure.", + "description": "Sends an email when the job completes. The email goes to IAM project owners and technical [Essential Contacts](https://cloud.google.com/resource-manager/docs/managing-notification-contacts).", "id": "GooglePrivacyDlpV2JobNotificationEmails", "properties": {}, "type": "object" @@ -6013,7 +6470,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 Google 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/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.", "id": "GooglePrivacyDlpV2LargeCustomDictionaryConfig", "properties": { "bigQueryField": { @@ -6026,7 +6483,7 @@ }, "outputPath": { "$ref": "GooglePrivacyDlpV2CloudStoragePath", - "description": "Location to store dictionary artifacts in Google Cloud Storage. These files will only be accessible by project owners and the DLP API. If any of these artifacts are modified, the dictionary is considered invalid and can no longer be used." + "description": "Location to store dictionary artifacts in Cloud Storage. These files will only be accessible by project owners and the DLP API. If any of these artifacts are modified, the dictionary is considered invalid and can no longer be used." } }, "type": "object" @@ -6065,11 +6522,11 @@ ], "enumDescriptions": [ "Default value; same as POSSIBLE.", - "Few matching elements.", - "", - "Some matching elements.", - "", - "Many matching elements." + "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" }, @@ -6273,6 +6730,22 @@ }, "type": "object" }, + "GooglePrivacyDlpV2OtherInfoTypeSummary": { + "description": "Infotype details for other infoTypes found within a column.", + "id": "GooglePrivacyDlpV2OtherInfoTypeSummary", + "properties": { + "estimatedPrevalence": { + "description": "Approximate percentage of non-null rows that contained data detected by this infotype.", + "format": "int32", + "type": "integer" + }, + "infoType": { + "$ref": "GooglePrivacyDlpV2InfoType", + "description": "The other infoType." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2OutputStorageConfig": { "description": "Cloud repository for storing output.", "id": "GooglePrivacyDlpV2OutputStorageConfig", @@ -6290,7 +6763,7 @@ "enumDescriptions": [ "Unused.", "Basic schema including only `info_type`, `quote`, `certainty`, and `timestamp`.", - "Schema tailored to findings from scanning Google Cloud Storage.", + "Schema tailored to findings from scanning Cloud Storage.", "Schema tailored to findings from scanning Google Datastore.", "Schema tailored to findings from scanning Google BigQuery.", "Schema containing all columns." @@ -6299,7 +6772,7 @@ }, "table": { "$ref": "GooglePrivacyDlpV2BigQueryTable", - "description": "Store findings in an existing table or a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific timezone will be used for generating the date details. For Inspect, each column in an existing output table must have the same name, type, and mode of a field in the `Finding` object. For Risk, an existing output table should be the output of a previous Risk analysis job run on the same source table, with the same privacy metric and quasi-identifiers. Risk jobs that analyze the same table but compute a different privacy metric, or use different sets of quasi-identifiers, cannot store their results in the same table." + "description": "Store findings in an existing table or a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details. For Inspect, each column in an existing output table must have the same name, type, and mode of a field in the `Finding` object. For Risk, an existing output table should be the output of a previous Risk analysis job run on the same source table, with the same privacy metric and quasi-identifiers. Risk jobs that analyze the same table but compute a different privacy metric, or use different sets of quasi-identifiers, cannot store their results in the same table." } }, "type": "object" @@ -6425,6 +6898,21 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ProfileStatus": { + "id": "GooglePrivacyDlpV2ProfileStatus", + "properties": { + "status": { + "$ref": "GoogleRpcStatus", + "description": "Profiling status code and optional message" + }, + "timestamp": { + "description": "Time when the profile generation status was updated", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Proximity": { "description": "Message for specifying a window around a finding to apply a detection rule.", "id": "GooglePrivacyDlpV2Proximity", @@ -6435,27 +6923,137 @@ "type": "integer" }, "windowBefore": { - "description": "Number of characters before the finding to consider.", + "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).", "format": "int32", "type": "integer" } }, "type": "object" }, + "GooglePrivacyDlpV2PubSubCondition": { + "description": "A condition consisting of a value.", + "id": "GooglePrivacyDlpV2PubSubCondition", + "properties": { + "minimumRiskScore": { + "description": "The minimum data risk score that triggers the condition.", + "enum": [ + "PROFILE_SCORE_BUCKET_UNSPECIFIED", + "HIGH", + "MEDIUM_OR_HIGH" + ], + "enumDescriptions": [ + "Unused.", + "High risk/sensitivity detected.", + "Medium or high risk/sensitivity detected." + ], + "type": "string" + }, + "minimumSensitivityScore": { + "description": "The minimum sensitivity level that triggers the condition.", + "enum": [ + "PROFILE_SCORE_BUCKET_UNSPECIFIED", + "HIGH", + "MEDIUM_OR_HIGH" + ], + "enumDescriptions": [ + "Unused.", + "High risk/sensitivity detected.", + "Medium or high risk/sensitivity detected." + ], + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2PubSubExpressions": { + "description": "An expression, consisting of an operator and conditions.", + "id": "GooglePrivacyDlpV2PubSubExpressions", + "properties": { + "conditions": { + "description": "Conditions to apply to the expression.", + "items": { + "$ref": "GooglePrivacyDlpV2PubSubCondition" + }, + "type": "array" + }, + "logicalOperator": { + "description": "The operator to apply to the collection of conditions.", + "enum": [ + "LOGICAL_OPERATOR_UNSPECIFIED", + "OR", + "AND" + ], + "enumDescriptions": [ + "Unused.", + "Conditional OR.", + "Conditional AND." + ], + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2PubSubNotification": { + "description": "Send a Pub/Sub message into the given Pub/Sub topic to connect other systems to data profile generation. The message payload data will be the byte serialization of `DataProfilePubSubMessage`.", + "id": "GooglePrivacyDlpV2PubSubNotification", + "properties": { + "detailOfMessage": { + "description": "How much data to include in the Pub/Sub message. If the user wishes to limit the size of the message, they can use resource_name and fetch the profile fields they wish to. Per table profile (not per column).", + "enum": [ + "DETAIL_LEVEL_UNSPECIFIED", + "TABLE_PROFILE", + "RESOURCE_NAME" + ], + "enumDescriptions": [ + "Unused.", + "The full table data profile.", + "The resource name of the table." + ], + "type": "string" + }, + "event": { + "description": "The type of event that triggers a Pub/Sub. At most one `PubSubNotification` per EventType is permitted.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "NEW_PROFILE", + "CHANGED_PROFILE", + "SCORE_INCREASED", + "ERROR_CHANGED" + ], + "enumDescriptions": [ + "Unused.", + "New profile (not a re-profile).", + "Changed one of the following profile metrics: * Table data risk score * Table sensitivity score * Table resource visibility * Table encryption type * Table predicted infoTypes * Table other infoTypes", + "Table data risk score or sensitivity score increased.", + "A user (non-internal) error occurred." + ], + "type": "string" + }, + "pubsubCondition": { + "$ref": "GooglePrivacyDlpV2DataProfilePubSubCondition", + "description": "Conditions (e.g., data risk or sensitivity level) for triggering a Pub/Sub." + }, + "topic": { + "description": "Cloud Pub/Sub topic to send notifications to. Format is projects/{project}/topics/{topic}.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog": { - "description": "Publish findings of a DlpJob to Data Catalog. Labels summarizing the results of the DlpJob will be applied to the entry for the resource scanned in Data Catalog. Any labels previously written by another DlpJob will be deleted. InfoType naming patterns are strictly enforced when using this feature. Note that the findings will be persisted in Data Catalog storage and are governed by Data Catalog service-specific policy, see https://cloud.google.com/terms/service-terms Only a single instance of this action can be specified and only allowed if all resources being scanned are BigQuery tables. Compatible with: Inspect", + "description": "Publish findings of a DlpJob to Data Catalog. In Data Catalog, tag templates are applied to the resource that Cloud DLP scanned. Data Catalog tag templates are stored in the same project and region where the BigQuery table exists. For Cloud DLP to create and apply the tag template, the Cloud DLP service agent must have the `roles/datacatalog.tagTemplateOwner` permission on the project. The tag template contains fields summarizing the results of the DlpJob. Any field values previously written by another DlpJob are deleted. InfoType naming patterns are strictly enforced when using this feature. Findings are persisted in Data Catalog storage and are governed by service-specific policies for Data Catalog. For more information, see [Service Specific Terms](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. This action is allowed only if all resources being scanned are BigQuery tables. Compatible with: Inspect", "id": "GooglePrivacyDlpV2PublishFindingsToCloudDataCatalog", "properties": {}, "type": "object" }, "GooglePrivacyDlpV2PublishSummaryToCscc": { - "description": "Publish the result summary of a DlpJob to the Cloud Security Command Center (CSCC Alpha). This action is only available for projects which are parts of an organization and whitelisted for the alpha Cloud Security Command Center. The action will publish count of finding instances and their info types. The summary of findings will be persisted in CSCC and are governed by CSCC service-specific policy, see https://cloud.google.com/terms/service-terms Only a single instance of this action can be specified. Compatible with: Inspect", + "description": "Publish the result summary of a DlpJob to [Security Command Center](https://cloud.google.com/security-command-center). This action is available for only projects that belong to an organization. This action publishes the count of finding instances and their infoTypes. The summary of findings are persisted in Security Command Center and are governed by [service-specific policies for Security Command Center](https://cloud.google.com/terms/service-terms). Only a single instance of this action can be specified. Compatible with: Inspect", "id": "GooglePrivacyDlpV2PublishSummaryToCscc", "properties": {}, "type": "object" }, "GooglePrivacyDlpV2PublishToPubSub": { - "description": "Publish a message into 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/dlp/docs/reference/rest/v2/projects.dlpJobs#DlpJob). Compatible with: Inspect, Risk", "id": "GooglePrivacyDlpV2PublishToPubSub", "properties": { "topic": { @@ -6613,6 +7211,25 @@ }, "type": "object" }, + "GooglePrivacyDlpV2RecordTransformation": { + "id": "GooglePrivacyDlpV2RecordTransformation", + "properties": { + "containerTimestamp": { + "description": "Findings container modification timestamp, if applicable.", + "format": "google-datetime", + "type": "string" + }, + "containerVersion": { + "description": "Container version, if available (\"generation\" for Cloud Storage).", + "type": "string" + }, + "fieldId": { + "$ref": "GooglePrivacyDlpV2FieldId", + "description": "For record transformations, provide a field." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2RecordTransformations": { "description": "A type of transformation that is applied over structured data such as a table.", "id": "GooglePrivacyDlpV2RecordTransformations", @@ -6741,7 +7358,7 @@ "type": "object" }, "GooglePrivacyDlpV2ReidentifyContentResponse": { - "description": "Results of re-identifying a item.", + "description": "Results of re-identifying an item.", "id": "GooglePrivacyDlpV2ReidentifyContentResponse", "properties": { "item": { @@ -6889,13 +7506,50 @@ "id": "GooglePrivacyDlpV2Schedule", "properties": { "recurrencePeriodDuration": { - "description": "With this option a job is started a regular periodic basis. For example: every day (86400 seconds). A scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs. This value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.", + "description": "With this option a job is started on a regular periodic basis. For example: every day (86400 seconds). A scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs. This value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.", "format": "google-duration", "type": "string" } }, "type": "object" }, + "GooglePrivacyDlpV2SelectedInfoTypes": { + "description": "Apply transformation to the selected info_types.", + "id": "GooglePrivacyDlpV2SelectedInfoTypes", + "properties": { + "infoTypes": { + "description": "Required. InfoTypes to apply the transformation to. Required. Provided InfoType must be unique within the ImageTransformations message.", + "items": { + "$ref": "GooglePrivacyDlpV2InfoType" + }, + "type": "array" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2SensitivityScore": { + "description": "Score is a summary of all elements in the data profile. A higher number means more sensitive.", + "id": "GooglePrivacyDlpV2SensitivityScore", + "properties": { + "score": { + "description": "The score applied to the resource.", + "enum": [ + "SENSITIVITY_SCORE_UNSPECIFIED", + "SENSITIVITY_LOW", + "SENSITIVITY_MODERATE", + "SENSITIVITY_HIGH" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2StatisticalTable": { "description": "An auxiliary table containing statistical information on the relative frequency of different quasi-identifiers values. It has one or several quasi-identifiers columns, and one column that indicates the relative frequency of each quasi-identifier tuple. If a tuple is present in the data but not in the auxiliary table, the corresponding relative frequency is assumed to be zero (and thus, the tuple is highly reidentifiable).", "id": "GooglePrivacyDlpV2StatisticalTable", @@ -6928,7 +7582,7 @@ }, "cloudStorageOptions": { "$ref": "GooglePrivacyDlpV2CloudStorageOptions", - "description": "Google Cloud Storage options." + "description": "Cloud Storage options." }, "datastoreOptions": { "$ref": "GooglePrivacyDlpV2DatastoreOptions", @@ -7028,7 +7682,7 @@ "type": "string" }, "errors": { - "description": "Errors that occurred when creating this storedInfoType version, or anomalies detected in the storedInfoType data that render it unusable. Only the five most recent errors will be displayed, with the most recent error appearing first. For example, some of the data for stored custom dictionaries is put in the user's Google Cloud Storage bucket, and if this data is modified or deleted by the user or another system, the dictionary becomes invalid. If any errors occur, fix the problem indicated by the error message and use the UpdateStoredInfoType API method to create another version of the storedInfoType to continue using it, reusing the same `config` if it was not the source of the error.", + "description": "Errors that occurred when creating this storedInfoType version, or anomalies detected in the storedInfoType data that render it unusable. Only the five most recent errors will be displayed, with the most recent error appearing first. For example, some of the data for stored custom dictionaries is put in the user's Cloud Storage bucket, and if this data is modified or deleted by the user or another system, the dictionary becomes invalid. If any errors occur, fix the problem indicated by the error message and use the UpdateStoredInfoType API method to create another version of the storedInfoType to continue using it, reusing the same `config` if it was not the source of the error.", "items": { "$ref": "GooglePrivacyDlpV2Error" }, @@ -7132,6 +7786,160 @@ }, "type": "object" }, + "GooglePrivacyDlpV2TableDataProfile": { + "description": "The profile for a scanned table.", + "id": "GooglePrivacyDlpV2TableDataProfile", + "properties": { + "configSnapshot": { + "$ref": "GooglePrivacyDlpV2DataProfileConfigSnapshot", + "description": "The snapshot of the configurations used to generate the profile." + }, + "createTime": { + "description": "The time at which the table was created.", + "format": "google-datetime", + "type": "string" + }, + "dataRiskLevel": { + "$ref": "GooglePrivacyDlpV2DataRiskLevel", + "description": "The data risk level of this table." + }, + "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 GCP project ID that owns the BigQuery dataset.", + "type": "string" + }, + "encryptionStatus": { + "description": "How the table is encrypted.", + "enum": [ + "ENCRYPTION_STATUS_UNSPECIFIED", + "ENCRYPTION_GOOGLE_MANAGED", + "ENCRYPTION_CUSTOMER_MANAGED" + ], + "enumDescriptions": [ + "Unused.", + "Google manages server-side encryption keys on your behalf.", + "Customer provides the key." + ], + "type": "string" + }, + "expirationTime": { + "description": "Optional. The time when this table expires.", + "format": "google-datetime", + "type": "string" + }, + "failedColumnCount": { + "description": "The number of columns skipped in the table because of an error.", + "format": "int64", + "type": "string" + }, + "fullResource": { + "description": "The resource name of the table. https://cloud.google.com/apis/design/resource_names#full_resource_name", + "type": "string" + }, + "lastModifiedTime": { + "description": "The time when this table was last modified", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name of the profile.", + "type": "string" + }, + "otherInfoTypes": { + "description": "Other infoTypes found in this table's data.", + "items": { + "$ref": "GooglePrivacyDlpV2OtherInfoTypeSummary" + }, + "type": "array" + }, + "predictedInfoTypes": { + "description": "The infoTypes predicted from this table's data.", + "items": { + "$ref": "GooglePrivacyDlpV2InfoTypeSummary" + }, + "type": "array" + }, + "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." + }, + "projectDataProfile": { + "description": "The resource name to the project data profile for this table.", + "type": "string" + }, + "resourceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels applied to the resource at the time the profile was generated.", + "type": "object" + }, + "resourceVisibility": { + "description": "How broadly a resource has been shared.", + "enum": [ + "RESOURCE_VISIBILITY_UNSPECIFIED", + "RESOURCE_VISIBILITY_PUBLIC", + "RESOURCE_VISIBILITY_RESTRICTED" + ], + "enumDescriptions": [ + "Unused.", + "Visible to any user.", + "Visible only to specific users." + ], + "type": "string" + }, + "rowCount": { + "description": "Number of rows in the table when the profile was generated. This will not be populated for BigLake tables.", + "format": "int64", + "type": "string" + }, + "scannedColumnCount": { + "description": "The number of columns profiled in the table.", + "format": "int64", + "type": "string" + }, + "sensitivityScore": { + "$ref": "GooglePrivacyDlpV2SensitivityScore", + "description": "The sensitivity score of this table." + }, + "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" + }, + "tableId": { + "description": "The BigQuery table ID.", + "type": "string" + }, + "tableSizeBytes": { + "description": "The size of the table when the profile was generated.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2TableLocation": { "description": "Location of a finding within a table.", "id": "GooglePrivacyDlpV2TableLocation", @@ -7229,11 +8037,11 @@ "type": "object" }, "GooglePrivacyDlpV2TimespanConfig": { - "description": "Configuration of the timespan of the items to include in scanning. Currently only supported when inspecting Google Cloud Storage and BigQuery.", + "description": "Configuration of the timespan of the items to include in scanning. Currently only supported when inspecting Cloud Storage and BigQuery.", "id": "GooglePrivacyDlpV2TimespanConfig", "properties": { "enableAutoPopulationOfTimespanConfig": { - "description": "When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger.", + "description": "When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger or the timespan end_time used in the last run of the JobTrigger.", "type": "boolean" }, "endTime": { @@ -7248,7 +8056,129 @@ }, "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`. 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`." + "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." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2TransformationConfig": { + "description": "User specified templates and configs for how to deidentify structured, unstructures, and image files. User must provide either a unstructured deidentify template or at least one redact image config.", + "id": "GooglePrivacyDlpV2TransformationConfig", + "properties": { + "deidentifyTemplate": { + "description": "De-identify template. If this template is specified, it will serve as the default de-identify template. This template cannot contain `record_transformations` since it can be used for unstructured content such as free-form text files. If this template is not set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify unstructured content.", + "type": "string" + }, + "imageRedactTemplate": { + "description": "Image redact template. If this template is specified, it will serve as the de-identify template for images. If this template is not set, all findings in the image will be redacted with a black box.", + "type": "string" + }, + "structuredDeidentifyTemplate": { + "description": "Structured de-identify template. If this template is specified, it will serve as the de-identify template for structured content such as delimited files and tables. If this template is not set but the `deidentify_template` is set, then `deidentify_template` will also apply to the structured content. If neither template is set, a default `ReplaceWithInfoTypeConfig` will be used to de-identify structured content.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2TransformationDescription": { + "description": "A flattened description of a `PrimitiveTransformation` or `RecordSuppression`.", + "id": "GooglePrivacyDlpV2TransformationDescription", + "properties": { + "condition": { + "description": "A human-readable string representation of the `RecordCondition` corresponding to this transformation. Set if a `RecordCondition` was used to determine whether or not to apply this transformation. Examples: * (age_field > 85) * (age_field <= 18) * (zip_field exists) * (zip_field == 01234) && (city_field != \"Springville\") * (zip_field == 01234) && (age_field <= 18) && (city_field exists)", + "type": "string" + }, + "description": { + "description": "A description of the transformation. This is empty for a RECORD_SUPPRESSION, or is the output of calling toString() on the `PrimitiveTransformation` protocol buffer message for any other type of transformation.", + "type": "string" + }, + "infoType": { + "$ref": "GooglePrivacyDlpV2InfoType", + "description": "Set if the transformation was limited to a specific `InfoType`." + }, + "type": { + "description": "The transformation type.", + "enum": [ + "TRANSFORMATION_TYPE_UNSPECIFIED", + "RECORD_SUPPRESSION", + "REPLACE_VALUE", + "REPLACE_DICTIONARY", + "REDACT", + "CHARACTER_MASK", + "CRYPTO_REPLACE_FFX_FPE", + "FIXED_SIZE_BUCKETING", + "BUCKETING", + "REPLACE_WITH_INFO_TYPE", + "TIME_PART", + "CRYPTO_HASH", + "DATE_SHIFT", + "CRYPTO_DETERMINISTIC_CONFIG", + "REDACT_IMAGE" + ], + "enumDescriptions": [ + "Unused", + "Record suppression", + "Replace value", + "Replace value using a dictionary.", + "Redact", + "Character mask", + "FFX-FPE", + "Fixed size bucketing", + "Bucketing", + "Replace with info type", + "Time part", + "Crypto hash", + "Date shift", + "Deterministic crypto", + "Redact image" + ], + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2TransformationDetails": { + "description": "Details about a single transformation. This object contains a description of the transformation, information about whether the transformation was successfully applied, and the precise location where the transformation occurred. These details are stored in a user-specified BigQuery table.", + "id": "GooglePrivacyDlpV2TransformationDetails", + "properties": { + "containerName": { + "description": "The top level name of the container where the transformation is located (this will be the source file name or table name).", + "type": "string" + }, + "resourceName": { + "description": "The name of the job that completed the transformation.", + "type": "string" + }, + "statusDetails": { + "$ref": "GooglePrivacyDlpV2TransformationResultStatus", + "description": "Status of the transformation, if transformation was not successful, this will specify what caused it to fail, otherwise it will show that the transformation was successful." + }, + "transformation": { + "description": "Description of transformation. This would only contain more than one element if there were multiple matching transformations and which one to apply was ambiguous. Not set for states that contain no transformation, currently only state that contains no transformation is TransformationResultStateType.METADATA_UNRETRIEVABLE.", + "items": { + "$ref": "GooglePrivacyDlpV2TransformationDescription" + }, + "type": "array" + }, + "transformationLocation": { + "$ref": "GooglePrivacyDlpV2TransformationLocation", + "description": "The precise location of the transformed content in the original container." + }, + "transformedBytes": { + "description": "The number of bytes that were transformed. If transformation was unsuccessful or did not take place because there was no content to transform, this will be zero.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2TransformationDetailsStorageConfig": { + "description": "Config for storing transformation details.", + "id": "GooglePrivacyDlpV2TransformationDetailsStorageConfig", + "properties": { + "table": { + "$ref": "GooglePrivacyDlpV2BigQueryTable", + "description": "The BigQuery table in which to store the output. This may be an existing table or in a new table in an existing dataset. If table_id is not set a new one will be generated for you with the following format: dlp_googleapis_transformation_details_yyyy_mm_dd_[dlp_job_id]. Pacific time zone will be used for generating the date details." } }, "type": "object" @@ -7268,6 +8198,37 @@ }, "type": "object" }, + "GooglePrivacyDlpV2TransformationLocation": { + "description": "Specifies the location of a transformation.", + "id": "GooglePrivacyDlpV2TransformationLocation", + "properties": { + "containerType": { + "description": "Information about the functionality of the container where this finding occurred, if available.", + "enum": [ + "TRANSFORM_UNKNOWN_CONTAINER", + "TRANSFORM_BODY", + "TRANSFORM_METADATA", + "TRANSFORM_TABLE" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "findingId": { + "description": "For infotype transformations, link to the corresponding findings ID so that location information does not need to be duplicated. Each findings ID correlates to an entry in the findings output table, this table only gets created when users specify to save findings (add the save findings action to the request).", + "type": "string" + }, + "recordTransformation": { + "$ref": "GooglePrivacyDlpV2RecordTransformation", + "description": "For record transformations, provide a field and container information." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2TransformationOverview": { "description": "Overview of the modifications that occurred.", "id": "GooglePrivacyDlpV2TransformationOverview", @@ -7287,6 +8248,34 @@ }, "type": "object" }, + "GooglePrivacyDlpV2TransformationResultStatus": { + "id": "GooglePrivacyDlpV2TransformationResultStatus", + "properties": { + "details": { + "$ref": "GoogleRpcStatus", + "description": "Detailed error codes and messages" + }, + "resultStatusType": { + "description": "Transformation result status type, this will be either SUCCESS, or it will be the reason for why the transformation was not completely successful.", + "enum": [ + "STATE_TYPE_UNSPECIFIED", + "INVALID_TRANSFORM", + "BIGQUERY_MAX_ROW_SIZE_EXCEEDED", + "METADATA_UNRETRIEVABLE", + "SUCCESS" + ], + "enumDescriptions": [ + "", + "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.", + "This will be set when the transformation and storing of it is successful." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2TransformationSummary": { "description": "Summary of a single transformation. Only one of 'transformation', 'field_transformation', or 'record_suppress' will be set.", "id": "GooglePrivacyDlpV2TransformationSummary", @@ -7509,6 +8498,21 @@ }, "type": "object" }, + "GooglePrivacyDlpV2VersionDescription": { + "description": "Details about each available version for an infotype.", + "id": "GooglePrivacyDlpV2VersionDescription", + "properties": { + "description": { + "description": "Description of the version.", + "type": "string" + }, + "version": { + "description": "Name of the version", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2WordList": { "description": "Message defining a list of words or phrases to search for in the data.", "id": "GooglePrivacyDlpV2WordList", @@ -7524,7 +8528,7 @@ "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" @@ -7557,7 +8561,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/dns/v1/dns-api.json b/etc/api/dns/v1/dns-api.json index 15591050d8..0f955bba3b 100644 --- a/etc/api/dns/v1/dns-api.json +++ b/etc/api/dns/v1/dns-api.json @@ -588,6 +588,37 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v1/projects/{projectsId}/managedZones/{managedZonesId}:getIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GoogleIamV1GetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "list": { "description": "Enumerates ManagedZones that have been created but not yet deleted.", "flatPath": "dns/v1/projects/{project}/managedZones", @@ -671,6 +702,66 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v1/projects/{projectsId}/managedZones/{managedZonesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1/{+resource}:setIamPolicy", + "request": { + "$ref": "GoogleIamV1SetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this 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": "dns/v1/projects/{projectsId}/managedZones/{managedZonesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "update": { "description": "Updates an existing ManagedZone.", "flatPath": "dns/v1/projects/{project}/managedZones/{managedZone}", @@ -1402,7 +1493,7 @@ "type": "string" }, "responsePolicy": { - "description": "User assigned name of the Respones Policy addressed by this request.", + "description": "User assigned name of the response policy addressed by this request.", "location": "path", "required": true, "type": "string" @@ -1733,7 +1824,7 @@ } } }, - "revision": "20220217", + "revision": "20230119", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -1985,6 +2076,197 @@ }, "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" + }, + "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", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "GoogleIamV1AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", + "id": "GoogleIamV1AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "GoogleIamV1Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.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`. ", + "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`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1GetIamPolicyRequest": { + "description": "Request message for `GetIamPolicy` method.", + "id": "GoogleIamV1GetIamPolicyRequest", + "properties": { + "options": { + "$ref": "GoogleIamV1GetPolicyOptions", + "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." + } + }, + "type": "object" + }, + "GoogleIamV1GetPolicyOptions": { + "description": "Encapsulates settings provided to GetIamPolicy.", + "id": "GoogleIamV1GetPolicyOptions", + "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" + }, + "GoogleIamV1Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "GoogleIamV1Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "GoogleIamV1AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "GoogleIamV1Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleIamV1SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "GoogleIamV1SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "GoogleIamV1Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ManagedZone": { "description": "A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.", "id": "ManagedZone", @@ -2168,6 +2450,10 @@ "description": "IPv4 address of a target name server.", "type": "string" }, + "ipv6Address": { + "description": "IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", + "type": "string" + }, "kind": { "default": "dns#managedZoneForwardingConfigNameServerTarget", "type": "string" @@ -2235,6 +2521,13 @@ "ManagedZonePrivateVisibilityConfig": { "id": "ManagedZonePrivateVisibilityConfig", "properties": { + "gkeClusters": { + "description": "The list of Google Kubernetes Engine clusters that can see this zone.", + "items": { + "$ref": "ManagedZonePrivateVisibilityConfigGKECluster" + }, + "type": "array" + }, "kind": { "default": "dns#managedZonePrivateVisibilityConfig", "type": "string" @@ -2249,6 +2542,20 @@ }, "type": "object" }, + "ManagedZonePrivateVisibilityConfigGKECluster": { + "id": "ManagedZonePrivateVisibilityConfigGKECluster", + "properties": { + "gkeClusterName": { + "description": "The resource name of the cluster to bind this ManagedZone to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get", + "type": "string" + }, + "kind": { + "default": "dns#managedZonePrivateVisibilityConfigGKECluster", + "type": "string" + } + }, + "type": "object" + }, "ManagedZonePrivateVisibilityConfigNetwork": { "id": "ManagedZonePrivateVisibilityConfigNetwork", "properties": { @@ -2531,7 +2838,11 @@ "type": "string" }, "ipv4Address": { - "description": "IPv4 address to forward to.", + "description": "IPv4 address to forward queries to.", + "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", "type": "string" }, "kind": { @@ -2588,6 +2899,21 @@ "format": "int32", "type": "integer" }, + "gkeClustersPerManagedZone": { + "description": "Maximum allowed number of GKE clusters to which a privately scoped zone can be attached.", + "format": "int32", + "type": "integer" + }, + "gkeClustersPerPolicy": { + "description": "Maximum allowed number of GKE clusters per policy.", + "format": "int32", + "type": "integer" + }, + "gkeClustersPerResponsePolicy": { + "description": "Maximum allowed number of GKE clusters per response policy.", + "format": "int32", + "type": "integer" + }, "itemsPerRoutingPolicy": { "description": "Maximum allowed number of items per routing policy.", "format": "int32", @@ -2602,6 +2928,11 @@ "format": "int32", "type": "integer" }, + "managedZonesPerGkeCluster": { + "description": "Maximum allowed number of managed zones which can be attached to a GKE cluster.", + "format": "int32", + "type": "integer" + }, "managedZonesPerNetwork": { "description": "Maximum allowed number of managed zones which can be attached to a network.", "format": "int32", @@ -2617,6 +2948,11 @@ "format": "int32", "type": "integer" }, + "networksPerResponsePolicy": { + "description": "Maximum allowed number of networks per response policy.", + "format": "int32", + "type": "integer" + }, "peeringZonesPerTargetNetwork": { "description": "Maximum allowed number of consumer peering zones per target network owned by this producer project", "format": "int32", @@ -2632,6 +2968,16 @@ "format": "int32", "type": "integer" }, + "responsePolicies": { + "description": "Maximum allowed number of response policies per project.", + "format": "int32", + "type": "integer" + }, + "responsePolicyRulesPerResponsePolicy": { + "description": "Maximum allowed number of rules per response policy.", + "format": "int32", + "type": "integer" + }, "rrsetAdditionsPerChange": { "description": "Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.", "format": "int32", @@ -2683,6 +3029,9 @@ "default": "dns#rRSetRoutingPolicy", "type": "string" }, + "primaryBackup": { + "$ref": "RRSetRoutingPolicyPrimaryBackupPolicy" + }, "wrr": { "$ref": "RRSetRoutingPolicyWrrPolicy" } @@ -2693,6 +3042,10 @@ "description": "Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user.", "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.", + "type": "boolean" + }, "items": { "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", "items": { @@ -2711,6 +3064,10 @@ "description": "ResourceRecordSet data for one geo location.", "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem", "properties": { + "healthCheckedTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with rrdata within this item." + }, "kind": { "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", "type": "string" @@ -2735,6 +3092,96 @@ }, "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.", + "id": "RRSetRoutingPolicyHealthCheckTargets", + "properties": { + "internalLoadBalancers": { + "items": { + "$ref": "RRSetRoutingPolicyLoadBalancerTarget" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyLoadBalancerTarget": { + "id": "RRSetRoutingPolicyLoadBalancerTarget", + "properties": { + "ipAddress": { + "description": "The frontend IP address of the", + "type": "string" + }, + "ipProtocol": { + "enum": [ + "undefined", + "tcp", + "udp" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyLoadBalancerTarget", + "type": "string" + }, + "loadBalancerType": { + "enum": [ + "none", + "regionalL4ilb" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified url of the network on which the ILB is", + "type": "string" + }, + "port": { + "description": "Load Balancer to health check. 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.", + "type": "string" + }, + "region": { + "description": "The region for regional ILBs.", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyPrimaryBackupPolicy": { + "description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", + "id": "RRSetRoutingPolicyPrimaryBackupPolicy", + "properties": { + "backupGeoTargets": { + "$ref": "RRSetRoutingPolicyGeoPolicy", + "description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to BACKUP, this policy essentially becomes a geo routing policy." + }, + "kind": { + "default": "dns#rRSetRoutingPolicyPrimaryBackupPolicy", + "type": "string" + }, + "primaryTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets" + }, + "trickleTraffic": { + "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "RRSetRoutingPolicyWrrPolicy": { "description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", "id": "RRSetRoutingPolicyWrrPolicy", @@ -2756,6 +3203,10 @@ "description": "A routing block which contains the routing information for one WRR item.", "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem", "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." + }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", "type": "string" @@ -2871,7 +3322,7 @@ "$ref": "ResponseHeader" }, "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 page token. This lets you the complete contents of even very large 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 all 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 more results exist following your last page of results in pagination order. To fetch them, make another list request by using this value as your page token. This lets you view the complete contents of even very large 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 all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "responsePolicies": { @@ -2916,6 +3367,13 @@ "description": "User-provided description for this Response Policy.", "type": "string" }, + "gkeClusters": { + "description": "The list of Google Kubernetes Engine clusters to which this response policy is applied.", + "items": { + "$ref": "ResponsePolicyGKECluster" + }, + "type": "array" + }, "id": { "description": "Unique identifier for the resource; defined by the server (output only).", "format": "int64", @@ -2925,6 +3383,13 @@ "default": "dns#responsePolicy", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User labels.", + "type": "object" + }, "networks": { "description": "List of network names specifying networks to which this policy is applied.", "items": { @@ -2939,6 +3404,20 @@ }, "type": "object" }, + "ResponsePolicyGKECluster": { + "id": "ResponsePolicyGKECluster", + "properties": { + "gkeClusterName": { + "description": "The resource name of the cluster to bind this response policy to. This should be specified in the format like: projects/*/locations/*/clusters/*. This is referenced from GKE projects.locations.clusters.get API: https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/get", + "type": "string" + }, + "kind": { + "default": "dns#responsePolicyGKECluster", + "type": "string" + } + }, + "type": "object" + }, "ResponsePolicyNetwork": { "id": "ResponsePolicyNetwork", "properties": { @@ -2965,7 +3444,7 @@ ], "enumDescriptions": [ "", - "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used in conjunction with a wildcard to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and e.g., query the public internet instead. For instance, if these rules exist: *.example.com -> 1.2.3.4 foo.example.com -> PASSTHRU Then a query for 'foo.example.com' skips the wildcard." + "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used with a less-specific wildcard selector to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and query the public Internet instead. For instance, if these rules exist: *.example.com -> LocalData 1.2.3.4 foo.example.com -> Behavior 'bypassResponsePolicy' Then a query for 'foo.example.com' skips the wildcard. This additionally functions to facilitate the allowlist feature. RPZs can be applied to multiple levels in the (eventually org, folder, project, network) hierarchy. If a rule is applied at a higher level of the hierarchy, adding a passthru rule at a lower level will supersede that, and a query from an affected vm to that domain will be exempt from the RPZ and proceed to normal resolution behavior." ], "type": "string" }, diff --git a/etc/api/dns/v1beta2/dns-api.json b/etc/api/dns/v1beta2/dns-api.json index 7b0504f037..962e54a5cc 100644 --- a/etc/api/dns/v1beta2/dns-api.json +++ b/etc/api/dns/v1beta2/dns-api.json @@ -588,6 +588,37 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:getIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1beta2/{+resource}:getIamPolicy", + "request": { + "$ref": "GoogleIamV1GetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "list": { "description": "Enumerates ManagedZones that have been created but not yet deleted.", "flatPath": "dns/v1beta2/projects/{project}/managedZones", @@ -671,6 +702,66 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1beta2/{+resource}:setIamPolicy", + "request": { + "$ref": "GoogleIamV1SetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this 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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v1beta2/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "update": { "description": "Updates an existing ManagedZone.", "flatPath": "dns/v1beta2/projects/{project}/managedZones/{managedZone}", @@ -1399,7 +1490,7 @@ "type": "string" }, "responsePolicy": { - "description": "User assigned name of the Respones Policy addressed by this request.", + "description": "User assigned name of the response policy addressed by this request.", "location": "path", "required": true, "type": "string" @@ -1730,7 +1821,7 @@ } } }, - "revision": "20220217", + "revision": "20230119", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -1982,6 +2073,197 @@ }, "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" + }, + "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", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "GoogleIamV1AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", + "id": "GoogleIamV1AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "GoogleIamV1Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.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`. ", + "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`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1GetIamPolicyRequest": { + "description": "Request message for `GetIamPolicy` method.", + "id": "GoogleIamV1GetIamPolicyRequest", + "properties": { + "options": { + "$ref": "GoogleIamV1GetPolicyOptions", + "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." + } + }, + "type": "object" + }, + "GoogleIamV1GetPolicyOptions": { + "description": "Encapsulates settings provided to GetIamPolicy.", + "id": "GoogleIamV1GetPolicyOptions", + "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" + }, + "GoogleIamV1Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "GoogleIamV1Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "GoogleIamV1AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "GoogleIamV1Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleIamV1SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "GoogleIamV1SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "GoogleIamV1Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ManagedZone": { "description": "A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.", "id": "ManagedZone", @@ -2166,7 +2448,7 @@ "type": "string" }, "ipv6Address": { - "description": "IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated.", + "description": "IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", "type": "string" }, "kind": { @@ -2553,11 +2835,11 @@ "type": "string" }, "ipv4Address": { - "description": "IPv4 address to forward to.", + "description": "IPv4 address to forward queries to.", "type": "string" }, "ipv6Address": { - "description": "IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated.", + "description": "IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", "type": "string" }, "kind": { @@ -2619,6 +2901,11 @@ "format": "int32", "type": "integer" }, + "gkeClustersPerPolicy": { + "description": "Maximum allowed number of GKE clusters per policy.", + "format": "int32", + "type": "integer" + }, "gkeClustersPerResponsePolicy": { "description": "Maximum allowed number of GKE clusters per response policy.", "format": "int32", @@ -2658,6 +2945,11 @@ "format": "int32", "type": "integer" }, + "networksPerResponsePolicy": { + "description": "Maximum allowed number of networks per response policy.", + "format": "int32", + "type": "integer" + }, "peeringZonesPerTargetNetwork": { "description": "Maximum allowed number of consumer peering zones per target network owned by this producer project", "format": "int32", @@ -2673,6 +2965,11 @@ "format": "int32", "type": "integer" }, + "responsePolicies": { + "description": "Maximum allowed number of response policies per project.", + "format": "int32", + "type": "integer" + }, "responsePolicyRulesPerResponsePolicy": { "description": "Maximum allowed number of rules per response policy.", "format": "int32", @@ -2732,6 +3029,9 @@ "default": "dns#rRSetRoutingPolicy", "type": "string" }, + "primaryBackup": { + "$ref": "RRSetRoutingPolicyPrimaryBackupPolicy" + }, "wrr": { "$ref": "RRSetRoutingPolicyWrrPolicy" }, @@ -2745,6 +3045,10 @@ "description": "Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user.", "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.", + "type": "boolean" + }, "items": { "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", "items": { @@ -2763,6 +3067,10 @@ "description": "ResourceRecordSet data for one geo location.", "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem", "properties": { + "healthCheckedTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with rrdata within this item." + }, "kind": { "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", "type": "string" @@ -2787,6 +3095,96 @@ }, "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.", + "id": "RRSetRoutingPolicyHealthCheckTargets", + "properties": { + "internalLoadBalancers": { + "items": { + "$ref": "RRSetRoutingPolicyLoadBalancerTarget" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyLoadBalancerTarget": { + "id": "RRSetRoutingPolicyLoadBalancerTarget", + "properties": { + "ipAddress": { + "description": "The frontend IP address of the", + "type": "string" + }, + "ipProtocol": { + "enum": [ + "undefined", + "tcp", + "udp" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyLoadBalancerTarget", + "type": "string" + }, + "loadBalancerType": { + "enum": [ + "none", + "regionalL4ilb" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified url of the network on which the ILB is", + "type": "string" + }, + "port": { + "description": "Load Balancer to health check. 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.", + "type": "string" + }, + "region": { + "description": "The region for regional ILBs.", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyPrimaryBackupPolicy": { + "description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", + "id": "RRSetRoutingPolicyPrimaryBackupPolicy", + "properties": { + "backupGeoTargets": { + "$ref": "RRSetRoutingPolicyGeoPolicy", + "description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to BACKUP, this policy essentially becomes a geo routing policy." + }, + "kind": { + "default": "dns#rRSetRoutingPolicyPrimaryBackupPolicy", + "type": "string" + }, + "primaryTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets" + }, + "trickleTraffic": { + "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "RRSetRoutingPolicyWrrPolicy": { "description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", "id": "RRSetRoutingPolicyWrrPolicy", @@ -2808,6 +3206,10 @@ "description": "A routing block which contains the routing information for one WRR item.", "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem", "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." + }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", "type": "string" @@ -2918,7 +3320,7 @@ "$ref": "ResponseHeader" }, "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 page token. This lets you the complete contents of even very large 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 all 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 more results exist following your last page of results in pagination order. To fetch them, make another list request by using this value as your page token. This lets you view the complete contents of even very large 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 all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "responsePolicies": { @@ -2979,6 +3381,13 @@ "default": "dns#responsePolicy", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User labels.", + "type": "object" + }, "networks": { "description": "List of network names specifying networks to which this policy is applied.", "items": { @@ -3033,7 +3442,7 @@ ], "enumDescriptions": [ "", - "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used in conjunction with a wildcard to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and e.g., query the public internet instead. For instance, if these rules exist: *.example.com -> 1.2.3.4 foo.example.com -> PASSTHRU Then a query for 'foo.example.com' skips the wildcard." + "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used with a less-specific wildcard selector to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and query the public Internet instead. For instance, if these rules exist: *.example.com -> LocalData 1.2.3.4 foo.example.com -> Behavior 'bypassResponsePolicy' Then a query for 'foo.example.com' skips the wildcard. This additionally functions to facilitate the allowlist feature. RPZs can be applied to multiple levels in the (eventually org, folder, project, network) hierarchy. If a rule is applied at a higher level of the hierarchy, adding a passthru rule at a lower level will supersede that, and a query from an affected vm to that domain will be exempt from the RPZ and proceed to normal resolution behavior." ], "type": "string" }, diff --git a/etc/api/dns/v2/dns-api.json b/etc/api/dns/v2/dns-api.json index f822f47585..dcfa033b76 100644 --- a/etc/api/dns/v2/dns-api.json +++ b/etc/api/dns/v2/dns-api.json @@ -665,6 +665,37 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v2/projects/{projectsId}/locations/{locationsId}/managedZones/{managedZonesId}:getIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/{+resource}:getIamPolicy", + "request": { + "$ref": "GoogleIamV1GetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "list": { "description": "Enumerates ManagedZones that have been created but not yet deleted.", "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones", @@ -764,6 +795,66 @@ "https://www.googleapis.com/auth/ndev.clouddns.readwrite" ] }, + "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": "dns/v2/projects/{projectsId}/locations/{locationsId}/managedZones/{managedZonesId}:setIamPolicy", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/{+resource}:setIamPolicy", + "request": { + "$ref": "GoogleIamV1SetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this 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": "dns/v2/projects/{projectsId}/locations/{locationsId}/managedZones/{managedZonesId}:testIamPermissions", + "httpMethod": "POST", + "id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "dns/v2/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/ndev.clouddns.readonly", + "https://www.googleapis.com/auth/ndev.clouddns.readwrite" + ] + }, "update": { "description": "Updates an existing ManagedZone.", "flatPath": "dns/v2/projects/{project}/locations/{location}/managedZones/{managedZone}", @@ -1635,7 +1726,7 @@ "type": "string" }, "responsePolicy": { - "description": "User assigned name of the Respones Policy addressed by this request.", + "description": "User assigned name of the response policy addressed by this request.", "location": "path", "required": true, "type": "string" @@ -2022,7 +2113,7 @@ } } }, - "revision": "20220217", + "revision": "20230119", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { @@ -2274,6 +2365,197 @@ }, "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" + }, + "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", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "GoogleIamV1AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", + "id": "GoogleIamV1AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "GoogleIamV1Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.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`. ", + "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`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1GetIamPolicyRequest": { + "description": "Request message for `GetIamPolicy` method.", + "id": "GoogleIamV1GetIamPolicyRequest", + "properties": { + "options": { + "$ref": "GoogleIamV1GetPolicyOptions", + "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." + } + }, + "type": "object" + }, + "GoogleIamV1GetPolicyOptions": { + "description": "Encapsulates settings provided to GetIamPolicy.", + "id": "GoogleIamV1GetPolicyOptions", + "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" + }, + "GoogleIamV1Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "GoogleIamV1Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "GoogleIamV1AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "GoogleIamV1Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleIamV1SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "GoogleIamV1SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "GoogleIamV1Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ManagedZone": { "description": "A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.", "id": "ManagedZone", @@ -2457,6 +2739,10 @@ "description": "IPv4 address of a target name server.", "type": "string" }, + "ipv6Address": { + "description": "IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", + "type": "string" + }, "kind": { "default": "dns#managedZoneForwardingConfigNameServerTarget", "type": "string" @@ -2840,7 +3126,11 @@ "type": "string" }, "ipv4Address": { - "description": "IPv4 address to forward to.", + "description": "IPv4 address to forward queries to.", + "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", "type": "string" }, "kind": { @@ -2897,6 +3187,21 @@ "format": "int32", "type": "integer" }, + "gkeClustersPerManagedZone": { + "description": "Maximum allowed number of GKE clusters to which a privately scoped zone can be attached.", + "format": "int32", + "type": "integer" + }, + "gkeClustersPerPolicy": { + "description": "Maximum allowed number of GKE clusters per policy.", + "format": "int32", + "type": "integer" + }, + "gkeClustersPerResponsePolicy": { + "description": "Maximum allowed number of GKE clusters per response policy.", + "format": "int32", + "type": "integer" + }, "itemsPerRoutingPolicy": { "description": "Maximum allowed number of items per routing policy.", "format": "int32", @@ -2911,6 +3216,11 @@ "format": "int32", "type": "integer" }, + "managedZonesPerGkeCluster": { + "description": "Maximum allowed number of managed zones which can be attached to a GKE cluster.", + "format": "int32", + "type": "integer" + }, "managedZonesPerNetwork": { "description": "Maximum allowed number of managed zones which can be attached to a network.", "format": "int32", @@ -2926,6 +3236,11 @@ "format": "int32", "type": "integer" }, + "networksPerResponsePolicy": { + "description": "Maximum allowed number of networks per response policy.", + "format": "int32", + "type": "integer" + }, "peeringZonesPerTargetNetwork": { "description": "Maximum allowed number of consumer peering zones per target network owned by this producer project", "format": "int32", @@ -2941,6 +3256,16 @@ "format": "int32", "type": "integer" }, + "responsePolicies": { + "description": "Maximum allowed number of response policies per project.", + "format": "int32", + "type": "integer" + }, + "responsePolicyRulesPerResponsePolicy": { + "description": "Maximum allowed number of rules per response policy.", + "format": "int32", + "type": "integer" + }, "rrsetAdditionsPerChange": { "description": "Maximum allowed number of ResourceRecordSets to add per ChangesCreateRequest.", "format": "int32", @@ -2992,6 +3317,9 @@ "default": "dns#rRSetRoutingPolicy", "type": "string" }, + "primaryBackup": { + "$ref": "RRSetRoutingPolicyPrimaryBackupPolicy" + }, "wrr": { "$ref": "RRSetRoutingPolicyWrrPolicy" } @@ -3002,6 +3330,10 @@ "description": "Configures a RRSetRoutingPolicy that routes based on the geo location of the querying user.", "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.", + "type": "boolean" + }, "items": { "description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", "items": { @@ -3020,6 +3352,10 @@ "description": "ResourceRecordSet data for one geo location.", "id": "RRSetRoutingPolicyGeoPolicyGeoPolicyItem", "properties": { + "healthCheckedTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets", + "description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with rrdata within this item." + }, "kind": { "default": "dns#rRSetRoutingPolicyGeoPolicyGeoPolicyItem", "type": "string" @@ -3044,6 +3380,96 @@ }, "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.", + "id": "RRSetRoutingPolicyHealthCheckTargets", + "properties": { + "internalLoadBalancers": { + "items": { + "$ref": "RRSetRoutingPolicyLoadBalancerTarget" + }, + "type": "array" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyLoadBalancerTarget": { + "id": "RRSetRoutingPolicyLoadBalancerTarget", + "properties": { + "ipAddress": { + "description": "The frontend IP address of the", + "type": "string" + }, + "ipProtocol": { + "enum": [ + "UNDEFINED", + "TCP", + "UDP" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "kind": { + "default": "dns#rRSetRoutingPolicyLoadBalancerTarget", + "type": "string" + }, + "loadBalancerType": { + "enum": [ + "NONE", + "REGIONAL_L4ILB" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "networkUrl": { + "description": "The fully qualified url of the network on which the ILB is", + "type": "string" + }, + "port": { + "description": "Load Balancer to health check. 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.", + "type": "string" + }, + "region": { + "description": "The region for regional ILBs.", + "type": "string" + } + }, + "type": "object" + }, + "RRSetRoutingPolicyPrimaryBackupPolicy": { + "description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", + "id": "RRSetRoutingPolicyPrimaryBackupPolicy", + "properties": { + "backupGeoTargets": { + "$ref": "RRSetRoutingPolicyGeoPolicy", + "description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to BACKUP, this policy essentially becomes a geo routing policy." + }, + "kind": { + "default": "dns#rRSetRoutingPolicyPrimaryBackupPolicy", + "type": "string" + }, + "primaryTargets": { + "$ref": "RRSetRoutingPolicyHealthCheckTargets" + }, + "trickleTraffic": { + "description": "When serving state is PRIMARY, this field provides the option of sending a small percentage of the traffic to the backup targets.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "RRSetRoutingPolicyWrrPolicy": { "description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", "id": "RRSetRoutingPolicyWrrPolicy", @@ -3065,6 +3491,10 @@ "description": "A routing block which contains the routing information for one WRR item.", "id": "RRSetRoutingPolicyWrrPolicyWrrPolicyItem", "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." + }, "kind": { "default": "dns#rRSetRoutingPolicyWrrPolicyWrrPolicyItem", "type": "string" @@ -3175,7 +3605,7 @@ "$ref": "ResponseHeader" }, "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 page token. This lets you the complete contents of even very large 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 all 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 more results exist following your last page of results in pagination order. To fetch them, make another list request by using this value as your page token. This lets you view the complete contents of even very large 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 all elements returned are an inconsistent view of the collection. You cannot retrieve a consistent snapshot of a collection larger than the maximum page size.", "type": "string" }, "responsePolicies": { @@ -3236,6 +3666,13 @@ "default": "dns#responsePolicy", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User labels.", + "type": "object" + }, "networks": { "description": "List of network names specifying networks to which this policy is applied.", "items": { @@ -3290,7 +3727,7 @@ ], "enumDescriptions": [ "", - "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used in conjunction with a wildcard to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and e.g., query the public internet instead. For instance, if these rules exist: *.example.com -> 1.2.3.4 foo.example.com -> PASSTHRU Then a query for 'foo.example.com' skips the wildcard." + "Skip a less-specific ResponsePolicyRule and continue normal query logic. This can be used with a less-specific wildcard selector to exempt a subset of the wildcard ResponsePolicyRule from the ResponsePolicy behavior and query the public Internet instead. For instance, if these rules exist: *.example.com -> LocalData 1.2.3.4 foo.example.com -> Behavior 'bypassResponsePolicy' Then a query for 'foo.example.com' skips the wildcard. This additionally functions to facilitate the allowlist feature. RPZs can be applied to multiple levels in the (eventually org, folder, project, network) hierarchy. If a rule is applied at a higher level of the hierarchy, adding a passthru rule at a lower level will supersede that, and a query from an affected vm to that domain will be exempt from the RPZ and proceed to normal resolution behavior." ], "type": "string" }, diff --git a/etc/api/docs/v1/docs-api.json b/etc/api/docs/v1/docs-api.json new file mode 100644 index 0000000000..cd414c3569 --- /dev/null +++ b/etc/api/docs/v1/docs-api.json @@ -0,0 +1,4342 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/documents": { + "description": "See, edit, create, and delete all your Google Docs documents" + }, + "https://www.googleapis.com/auth/documents.readonly": { + "description": "See all your Google Docs documents" + }, + "https://www.googleapis.com/auth/drive": { + "description": "See, edit, create, and delete all of your Google Drive files" + }, + "https://www.googleapis.com/auth/drive.file": { + "description": "See, edit, create, and delete only the specific Google Drive files you use with this app" + }, + "https://www.googleapis.com/auth/drive.readonly": { + "description": "See and download all your Google Drive files" + } + } + } + }, + "basePath": "", + "baseUrl": "https://docs.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Docs", + "description": "Reads and writes Google Docs documents.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/docs/", + "fullyEncodeReservedExpansion": true, + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "docs:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://docs.mtls.googleapis.com/", + "name": "docs", + "ownerDomain": "google.com", + "ownerName": "Google", + "parameters": { + "$.xgafv": { + "description": "V1 error format.", + "enum": [ + "1", + "2" + ], + "enumDescriptions": [ + "v1 error format", + "v2 error format" + ], + "location": "query", + "type": "string" + }, + "access_token": { + "description": "OAuth access token.", + "location": "query", + "type": "string" + }, + "alt": { + "default": "json", + "description": "Data format for response.", + "enum": [ + "json", + "media", + "proto" + ], + "enumDescriptions": [ + "Responses with Content-Type of application/json", + "Media download with context-dependent Content-Type", + "Responses with Content-Type of application/x-protobuf" + ], + "location": "query", + "type": "string" + }, + "callback": { + "description": "JSONP", + "location": "query", + "type": "string" + }, + "fields": { + "description": "Selector specifying which fields to include in a partial response.", + "location": "query", + "type": "string" + }, + "key": { + "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", + "location": "query", + "type": "string" + }, + "oauth_token": { + "description": "OAuth 2.0 token for the current user.", + "location": "query", + "type": "string" + }, + "prettyPrint": { + "default": "true", + "description": "Returns response with indentations and line breaks.", + "location": "query", + "type": "boolean" + }, + "quotaUser": { + "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", + "location": "query", + "type": "string" + }, + "uploadType": { + "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", + "location": "query", + "type": "string" + }, + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", + "location": "query", + "type": "string" + } + }, + "protocol": "rest", + "resources": { + "documents": { + "methods": { + "batchUpdate": { + "description": "Applies one or more updates to the document. Each request is validated before being applied. If any request is not valid, then the entire request will fail and nothing will be applied. Some requests have replies to give you some information about how they are applied. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests. For example, suppose you call batchUpdate with four updates, and only the third one returns information. The response would have two empty replies, the reply to the third request, and another empty reply, in that order. Because other users may be editing the document, the document might not exactly reflect your changes: your changes may be altered with respect to collaborator changes. If there are no collaborators, the document should reflect your changes. In any case, the updates in your request are guaranteed to be applied together atomically.", + "flatPath": "v1/documents/{documentId}:batchUpdate", + "httpMethod": "POST", + "id": "docs.documents.batchUpdate", + "parameterOrder": [ + "documentId" + ], + "parameters": { + "documentId": { + "description": "The ID of the document to update.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/documents/{documentId}:batchUpdate", + "request": { + "$ref": "BatchUpdateDocumentRequest" + }, + "response": { + "$ref": "BatchUpdateDocumentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/documents", + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file" + ] + }, + "create": { + "description": "Creates a blank document using the title given in the request. Other fields in the request, including any provided content, are ignored. Returns the created document.", + "flatPath": "v1/documents", + "httpMethod": "POST", + "id": "docs.documents.create", + "parameterOrder": [], + "parameters": {}, + "path": "v1/documents", + "request": { + "$ref": "Document" + }, + "response": { + "$ref": "Document" + }, + "scopes": [ + "https://www.googleapis.com/auth/documents", + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file" + ] + }, + "get": { + "description": "Gets the latest version of the specified document.", + "flatPath": "v1/documents/{documentId}", + "httpMethod": "GET", + "id": "docs.documents.get", + "parameterOrder": [ + "documentId" + ], + "parameters": { + "documentId": { + "description": "The ID of the document to retrieve.", + "location": "path", + "required": true, + "type": "string" + }, + "suggestionsViewMode": { + "description": "The suggestions view mode to apply to the document. This allows viewing the document with all suggestions inline, accepted or rejected. If one is not specified, DEFAULT_FOR_CURRENT_ACCESS is used.", + "enum": [ + "DEFAULT_FOR_CURRENT_ACCESS", + "SUGGESTIONS_INLINE", + "PREVIEW_SUGGESTIONS_ACCEPTED", + "PREVIEW_WITHOUT_SUGGESTIONS" + ], + "enumDescriptions": [ + "The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.", + "The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", + "The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", + "The returned document is a preview with all suggested changes rejected if there are any suggestions in the document." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/documents/{documentId}", + "response": { + "$ref": "Document" + }, + "scopes": [ + "https://www.googleapis.com/auth/documents", + "https://www.googleapis.com/auth/documents.readonly", + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.readonly" + ] + } + } + } + }, + "revision": "20230119", + "rootUrl": "https://docs.googleapis.com/", + "schemas": { + "AutoText": { + "description": "A ParagraphElement representing a spot in the text that's dynamically replaced with content that can change over time, like a page number.", + "id": "AutoText", + "properties": { + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. An AutoText may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this AutoText, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this AutoText." + }, + "type": { + "description": "The type of this auto text.", + "enum": [ + "TYPE_UNSPECIFIED", + "PAGE_NUMBER", + "PAGE_COUNT" + ], + "enumDescriptions": [ + "An unspecified auto text type.", + "Type for auto text that represents the current page number.", + "Type for auto text that represents the total number of pages in the document." + ], + "type": "string" + } + }, + "type": "object" + }, + "Background": { + "description": "Represents the background of a document.", + "id": "Background", + "properties": { + "color": { + "$ref": "OptionalColor", + "description": "The background color." + } + }, + "type": "object" + }, + "BackgroundSuggestionState": { + "description": "A mask that indicates which of the fields on the base Background have been changed in this suggestion. For any field set to true, the Backgound has a new suggested value.", + "id": "BackgroundSuggestionState", + "properties": { + "backgroundColorSuggested": { + "description": "Indicates whether the current background color has been modified in this suggestion.", + "type": "boolean" + } + }, + "type": "object" + }, + "BatchUpdateDocumentRequest": { + "description": "Request message for BatchUpdateDocument.", + "id": "BatchUpdateDocumentRequest", + "properties": { + "requests": { + "description": "A list of updates to apply to the document.", + "items": { + "$ref": "Request" + }, + "type": "array" + }, + "writeControl": { + "$ref": "WriteControl", + "description": "Provides control over how write requests are executed." + } + }, + "type": "object" + }, + "BatchUpdateDocumentResponse": { + "description": "Response message from a BatchUpdateDocument request.", + "id": "BatchUpdateDocumentResponse", + "properties": { + "documentId": { + "description": "The ID of the document to which the updates were applied to.", + "type": "string" + }, + "replies": { + "description": "The reply of the updates. This maps 1:1 with the updates, although replies to some requests may be empty.", + "items": { + "$ref": "Response" + }, + "type": "array" + }, + "writeControl": { + "$ref": "WriteControl", + "description": "The updated write control after applying the request." + } + }, + "type": "object" + }, + "Body": { + "description": "The document body. The body typically contains the full document contents except for headers, footers, and footnotes.", + "id": "Body", + "properties": { + "content": { + "description": "The contents of the body. The indexes for the body's content begin at zero.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + } + }, + "type": "object" + }, + "Bullet": { + "description": "Describes the bullet of a paragraph.", + "id": "Bullet", + "properties": { + "listId": { + "description": "The ID of the list this paragraph belongs to.", + "type": "string" + }, + "nestingLevel": { + "description": "The nesting level of this paragraph in the list.", + "format": "int32", + "type": "integer" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The paragraph-specific text style applied to this bullet." + } + }, + "type": "object" + }, + "BulletSuggestionState": { + "description": "A mask that indicates which of the fields on the base Bullet have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "BulletSuggestionState", + "properties": { + "listIdSuggested": { + "description": "Indicates if there was a suggested change to the list_id.", + "type": "boolean" + }, + "nestingLevelSuggested": { + "description": "Indicates if there was a suggested change to the nesting_level.", + "type": "boolean" + }, + "textStyleSuggestionState": { + "$ref": "TextStyleSuggestionState", + "description": "A mask that indicates which of the fields in text style have been changed in this suggestion." + } + }, + "type": "object" + }, + "Color": { + "description": "A solid color.", + "id": "Color", + "properties": { + "rgbColor": { + "$ref": "RgbColor", + "description": "The RGB color value." + } + }, + "type": "object" + }, + "ColumnBreak": { + "description": "A ParagraphElement representing a column break. A column break makes the subsequent text start at the top of the next column.", + "id": "ColumnBreak", + "properties": { + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A ColumnBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this ColumnBreak, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this ColumnBreak. Similar to text content, like text runs and footnote references, the text style of a column break can affect content layout as well as the styling of text inserted next to it." + } + }, + "type": "object" + }, + "CreateFooterRequest": { + "description": "Creates a Footer. The new footer is applied to the SectionStyle at the location of the SectionBreak if specified, otherwise it is applied to the DocumentStyle. If a footer of the specified type already exists, a 400 bad request error is returned.", + "id": "CreateFooterRequest", + "properties": { + "sectionBreakLocation": { + "$ref": "Location", + "description": "The location of the SectionBreak immediately preceding the section whose SectionStyle this footer should belong to. If this is unset or refers to the first section break in the document, the footer applies to the document style." + }, + "type": { + "description": "The type of footer to create.", + "enum": [ + "HEADER_FOOTER_TYPE_UNSPECIFIED", + "DEFAULT" + ], + "enumDescriptions": [ + "The header/footer type is unspecified.", + "A default header/footer." + ], + "type": "string" + } + }, + "type": "object" + }, + "CreateFooterResponse": { + "description": "The result of creating a footer.", + "id": "CreateFooterResponse", + "properties": { + "footerId": { + "description": "The ID of the created footer.", + "type": "string" + } + }, + "type": "object" + }, + "CreateFootnoteRequest": { + "description": "Creates a Footnote segment and inserts a new FootnoteReference to it at the given location. The new Footnote segment will contain a space followed by a newline character.", + "id": "CreateFootnoteRequest", + "properties": { + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts the footnote reference at the end of the document body. Footnote references cannot be inserted inside a header, footer or footnote. Since footnote references can only be inserted in the body, the segment ID field must be empty." + }, + "location": { + "$ref": "Location", + "description": "Inserts the footnote reference at a specific index in the document. The footnote reference must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Footnote references cannot be inserted inside an equation, header, footer or footnote. Since footnote references can only be inserted in the body, the segment ID field must be empty." + } + }, + "type": "object" + }, + "CreateFootnoteResponse": { + "description": "The result of creating a footnote.", + "id": "CreateFootnoteResponse", + "properties": { + "footnoteId": { + "description": "The ID of the created footnote.", + "type": "string" + } + }, + "type": "object" + }, + "CreateHeaderRequest": { + "description": "Creates a Header. The new header is applied to the SectionStyle at the location of the SectionBreak if specified, otherwise it is applied to the DocumentStyle. If a header of the specified type already exists, a 400 bad request error is returned.", + "id": "CreateHeaderRequest", + "properties": { + "sectionBreakLocation": { + "$ref": "Location", + "description": "The location of the SectionBreak which begins the section this header should belong to. If `section_break_location' is unset or if it refers to the first section break in the document body, the header applies to the DocumentStyle" + }, + "type": { + "description": "The type of header to create.", + "enum": [ + "HEADER_FOOTER_TYPE_UNSPECIFIED", + "DEFAULT" + ], + "enumDescriptions": [ + "The header/footer type is unspecified.", + "A default header/footer." + ], + "type": "string" + } + }, + "type": "object" + }, + "CreateHeaderResponse": { + "description": "The result of creating a header.", + "id": "CreateHeaderResponse", + "properties": { + "headerId": { + "description": "The ID of the created header.", + "type": "string" + } + }, + "type": "object" + }, + "CreateNamedRangeRequest": { + "description": "Creates a NamedRange referencing the given range.", + "id": "CreateNamedRangeRequest", + "properties": { + "name": { + "description": "The name of the NamedRange. Names do not need to be unique. Names must be at least 1 character and no more than 256 characters, measured in UTF-16 code units.", + "type": "string" + }, + "range": { + "$ref": "Range", + "description": "The range to apply the name to." + } + }, + "type": "object" + }, + "CreateNamedRangeResponse": { + "description": "The result of creating a named range.", + "id": "CreateNamedRangeResponse", + "properties": { + "namedRangeId": { + "description": "The ID of the created named range.", + "type": "string" + } + }, + "type": "object" + }, + "CreateParagraphBulletsRequest": { + "description": "Creates bullets for all of the paragraphs that overlap with the given range. The nesting level of each paragraph will be determined by counting leading tabs in front of each paragraph. To avoid excess space between the bullet and the corresponding paragraph, these leading tabs are removed by this request. This may change the indices of parts of the text. If the paragraph immediately before paragraphs being updated is in a list with a matching preset, the paragraphs being updated are added to that preceding list.", + "id": "CreateParagraphBulletsRequest", + "properties": { + "bulletPreset": { + "description": "The kinds of bullet glyphs to be used.", + "enum": [ + "BULLET_GLYPH_PRESET_UNSPECIFIED", + "BULLET_DISC_CIRCLE_SQUARE", + "BULLET_DIAMONDX_ARROW3D_SQUARE", + "BULLET_CHECKBOX", + "BULLET_ARROW_DIAMOND_DISC", + "BULLET_STAR_CIRCLE_SQUARE", + "BULLET_ARROW3D_CIRCLE_SQUARE", + "BULLET_LEFTTRIANGLE_DIAMOND_DISC", + "BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE", + "BULLET_DIAMOND_CIRCLE_SQUARE", + "NUMBERED_DECIMAL_ALPHA_ROMAN", + "NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS", + "NUMBERED_DECIMAL_NESTED", + "NUMBERED_UPPERALPHA_ALPHA_ROMAN", + "NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL", + "NUMBERED_ZERODECIMAL_ALPHA_ROMAN" + ], + "enumDescriptions": [ + "The bullet glyph preset is unspecified.", + "A bulleted list with a `DISC`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `DIAMONDX`, `ARROW3D` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with `CHECKBOX` bullet glyphs for all list nesting levels.", + "A bulleted list with a `ARROW`, `DIAMOND` and `DISC` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `STAR`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `ARROW3D`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `LEFTTRIANGLE`, `DIAMOND` and `DISC` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `DIAMONDX`, `HOLLOWDIAMOND` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A bulleted list with a `DIAMOND`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", + "A numbered list with `DECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods.", + "A numbered list with `DECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by parenthesis.", + "A numbered list with `DECIMAL` numeric glyphs separated by periods, where each nesting level uses the previous nesting level's glyph as a prefix. For example: '1.', '1.1.', '2.', '2.2.'.", + "A numbered list with `UPPERALPHA`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods.", + "A numbered list with `UPPERROMAN`, `UPPERALPHA` and `DECIMAL` numeric glyphs for the first 3 list nesting levels, followed by periods.", + "A numbered list with `ZERODECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods." + ], + "type": "string" + }, + "range": { + "$ref": "Range", + "description": "The range to apply the bullet preset to." + } + }, + "type": "object" + }, + "CropProperties": { + "description": "The crop properties of an image. The crop rectangle is represented using fractional offsets from the original content's 4 edges. - If the offset is in the interval (0, 1), the corresponding edge of crop rectangle is positioned inside of the image's original bounding rectangle. - If the offset is negative or greater than 1, the corresponding edge of crop rectangle is positioned outside of the image's original bounding rectangle. - If all offsets and rotation angle are 0, the image is not cropped.", + "id": "CropProperties", + "properties": { + "angle": { + "description": "The clockwise rotation angle of the crop rectangle around its center, in radians. Rotation is applied after the offsets.", + "format": "float", + "type": "number" + }, + "offsetBottom": { + "description": "The offset specifies how far inwards the bottom edge of the crop rectangle is from the bottom edge of the original content as a fraction of the original content's height.", + "format": "float", + "type": "number" + }, + "offsetLeft": { + "description": "The offset specifies how far inwards the left edge of the crop rectangle is from the left edge of the original content as a fraction of the original content's width.", + "format": "float", + "type": "number" + }, + "offsetRight": { + "description": "The offset specifies how far inwards the right edge of the crop rectangle is from the right edge of the original content as a fraction of the original content's width.", + "format": "float", + "type": "number" + }, + "offsetTop": { + "description": "The offset specifies how far inwards the top edge of the crop rectangle is from the top edge of the original content as a fraction of the original content's height.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "CropPropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base CropProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "CropPropertiesSuggestionState", + "properties": { + "angleSuggested": { + "description": "Indicates if there was a suggested change to angle.", + "type": "boolean" + }, + "offsetBottomSuggested": { + "description": "Indicates if there was a suggested change to offset_bottom.", + "type": "boolean" + }, + "offsetLeftSuggested": { + "description": "Indicates if there was a suggested change to offset_left.", + "type": "boolean" + }, + "offsetRightSuggested": { + "description": "Indicates if there was a suggested change to offset_right.", + "type": "boolean" + }, + "offsetTopSuggested": { + "description": "Indicates if there was a suggested change to offset_top.", + "type": "boolean" + } + }, + "type": "object" + }, + "DeleteContentRangeRequest": { + "description": "Deletes content from the document.", + "id": "DeleteContentRangeRequest", + "properties": { + "range": { + "$ref": "Range", + "description": "The range of content to delete. Deleting text that crosses a paragraph boundary may result in changes to paragraph styles, lists, positioned objects and bookmarks as the two paragraphs are merged. Attempting to delete certain ranges can result in an invalid document structure in which case a 400 bad request error is returned. Some examples of invalid delete requests include: * Deleting one code unit of a surrogate pair. * Deleting the last newline character of a Body, Header, Footer, Footnote, TableCell or TableOfContents. * Deleting the start or end of a Table, TableOfContents or Equation without deleting the entire element. * Deleting the newline character before a Table, TableOfContents or SectionBreak without deleting the element. * Deleting individual rows or cells of a table. Deleting the content within a table cell is allowed." + } + }, + "type": "object" + }, + "DeleteFooterRequest": { + "description": "Deletes a Footer from the document.", + "id": "DeleteFooterRequest", + "properties": { + "footerId": { + "description": "The id of the footer to delete. If this footer is defined on DocumentStyle, the reference to this footer is removed, resulting in no footer of that type for the first section of the document. If this footer is defined on a SectionStyle, the reference to this footer is removed and the footer of that type is now continued from the previous section.", + "type": "string" + } + }, + "type": "object" + }, + "DeleteHeaderRequest": { + "description": "Deletes a Header from the document.", + "id": "DeleteHeaderRequest", + "properties": { + "headerId": { + "description": "The id of the header to delete. If this header is defined on DocumentStyle, the reference to this header is removed, resulting in no header of that type for the first section of the document. If this header is defined on a SectionStyle, the reference to this header is removed and the header of that type is now continued from the previous section.", + "type": "string" + } + }, + "type": "object" + }, + "DeleteNamedRangeRequest": { + "description": "Deletes a NamedRange.", + "id": "DeleteNamedRangeRequest", + "properties": { + "name": { + "description": "The name of the range(s) to delete. All named ranges with the given name will be deleted.", + "type": "string" + }, + "namedRangeId": { + "description": "The ID of the named range to delete.", + "type": "string" + } + }, + "type": "object" + }, + "DeleteParagraphBulletsRequest": { + "description": "Deletes bullets from all of the paragraphs that overlap with the given range. The nesting level of each paragraph will be visually preserved by adding indent to the start of the corresponding paragraph.", + "id": "DeleteParagraphBulletsRequest", + "properties": { + "range": { + "$ref": "Range", + "description": "The range to delete bullets from." + } + }, + "type": "object" + }, + "DeletePositionedObjectRequest": { + "description": "Deletes a PositionedObject from the document.", + "id": "DeletePositionedObjectRequest", + "properties": { + "objectId": { + "description": "The ID of the positioned object to delete.", + "type": "string" + } + }, + "type": "object" + }, + "DeleteTableColumnRequest": { + "description": "Deletes a column from a table.", + "id": "DeleteTableColumnRequest", + "properties": { + "tableCellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which the column will be deleted. The column this cell spans will be deleted. If this is a merged cell that spans multiple columns, all columns that the cell spans will be deleted. If no columns remain in the table after this deletion, the whole table is deleted." + } + }, + "type": "object" + }, + "DeleteTableRowRequest": { + "description": "Deletes a row from a table.", + "id": "DeleteTableRowRequest", + "properties": { + "tableCellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which the row will be deleted. The row this cell spans will be deleted. If this is a merged cell that spans multiple rows, all rows that the cell spans will be deleted. If no rows remain in the table after this deletion, the whole table is deleted." + } + }, + "type": "object" + }, + "Dimension": { + "description": "A magnitude in a single direction in the specified units.", + "id": "Dimension", + "properties": { + "magnitude": { + "description": "The magnitude.", + "format": "double", + "type": "number" + }, + "unit": { + "description": "The units for magnitude.", + "enum": [ + "UNIT_UNSPECIFIED", + "PT" + ], + "enumDescriptions": [ + "The units are unknown.", + "A point, 1/72 of an inch." + ], + "type": "string" + } + }, + "type": "object" + }, + "Document": { + "description": "A Google Docs document.", + "id": "Document", + "properties": { + "body": { + "$ref": "Body", + "description": "Output only. The main body of the document." + }, + "documentId": { + "description": "Output only. The ID of the document.", + "type": "string" + }, + "documentStyle": { + "$ref": "DocumentStyle", + "description": "Output only. The style of the document." + }, + "footers": { + "additionalProperties": { + "$ref": "Footer" + }, + "description": "Output only. The footers in the document, keyed by footer ID.", + "type": "object" + }, + "footnotes": { + "additionalProperties": { + "$ref": "Footnote" + }, + "description": "Output only. The footnotes in the document, keyed by footnote ID.", + "type": "object" + }, + "headers": { + "additionalProperties": { + "$ref": "Header" + }, + "description": "Output only. The headers in the document, keyed by header ID.", + "type": "object" + }, + "inlineObjects": { + "additionalProperties": { + "$ref": "InlineObject" + }, + "description": "Output only. The inline objects in the document, keyed by object ID.", + "type": "object" + }, + "lists": { + "additionalProperties": { + "$ref": "List" + }, + "description": "Output only. The lists in the document, keyed by list ID.", + "type": "object" + }, + "namedRanges": { + "additionalProperties": { + "$ref": "NamedRanges" + }, + "description": "Output only. The named ranges in the document, keyed by name.", + "type": "object" + }, + "namedStyles": { + "$ref": "NamedStyles", + "description": "Output only. The named styles of the document." + }, + "positionedObjects": { + "additionalProperties": { + "$ref": "PositionedObject" + }, + "description": "Output only. The positioned objects in the document, keyed by object ID.", + "type": "object" + }, + "revisionId": { + "description": "Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edited since that revision. Only populated if the user has edit access to the document. The revision ID is not a sequential number but an opaque string. The format of the revision ID might change over time. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the document has not changed. Conversely, a changed ID (for the same document and user) usually means the document has been updated. However, a changed ID can also be due to internal factors such as ID format changes.", + "type": "string" + }, + "suggestedDocumentStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedDocumentStyle" + }, + "description": "Output only. The suggested changes to the style of the document, keyed by suggestion ID.", + "type": "object" + }, + "suggestedNamedStylesChanges": { + "additionalProperties": { + "$ref": "SuggestedNamedStyles" + }, + "description": "Output only. The suggested changes to the named styles of the document, keyed by suggestion ID.", + "type": "object" + }, + "suggestionsViewMode": { + "description": "Output only. The suggestions view mode applied to the document. Note: When editing a document, changes must be based on a document with SUGGESTIONS_INLINE.", + "enum": [ + "DEFAULT_FOR_CURRENT_ACCESS", + "SUGGESTIONS_INLINE", + "PREVIEW_SUGGESTIONS_ACCEPTED", + "PREVIEW_WITHOUT_SUGGESTIONS" + ], + "enumDescriptions": [ + "The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.", + "The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", + "The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", + "The returned document is a preview with all suggested changes rejected if there are any suggestions in the document." + ], + "type": "string" + }, + "title": { + "description": "The title of the document.", + "type": "string" + } + }, + "type": "object" + }, + "DocumentStyle": { + "description": "The style of the document.", + "id": "DocumentStyle", + "properties": { + "background": { + "$ref": "Background", + "description": "The background of the document. Documents cannot have a transparent background color." + }, + "defaultFooterId": { + "description": "The ID of the default footer. If not set, there's no default footer. This property is read-only.", + "type": "string" + }, + "defaultHeaderId": { + "description": "The ID of the default header. If not set, there's no default header. This property is read-only.", + "type": "string" + }, + "evenPageFooterId": { + "description": "The ID of the footer used only for even pages. The value of use_even_page_header_footer determines whether to use the default_footer_id or this value for the footer on even pages. If not set, there's no even page footer. This property is read-only.", + "type": "string" + }, + "evenPageHeaderId": { + "description": "The ID of the header used only for even pages. The value of use_even_page_header_footer determines whether to use the default_header_id or this value for the header on even pages. If not set, there's no even page header. This property is read-only.", + "type": "string" + }, + "firstPageFooterId": { + "description": "The ID of the footer used only for the first page. If not set then a unique footer for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_footer_id or this value for the footer on the first page. If not set, there's no first page footer. This property is read-only.", + "type": "string" + }, + "firstPageHeaderId": { + "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" + }, + "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." + }, + "marginFooter": { + "$ref": "Dimension", + "description": "The amount of space between the bottom of the page and the contents of the footer." + }, + "marginHeader": { + "$ref": "Dimension", + "description": "The amount of space between the top of the page and the contents of the header." + }, + "marginLeft": { + "$ref": "Dimension", + "description": "The left page margin. Updating the left page margin on the document style clears the left page margin on all section styles. It may also cause columns to resize in all sections." + }, + "marginRight": { + "$ref": "Dimension", + "description": "The right page margin. Updating the right page margin on the document style clears the right page margin on all section styles. It may also cause columns to resize in all sections." + }, + "marginTop": { + "$ref": "Dimension", + "description": "The top page margin. Updating the top page margin on the document style clears the top page margin on all section styles." + }, + "pageNumberStart": { + "description": "The page number from which to start counting the number of pages.", + "format": "int32", + "type": "integer" + }, + "pageSize": { + "$ref": "Size", + "description": "The size of a page in the document." + }, + "useCustomHeaderFooterMargins": { + "description": "Indicates whether DocumentStyle margin_header, SectionStyle margin_header and DocumentStyle margin_footer, SectionStyle margin_footer are respected. When false, the default values in the Docs editor for header and footer margin are used. This property is read-only.", + "type": "boolean" + }, + "useEvenPageHeaderFooter": { + "description": "Indicates whether to use the even page header / footer IDs for the even pages.", + "type": "boolean" + }, + "useFirstPageHeaderFooter": { + "description": "Indicates whether to use the first page header / footer IDs for the first page.", + "type": "boolean" + } + }, + "type": "object" + }, + "DocumentStyleSuggestionState": { + "description": "A mask that indicates which of the fields on the base DocumentStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "DocumentStyleSuggestionState", + "properties": { + "backgroundSuggestionState": { + "$ref": "BackgroundSuggestionState", + "description": "A mask that indicates which of the fields in background have been changed in this suggestion." + }, + "defaultFooterIdSuggested": { + "description": "Indicates if there was a suggested change to default_footer_id.", + "type": "boolean" + }, + "defaultHeaderIdSuggested": { + "description": "Indicates if there was a suggested change to default_header_id.", + "type": "boolean" + }, + "evenPageFooterIdSuggested": { + "description": "Indicates if there was a suggested change to even_page_footer_id.", + "type": "boolean" + }, + "evenPageHeaderIdSuggested": { + "description": "Indicates if there was a suggested change to even_page_header_id.", + "type": "boolean" + }, + "firstPageFooterIdSuggested": { + "description": "Indicates if there was a suggested change to first_page_footer_id.", + "type": "boolean" + }, + "firstPageHeaderIdSuggested": { + "description": "Indicates if there was a suggested change to first_page_header_id.", + "type": "boolean" + }, + "marginBottomSuggested": { + "description": "Indicates if there was a suggested change to margin_bottom.", + "type": "boolean" + }, + "marginFooterSuggested": { + "description": "Indicates if there was a suggested change to margin_footer.", + "type": "boolean" + }, + "marginHeaderSuggested": { + "description": "Indicates if there was a suggested change to margin_header.", + "type": "boolean" + }, + "marginLeftSuggested": { + "description": "Indicates if there was a suggested change to margin_left.", + "type": "boolean" + }, + "marginRightSuggested": { + "description": "Indicates if there was a suggested change to margin_right.", + "type": "boolean" + }, + "marginTopSuggested": { + "description": "Indicates if there was a suggested change to margin_top.", + "type": "boolean" + }, + "pageNumberStartSuggested": { + "description": "Indicates if there was a suggested change to page_number_start.", + "type": "boolean" + }, + "pageSizeSuggestionState": { + "$ref": "SizeSuggestionState", + "description": "A mask that indicates which of the fields in size have been changed in this suggestion." + }, + "useCustomHeaderFooterMarginsSuggested": { + "description": "Indicates if there was a suggested change to use_custom_header_footer_margins.", + "type": "boolean" + }, + "useEvenPageHeaderFooterSuggested": { + "description": "Indicates if there was a suggested change to use_even_page_header_footer.", + "type": "boolean" + }, + "useFirstPageHeaderFooterSuggested": { + "description": "Indicates if there was a suggested change to use_first_page_header_footer.", + "type": "boolean" + } + }, + "type": "object" + }, + "EmbeddedDrawingProperties": { + "description": "The properties of an embedded drawing and used to differentiate the object type. An embedded drawing is one that's created and edited within a document. Note that extensive details are not supported.", + "id": "EmbeddedDrawingProperties", + "properties": {}, + "type": "object" + }, + "EmbeddedDrawingPropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base EmbeddedDrawingProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "EmbeddedDrawingPropertiesSuggestionState", + "properties": {}, + "type": "object" + }, + "EmbeddedObject": { + "description": "An embedded object in the document.", + "id": "EmbeddedObject", + "properties": { + "description": { + "description": "The description of the embedded object. The `title` and `description` are both combined to display alt text.", + "type": "string" + }, + "embeddedDrawingProperties": { + "$ref": "EmbeddedDrawingProperties", + "description": "The properties of an embedded drawing." + }, + "embeddedObjectBorder": { + "$ref": "EmbeddedObjectBorder", + "description": "The border of the embedded object." + }, + "imageProperties": { + "$ref": "ImageProperties", + "description": "The properties of an image." + }, + "linkedContentReference": { + "$ref": "LinkedContentReference", + "description": "A reference to the external linked source content. For example, it contains a reference to the source Google Sheets chart when the embedded object is a linked chart. If unset, then the embedded object is not linked." + }, + "marginBottom": { + "$ref": "Dimension", + "description": "The bottom margin of the embedded object." + }, + "marginLeft": { + "$ref": "Dimension", + "description": "The left margin of the embedded object." + }, + "marginRight": { + "$ref": "Dimension", + "description": "The right margin of the embedded object." + }, + "marginTop": { + "$ref": "Dimension", + "description": "The top margin of the embedded object." + }, + "size": { + "$ref": "Size", + "description": "The visible size of the image after cropping." + }, + "title": { + "description": "The title of the embedded object. The `title` and `description` are both combined to display alt text.", + "type": "string" + } + }, + "type": "object" + }, + "EmbeddedObjectBorder": { + "description": "A border around an EmbeddedObject.", + "id": "EmbeddedObjectBorder", + "properties": { + "color": { + "$ref": "OptionalColor", + "description": "The color of the border." + }, + "dashStyle": { + "description": "The dash style of the border.", + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH" + ], + "enumDescriptions": [ + "Unspecified dash style.", + "Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", + "Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", + "Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." + ], + "type": "string" + }, + "propertyState": { + "description": "The property state of the border property.", + "enum": [ + "RENDERED", + "NOT_RENDERED" + ], + "enumDescriptions": [ + "If a property's state is RENDERED, then the element has the corresponding property when rendered in the document. This is the default value.", + "If a property's state is NOT_RENDERED, then the element does not have the corresponding property when rendered in the document." + ], + "type": "string" + }, + "width": { + "$ref": "Dimension", + "description": "The width of the border." + } + }, + "type": "object" + }, + "EmbeddedObjectBorderSuggestionState": { + "description": "A mask that indicates which of the fields on the base EmbeddedObjectBorder have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "EmbeddedObjectBorderSuggestionState", + "properties": { + "colorSuggested": { + "description": "Indicates if there was a suggested change to color.", + "type": "boolean" + }, + "dashStyleSuggested": { + "description": "Indicates if there was a suggested change to dash_style.", + "type": "boolean" + }, + "propertyStateSuggested": { + "description": "Indicates if there was a suggested change to property_state.", + "type": "boolean" + }, + "widthSuggested": { + "description": "Indicates if there was a suggested change to width.", + "type": "boolean" + } + }, + "type": "object" + }, + "EmbeddedObjectSuggestionState": { + "description": "A mask that indicates which of the fields on the base EmbeddedObject have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "EmbeddedObjectSuggestionState", + "properties": { + "descriptionSuggested": { + "description": "Indicates if there was a suggested change to description.", + "type": "boolean" + }, + "embeddedDrawingPropertiesSuggestionState": { + "$ref": "EmbeddedDrawingPropertiesSuggestionState", + "description": "A mask that indicates which of the fields in embedded_drawing_properties have been changed in this suggestion." + }, + "embeddedObjectBorderSuggestionState": { + "$ref": "EmbeddedObjectBorderSuggestionState", + "description": "A mask that indicates which of the fields in embedded_object_border have been changed in this suggestion." + }, + "imagePropertiesSuggestionState": { + "$ref": "ImagePropertiesSuggestionState", + "description": "A mask that indicates which of the fields in image_properties have been changed in this suggestion." + }, + "linkedContentReferenceSuggestionState": { + "$ref": "LinkedContentReferenceSuggestionState", + "description": "A mask that indicates which of the fields in linked_content_reference have been changed in this suggestion." + }, + "marginBottomSuggested": { + "description": "Indicates if there was a suggested change to margin_bottom.", + "type": "boolean" + }, + "marginLeftSuggested": { + "description": "Indicates if there was a suggested change to margin_left.", + "type": "boolean" + }, + "marginRightSuggested": { + "description": "Indicates if there was a suggested change to margin_right.", + "type": "boolean" + }, + "marginTopSuggested": { + "description": "Indicates if there was a suggested change to margin_top.", + "type": "boolean" + }, + "sizeSuggestionState": { + "$ref": "SizeSuggestionState", + "description": "A mask that indicates which of the fields in size have been changed in this suggestion." + }, + "titleSuggested": { + "description": "Indicates if there was a suggested change to title.", + "type": "boolean" + } + }, + "type": "object" + }, + "EndOfSegmentLocation": { + "description": "Location at the end of a body, header, footer or footnote. The location is immediately before the last newline in the document segment.", + "id": "EndOfSegmentLocation", + "properties": { + "segmentId": { + "description": "The ID of the header, footer or footnote the location is in. An empty segment ID signifies the document's body.", + "type": "string" + } + }, + "type": "object" + }, + "Equation": { + "description": "A ParagraphElement representing an equation.", + "id": "Equation", + "properties": { + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. An Equation may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Footer": { + "description": "A document footer.", + "id": "Footer", + "properties": { + "content": { + "description": "The contents of the footer. The indexes for a footer's content begin at zero.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + }, + "footerId": { + "description": "The ID of the footer.", + "type": "string" + } + }, + "type": "object" + }, + "Footnote": { + "description": "A document footnote.", + "id": "Footnote", + "properties": { + "content": { + "description": "The contents of the footnote. The indexes for a footnote's content begin at zero.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + }, + "footnoteId": { + "description": "The ID of the footnote.", + "type": "string" + } + }, + "type": "object" + }, + "FootnoteReference": { + "description": "A ParagraphElement representing a footnote reference. A footnote reference is the inline content rendered with a number and is used to identify the footnote.", + "id": "FootnoteReference", + "properties": { + "footnoteId": { + "description": "The ID of the footnote that contains the content of this footnote reference.", + "type": "string" + }, + "footnoteNumber": { + "description": "The rendered number of this footnote.", + "type": "string" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A FootnoteReference may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this FootnoteReference, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this FootnoteReference." + } + }, + "type": "object" + }, + "Header": { + "description": "A document header.", + "id": "Header", + "properties": { + "content": { + "description": "The contents of the header. The indexes for a header's content begin at zero.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + }, + "headerId": { + "description": "The ID of the header.", + "type": "string" + } + }, + "type": "object" + }, + "HorizontalRule": { + "description": "A ParagraphElement representing a horizontal line.", + "id": "HorizontalRule", + "properties": { + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A HorizontalRule may have multiple insertion IDs if it is a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this HorizontalRule, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this HorizontalRule. Similar to text content, like text runs and footnote references, the text style of a horizontal rule can affect content layout as well as the styling of text inserted next to it." + } + }, + "type": "object" + }, + "ImageProperties": { + "description": "The properties of an image.", + "id": "ImageProperties", + "properties": { + "angle": { + "description": "The clockwise rotation angle of the image, in radians.", + "format": "float", + "type": "number" + }, + "brightness": { + "description": "The brightness effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect.", + "format": "float", + "type": "number" + }, + "contentUri": { + "description": "A URI to the image with a default lifetime of 30 minutes. This URI is tagged with the account of the requester. Anyone with the URI effectively accesses the image as the original requester. Access to the image may be lost if the document's sharing settings change.", + "type": "string" + }, + "contrast": { + "description": "The contrast effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect.", + "format": "float", + "type": "number" + }, + "cropProperties": { + "$ref": "CropProperties", + "description": "The crop properties of the image." + }, + "sourceUri": { + "description": "The source URI is the URI used to insert the image. The source URI can be empty.", + "type": "string" + }, + "transparency": { + "description": "The transparency effect of the image. The value should be in the interval [0.0, 1.0], where 0 means no effect and 1 means transparent.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "ImagePropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base ImageProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "ImagePropertiesSuggestionState", + "properties": { + "angleSuggested": { + "description": "Indicates if there was a suggested change to angle.", + "type": "boolean" + }, + "brightnessSuggested": { + "description": "Indicates if there was a suggested change to brightness.", + "type": "boolean" + }, + "contentUriSuggested": { + "description": "Indicates if there was a suggested change to content_uri.", + "type": "boolean" + }, + "contrastSuggested": { + "description": "Indicates if there was a suggested change to contrast.", + "type": "boolean" + }, + "cropPropertiesSuggestionState": { + "$ref": "CropPropertiesSuggestionState", + "description": "A mask that indicates which of the fields in crop_properties have been changed in this suggestion." + }, + "sourceUriSuggested": { + "description": "Indicates if there was a suggested change to source_uri.", + "type": "boolean" + }, + "transparencySuggested": { + "description": "Indicates if there was a suggested change to transparency.", + "type": "boolean" + } + }, + "type": "object" + }, + "InlineObject": { + "description": "An object that appears inline with text. An InlineObject contains an EmbeddedObject such as an image.", + "id": "InlineObject", + "properties": { + "inlineObjectProperties": { + "$ref": "InlineObjectProperties", + "description": "The properties of this inline object." + }, + "objectId": { + "description": "The ID of this inline object. Can be used to update an object\u2019s properties.", + "type": "string" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInlineObjectPropertiesChanges": { + "additionalProperties": { + "$ref": "SuggestedInlineObjectProperties" + }, + "description": "The suggested changes to the inline object properties, keyed by suggestion ID.", + "type": "object" + }, + "suggestedInsertionId": { + "description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", + "type": "string" + } + }, + "type": "object" + }, + "InlineObjectElement": { + "description": "A ParagraphElement that contains an InlineObject.", + "id": "InlineObjectElement", + "properties": { + "inlineObjectId": { + "description": "The ID of the InlineObject this element contains.", + "type": "string" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. An InlineObjectElement may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this InlineObject, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this InlineObjectElement. Similar to text content, like text runs and footnote references, the text style of an inline object element can affect content layout as well as the styling of text inserted next to it." + } + }, + "type": "object" + }, + "InlineObjectProperties": { + "description": "Properties of an InlineObject.", + "id": "InlineObjectProperties", + "properties": { + "embeddedObject": { + "$ref": "EmbeddedObject", + "description": "The embedded object of this inline object." + } + }, + "type": "object" + }, + "InlineObjectPropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base InlineObjectProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "InlineObjectPropertiesSuggestionState", + "properties": { + "embeddedObjectSuggestionState": { + "$ref": "EmbeddedObjectSuggestionState", + "description": "A mask that indicates which of the fields in embedded_object have been changed in this suggestion." + } + }, + "type": "object" + }, + "InsertInlineImageRequest": { + "description": "Inserts an InlineObject containing an image at the given location.", + "id": "InsertInlineImageRequest", + "properties": { + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts the text at the end of a header, footer or the document body. Inline images cannot be inserted inside a footnote." + }, + "location": { + "$ref": "Location", + "description": "Inserts the image at a specific index in the document. The image must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Inline images cannot be inserted inside a footnote or equation." + }, + "objectSize": { + "$ref": "Size", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "InsertInlineImageResponse": { + "description": "The result of inserting an inline image.", + "id": "InsertInlineImageResponse", + "properties": { + "objectId": { + "description": "The ID of the created InlineObject.", + "type": "string" + } + }, + "type": "object" + }, + "InsertInlineSheetsChartResponse": { + "description": "The result of inserting an embedded Google Sheets chart.", + "id": "InsertInlineSheetsChartResponse", + "properties": { + "objectId": { + "description": "The object ID of the inserted chart.", + "type": "string" + } + }, + "type": "object" + }, + "InsertPageBreakRequest": { + "description": "Inserts a page break followed by a newline at the specified location.", + "id": "InsertPageBreakRequest", + "properties": { + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts the page break at the end of the document body. Page breaks cannot be inserted inside a footnote, header or footer. Since page breaks can only be inserted inside the body, the segment ID field must be empty." + }, + "location": { + "$ref": "Location", + "description": "Inserts the page break at a specific index in the document. The page break must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Page breaks cannot be inserted inside a table, equation, footnote, header or footer. Since page breaks can only be inserted inside the body, the segment ID field must be empty." + } + }, + "type": "object" + }, + "InsertSectionBreakRequest": { + "description": "Inserts a section break at the given location. A newline character will be inserted before the section break.", + "id": "InsertSectionBreakRequest", + "properties": { + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts a newline and a section break at the end of the document body. Section breaks cannot be inserted inside a footnote, header or footer. Because section breaks can only be inserted inside the body, the segment ID field must be empty." + }, + "location": { + "$ref": "Location", + "description": "Inserts a newline and a section break at a specific index in the document. The section break must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Section breaks cannot be inserted inside a table, equation, footnote, header, or footer. Since section breaks can only be inserted inside the body, the segment ID field must be empty." + }, + "sectionType": { + "description": "The type of section to insert.", + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CONTINUOUS", + "NEXT_PAGE" + ], + "enumDescriptions": [ + "The section type is unspecified.", + "The section starts immediately after the last paragraph of the previous section.", + "The section starts on the next page." + ], + "type": "string" + } + }, + "type": "object" + }, + "InsertTableColumnRequest": { + "description": "Inserts an empty column into a table.", + "id": "InsertTableColumnRequest", + "properties": { + "insertRight": { + "description": "Whether to insert new column to the right of the reference cell location. - `True`: insert to the right. - `False`: insert to the left.", + "type": "boolean" + }, + "tableCellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which columns will be inserted. A new column will be inserted to the left (or right) of the column where the reference cell is. If the reference cell is a merged cell, a new column will be inserted to the left (or right) of the merged cell." + } + }, + "type": "object" + }, + "InsertTableRequest": { + "description": "Inserts a table at the specified location. A newline character will be inserted before the inserted table.", + "id": "InsertTableRequest", + "properties": { + "columns": { + "description": "The number of columns in the table.", + "format": "int32", + "type": "integer" + }, + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts the table at the end of the given header, footer or document body. A newline character will be inserted before the inserted table. Tables cannot be inserted inside a footnote." + }, + "location": { + "$ref": "Location", + "description": "Inserts the table at a specific model index. A newline character will be inserted before the inserted table, therefore the table start index will be at the specified location index + 1. The table must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between an existing table and its preceding paragraph). Tables cannot be inserted inside a footnote or equation." + }, + "rows": { + "description": "The number of rows in the table.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "InsertTableRowRequest": { + "description": "Inserts an empty row into a table.", + "id": "InsertTableRowRequest", + "properties": { + "insertBelow": { + "description": "Whether to insert new row below the reference cell location. - `True`: insert below the cell. - `False`: insert above the cell.", + "type": "boolean" + }, + "tableCellLocation": { + "$ref": "TableCellLocation", + "description": "The reference table cell location from which rows will be inserted. A new row will be inserted above (or below) the row where the reference cell is. If the reference cell is a merged cell, a new row will be inserted above (or below) the merged cell." + } + }, + "type": "object" + }, + "InsertTextRequest": { + "description": "Inserts text at the specified location.", + "id": "InsertTextRequest", + "properties": { + "endOfSegmentLocation": { + "$ref": "EndOfSegmentLocation", + "description": "Inserts the text at the end of a header, footer, footnote or the document body." + }, + "location": { + "$ref": "Location", + "description": "Inserts the text at a specific index in the document. Text must be inserted inside the bounds of an existing Paragraph. For instance, text cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). The text must be inserted in the preceding paragraph." + }, + "text": { + "description": "The text to be inserted. Inserting a newline character will implicitly create a new Paragraph at that index. The paragraph style of the new paragraph will be copied from the paragraph at the current insertion index, including lists and bullets. Text styles for inserted text will be determined automatically, generally preserving the styling of neighboring text. In most cases, the text style for the inserted text will match the text immediately before the insertion index. Some control characters (U+0000-U+0008, U+000C-U+001F) and characters from the Unicode Basic Multilingual Plane Private Use Area (U+E000-U+F8FF) will be stripped out of the inserted text.", + "type": "string" + } + }, + "type": "object" + }, + "Link": { + "description": "A reference to another portion of a document or an external URL resource.", + "id": "Link", + "properties": { + "bookmarkId": { + "description": "The ID of a bookmark in this document.", + "type": "string" + }, + "headingId": { + "description": "The ID of a heading in this document.", + "type": "string" + }, + "url": { + "description": "An external URL.", + "type": "string" + } + }, + "type": "object" + }, + "LinkedContentReference": { + "description": "A reference to the external linked source content.", + "id": "LinkedContentReference", + "properties": { + "sheetsChartReference": { + "$ref": "SheetsChartReference", + "description": "A reference to the linked chart." + } + }, + "type": "object" + }, + "LinkedContentReferenceSuggestionState": { + "description": "A mask that indicates which of the fields on the base LinkedContentReference have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "LinkedContentReferenceSuggestionState", + "properties": { + "sheetsChartReferenceSuggestionState": { + "$ref": "SheetsChartReferenceSuggestionState", + "description": "A mask that indicates which of the fields in sheets_chart_reference have been changed in this suggestion." + } + }, + "type": "object" + }, + "List": { + "description": "A List represents the list attributes for a group of paragraphs that all belong to the same list. A paragraph that's part of a list has a reference to the list's ID in its bullet.", + "id": "List", + "properties": { + "listProperties": { + "$ref": "ListProperties", + "description": "The properties of the list." + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this list.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionId": { + "description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", + "type": "string" + }, + "suggestedListPropertiesChanges": { + "additionalProperties": { + "$ref": "SuggestedListProperties" + }, + "description": "The suggested changes to the list properties, keyed by suggestion ID.", + "type": "object" + } + }, + "type": "object" + }, + "ListProperties": { + "description": "The properties of a list that describe the look and feel of bullets belonging to paragraphs associated with a list.", + "id": "ListProperties", + "properties": { + "nestingLevels": { + "description": "Describes the properties of the bullets at the associated level. A list has at most 9 levels of nesting with nesting level 0 corresponding to the top-most level and nesting level 8 corresponding to the most nested level. The nesting levels are returned in ascending order with the least nested returned first.", + "items": { + "$ref": "NestingLevel" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListPropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base ListProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "ListPropertiesSuggestionState", + "properties": { + "nestingLevelsSuggestionStates": { + "description": "A mask that indicates which of the fields on the corresponding NestingLevel in nesting_levels have been changed in this suggestion. The nesting level suggestion states are returned in ascending order of the nesting level with the least nested returned first.", + "items": { + "$ref": "NestingLevelSuggestionState" + }, + "type": "array" + } + }, + "type": "object" + }, + "Location": { + "description": "A particular location in the document.", + "id": "Location", + "properties": { + "index": { + "description": "The zero-based index, in UTF-16 code units. The index is relative to the beginning of the segment specified by segment_id.", + "format": "int32", + "type": "integer" + }, + "segmentId": { + "description": "The ID of the header, footer or footnote the location is in. An empty segment ID signifies the document's body.", + "type": "string" + } + }, + "type": "object" + }, + "MergeTableCellsRequest": { + "description": "Merges cells in a Table.", + "id": "MergeTableCellsRequest", + "properties": { + "tableRange": { + "$ref": "TableRange", + "description": "The table range specifying which cells of the table to merge. Any text in the cells being merged will be concatenated and stored in the \"head\" cell of the range. This is the upper-left cell of the range when the content direction is left to right, and the upper-right cell of the range otherwise. If the range is non-rectangular (which can occur in some cases where the range covers cells that are already merged or where the table is non-rectangular), a 400 bad request error is returned." + } + }, + "type": "object" + }, + "NamedRange": { + "description": "A collection of Ranges with the same named range ID. Named ranges allow developers to associate parts of a document with an arbitrary user-defined label so their contents can be programmatically read or edited later. A document can contain multiple named ranges with the same name, but every named range has a unique ID. A named range is created with a single Range, and content inserted inside a named range generally expands that range. However, certain document changes can cause the range to be split into multiple ranges. Named ranges are not private. All applications and collaborators that have access to the document can see its named ranges.", + "id": "NamedRange", + "properties": { + "name": { + "description": "The name of the named range.", + "type": "string" + }, + "namedRangeId": { + "description": "The ID of the named range.", + "type": "string" + }, + "ranges": { + "description": "The ranges that belong to this named range.", + "items": { + "$ref": "Range" + }, + "type": "array" + } + }, + "type": "object" + }, + "NamedRanges": { + "description": "A collection of all the NamedRanges in the document that share a given name.", + "id": "NamedRanges", + "properties": { + "name": { + "description": "The name that all the named ranges share.", + "type": "string" + }, + "namedRanges": { + "description": "The NamedRanges that share the same name.", + "items": { + "$ref": "NamedRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "NamedStyle": { + "description": "A named style. Paragraphs in the document can inherit their TextStyle and ParagraphStyle from this named style when they have the same named style type.", + "id": "NamedStyle", + "properties": { + "namedStyleType": { + "description": "The type of this named style.", + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "enumDescriptions": [ + "The type of named style is unspecified.", + "Normal text.", + "Title.", + "Subtitle.", + "Heading 1.", + "Heading 2.", + "Heading 3.", + "Heading 4.", + "Heading 5.", + "Heading 6." + ], + "type": "string" + }, + "paragraphStyle": { + "$ref": "ParagraphStyle", + "description": "The paragraph style of this named style." + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this named style." + } + }, + "type": "object" + }, + "NamedStyleSuggestionState": { + "description": "A suggestion state of a NamedStyle message.", + "id": "NamedStyleSuggestionState", + "properties": { + "namedStyleType": { + "description": "The named style type that this suggestion state corresponds to. This field is provided as a convenience for matching the NamedStyleSuggestionState with its corresponding NamedStyle.", + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "enumDescriptions": [ + "The type of named style is unspecified.", + "Normal text.", + "Title.", + "Subtitle.", + "Heading 1.", + "Heading 2.", + "Heading 3.", + "Heading 4.", + "Heading 5.", + "Heading 6." + ], + "type": "string" + }, + "paragraphStyleSuggestionState": { + "$ref": "ParagraphStyleSuggestionState", + "description": "A mask that indicates which of the fields in paragraph style have been changed in this suggestion." + }, + "textStyleSuggestionState": { + "$ref": "TextStyleSuggestionState", + "description": "A mask that indicates which of the fields in text style have been changed in this suggestion." + } + }, + "type": "object" + }, + "NamedStyles": { + "description": "The named styles. Paragraphs in the document can inherit their TextStyle and ParagraphStyle from these named styles.", + "id": "NamedStyles", + "properties": { + "styles": { + "description": "The named styles. There's an entry for each of the possible named style types.", + "items": { + "$ref": "NamedStyle" + }, + "type": "array" + } + }, + "type": "object" + }, + "NamedStylesSuggestionState": { + "description": "The suggestion state of a NamedStyles message.", + "id": "NamedStylesSuggestionState", + "properties": { + "stylesSuggestionStates": { + "description": "A mask that indicates which of the fields on the corresponding NamedStyle in styles have been changed in this suggestion. The order of these named style suggestion states matches the order of the corresponding named style within the named styles suggestion.", + "items": { + "$ref": "NamedStyleSuggestionState" + }, + "type": "array" + } + }, + "type": "object" + }, + "NestingLevel": { + "description": "Contains properties describing the look and feel of a list bullet at a given level of nesting.", + "id": "NestingLevel", + "properties": { + "bulletAlignment": { + "description": "The alignment of the bullet within the space allotted for rendering the bullet.", + "enum": [ + "BULLET_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "The bullet alignment is unspecified.", + "The bullet is aligned to the start of the space allotted for rendering the bullet. Left-aligned for LTR text, right-aligned otherwise.", + "The bullet is aligned to the center of the space allotted for rendering the bullet.", + "The bullet is aligned to the end of the space allotted for rendering the bullet. Right-aligned for LTR text, left-aligned otherwise." + ], + "type": "string" + }, + "glyphFormat": { + "description": "The format string used by bullets at this level of nesting. The glyph format contains one or more placeholders, and these placeholders are replaced with the appropriate values depending on the glyph_type or glyph_symbol. The placeholders follow the pattern `%[nesting_level]`. Furthermore, placeholders can have prefixes and suffixes. Thus, the glyph format follows the pattern `%[nesting_level]`. Note that the prefix and suffix are optional and can be arbitrary strings. For example, the glyph format `%0.` indicates that the rendered glyph will replace the placeholder with the corresponding glyph for nesting level 0 followed by a period as the suffix. So a list with a glyph type of UPPER_ALPHA and glyph format `%0.` at nesting level 0 will result in a list with rendered glyphs `A.` `B.` `C.` The glyph format can contain placeholders for the current nesting level as well as placeholders for parent nesting levels. For example, a list can have a glyph format of `%0.` at nesting level 0 and a glyph format of `%0.%1.` at nesting level 1. Assuming both nesting levels have DECIMAL glyph types, this would result in a list with rendered glyphs `1.` `2.` ` 2.1.` ` 2.2.` `3.` For nesting levels that are ordered, the string that replaces a placeholder in the glyph format for a particular paragraph depends on the paragraph's order within the list.", + "type": "string" + }, + "glyphSymbol": { + "description": "A custom glyph symbol used by bullets when paragraphs at this level of nesting are unordered. The glyph symbol replaces placeholders within the glyph_format. For example, if the glyph_symbol is the solid circle corresponding to Unicode U+25cf code point and the glyph_format is `%0`, the rendered glyph would be the solid circle.", + "type": "string" + }, + "glyphType": { + "description": "The type of glyph used by bullets when paragraphs at this level of nesting are ordered. The glyph type determines the type of glyph used to replace placeholders within the glyph_format when paragraphs at this level of nesting are ordered. For example, if the nesting level is 0, the glyph_format is `%0.` and the glyph type is DECIMAL, then the rendered glyph would replace the placeholder `%0` in the glyph format with a number corresponding to list item's order within the list.", + "enum": [ + "GLYPH_TYPE_UNSPECIFIED", + "NONE", + "DECIMAL", + "ZERO_DECIMAL", + "UPPER_ALPHA", + "ALPHA", + "UPPER_ROMAN", + "ROMAN" + ], + "enumDescriptions": [ + "The glyph type is unspecified or unsupported.", + "An empty string.", + "A number, like `1`, `2`, or `3`.", + "A number where single digit numbers are prefixed with a zero, like `01`, `02`, or `03`. Numbers with more than one digit are not prefixed with a zero.", + "An uppercase letter, like `A`, `B`, or `C`.", + "A lowercase letter, like `a`, `b`, or `c`.", + "An uppercase Roman numeral, like `I`, `II`, or `III`.", + "A lowercase Roman numeral, like `i`, `ii`, or `iii`." + ], + "type": "string" + }, + "indentFirstLine": { + "$ref": "Dimension", + "description": "The amount of indentation for the first line of paragraphs at this level of nesting." + }, + "indentStart": { + "$ref": "Dimension", + "description": "The amount of indentation for paragraphs at this level of nesting. Applied to the side that corresponds to the start of the text, based on the paragraph's content direction." + }, + "startNumber": { + "description": "The number of the first list item at this nesting level. A value of 0 is treated as a value of 1 for lettered lists and Roman numeral lists. For values of both 0 and 1, lettered and Roman numeral lists will begin at `a` and `i` respectively. This value is ignored for nesting levels with unordered glyphs.", + "format": "int32", + "type": "integer" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of bullets at this level of nesting." + } + }, + "type": "object" + }, + "NestingLevelSuggestionState": { + "description": "A mask that indicates which of the fields on the base NestingLevel have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "NestingLevelSuggestionState", + "properties": { + "bulletAlignmentSuggested": { + "description": "Indicates if there was a suggested change to bullet_alignment.", + "type": "boolean" + }, + "glyphFormatSuggested": { + "description": "Indicates if there was a suggested change to glyph_format.", + "type": "boolean" + }, + "glyphSymbolSuggested": { + "description": "Indicates if there was a suggested change to glyph_symbol.", + "type": "boolean" + }, + "glyphTypeSuggested": { + "description": "Indicates if there was a suggested change to glyph_type.", + "type": "boolean" + }, + "indentFirstLineSuggested": { + "description": "Indicates if there was a suggested change to indent_first_line.", + "type": "boolean" + }, + "indentStartSuggested": { + "description": "Indicates if there was a suggested change to indent_start.", + "type": "boolean" + }, + "startNumberSuggested": { + "description": "Indicates if there was a suggested change to start_number.", + "type": "boolean" + }, + "textStyleSuggestionState": { + "$ref": "TextStyleSuggestionState", + "description": "A mask that indicates which of the fields in text style have been changed in this suggestion." + } + }, + "type": "object" + }, + "ObjectReferences": { + "description": "A collection of object IDs.", + "id": "ObjectReferences", + "properties": { + "objectIds": { + "description": "The object IDs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "OptionalColor": { + "description": "A color that can either be fully opaque or fully transparent.", + "id": "OptionalColor", + "properties": { + "color": { + "$ref": "Color", + "description": "If set, this will be used as an opaque color. If unset, this represents a transparent color." + } + }, + "type": "object" + }, + "PageBreak": { + "description": "A ParagraphElement representing a page break. A page break makes the subsequent text start at the top of the next page.", + "id": "PageBreak", + "properties": { + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A PageBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this PageBreak, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this PageBreak. Similar to text content, like text runs and footnote references, the text style of a page break can affect content layout as well as the styling of text inserted next to it." + } + }, + "type": "object" + }, + "Paragraph": { + "description": "A StructuralElement representing a paragraph. A paragraph is a range of content that's terminated with a newline character.", + "id": "Paragraph", + "properties": { + "bullet": { + "$ref": "Bullet", + "description": "The bullet for this paragraph. If not present, the paragraph does not belong to a list." + }, + "elements": { + "description": "The content of the paragraph, broken down into its component parts.", + "items": { + "$ref": "ParagraphElement" + }, + "type": "array" + }, + "paragraphStyle": { + "$ref": "ParagraphStyle", + "description": "The style of this paragraph." + }, + "positionedObjectIds": { + "description": "The IDs of the positioned objects tethered to this paragraph.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedBulletChanges": { + "additionalProperties": { + "$ref": "SuggestedBullet" + }, + "description": "The suggested changes to this paragraph's bullet.", + "type": "object" + }, + "suggestedParagraphStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedParagraphStyle" + }, + "description": "The suggested paragraph style changes to this paragraph, keyed by suggestion ID.", + "type": "object" + }, + "suggestedPositionedObjectIds": { + "additionalProperties": { + "$ref": "ObjectReferences" + }, + "description": "The IDs of the positioned objects suggested to be attached to this paragraph, keyed by suggestion ID.", + "type": "object" + } + }, + "type": "object" + }, + "ParagraphBorder": { + "description": "A border around a paragraph.", + "id": "ParagraphBorder", + "properties": { + "color": { + "$ref": "OptionalColor", + "description": "The color of the border." + }, + "dashStyle": { + "description": "The dash style of the border.", + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH" + ], + "enumDescriptions": [ + "Unspecified dash style.", + "Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", + "Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", + "Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." + ], + "type": "string" + }, + "padding": { + "$ref": "Dimension", + "description": "The padding of the border." + }, + "width": { + "$ref": "Dimension", + "description": "The width of the border." + } + }, + "type": "object" + }, + "ParagraphElement": { + "description": "A ParagraphElement describes content within a Paragraph.", + "id": "ParagraphElement", + "properties": { + "autoText": { + "$ref": "AutoText", + "description": "An auto text paragraph element." + }, + "columnBreak": { + "$ref": "ColumnBreak", + "description": "A column break paragraph element." + }, + "endIndex": { + "description": "The zero-base end index of this paragraph element, exclusive, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "equation": { + "$ref": "Equation", + "description": "An equation paragraph element." + }, + "footnoteReference": { + "$ref": "FootnoteReference", + "description": "A footnote reference paragraph element." + }, + "horizontalRule": { + "$ref": "HorizontalRule", + "description": "A horizontal rule paragraph element." + }, + "inlineObjectElement": { + "$ref": "InlineObjectElement", + "description": "An inline object paragraph element." + }, + "pageBreak": { + "$ref": "PageBreak", + "description": "A page break paragraph element." + }, + "person": { + "$ref": "Person", + "description": "A paragraph element that links to a person or email address." + }, + "richLink": { + "$ref": "RichLink", + "description": "A paragraph element that links to a Google resource (such as a file in Google Drive, a YouTube video, or a Calendar event.)" + }, + "startIndex": { + "description": "The zero-based start index of this paragraph element, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "textRun": { + "$ref": "TextRun", + "description": "A text run paragraph element." + } + }, + "type": "object" + }, + "ParagraphStyle": { + "description": "Styles that apply to a whole paragraph. Inherited paragraph styles are represented as unset fields in this message. A paragraph style's parent depends on where the paragraph style is defined: * The ParagraphStyle on a Paragraph inherits from the paragraph's corresponding named style type. * The ParagraphStyle on a named style inherits from the normal text named style. * The ParagraphStyle of the normal text named style inherits from the default paragraph style in the Docs editor. * The ParagraphStyle on a Paragraph element that's contained in a table may inherit its paragraph style from the table style. If the paragraph style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor.", + "id": "ParagraphStyle", + "properties": { + "alignment": { + "description": "The text alignment for this paragraph.", + "enum": [ + "ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END", + "JUSTIFIED" + ], + "enumDescriptions": [ + "The paragraph alignment is inherited from the parent.", + "The paragraph is aligned to the start of the line. Left-aligned for LTR text, right-aligned otherwise.", + "The paragraph is centered.", + "The paragraph is aligned to the end of the line. Right-aligned for LTR text, left-aligned otherwise.", + "The paragraph is justified." + ], + "type": "string" + }, + "avoidWidowAndOrphan": { + "description": "Whether to avoid widows and orphans for the paragraph. If unset, the value is inherited from the parent.", + "type": "boolean" + }, + "borderBetween": { + "$ref": "ParagraphBorder", + "description": "The border between this paragraph and the next and previous paragraphs. If unset, the value is inherited from the parent. The between border is rendered when the adjacent paragraph has the same border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." + }, + "borderBottom": { + "$ref": "ParagraphBorder", + "description": "The border at the bottom of this paragraph. If unset, the value is inherited from the parent. The bottom border is rendered when the paragraph below has different border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." + }, + "borderLeft": { + "$ref": "ParagraphBorder", + "description": "The border to the left of this paragraph. If unset, the value is inherited from the parent. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." + }, + "borderRight": { + "$ref": "ParagraphBorder", + "description": "The border to the right of this paragraph. If unset, the value is inherited from the parent. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." + }, + "borderTop": { + "$ref": "ParagraphBorder", + "description": "The border at the top of this paragraph. If unset, the value is inherited from the parent. The top border is rendered when the paragraph above has different border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." + }, + "direction": { + "description": "The text direction of this paragraph. If unset, the value defaults to LEFT_TO_RIGHT since paragraph direction is not inherited.", + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "enumDescriptions": [ + "The content direction is unspecified.", + "The content goes from left to right.", + "The content goes from right to left." + ], + "type": "string" + }, + "headingId": { + "description": "The heading ID of the paragraph. If empty, then this paragraph is not a heading. This property is read-only.", + "type": "string" + }, + "indentEnd": { + "$ref": "Dimension", + "description": "The amount of indentation for the paragraph on the side that corresponds to the end of the text, based on the current paragraph direction. If unset, the value is inherited from the parent." + }, + "indentFirstLine": { + "$ref": "Dimension", + "description": "The amount of indentation for the first line of the paragraph. If unset, the value is inherited from the parent." + }, + "indentStart": { + "$ref": "Dimension", + "description": "The amount of indentation for the paragraph on the side that corresponds to the start of the text, based on the current paragraph direction. If unset, the value is inherited from the parent." + }, + "keepLinesTogether": { + "description": "Whether all lines of the paragraph should be laid out on the same page or column if possible. If unset, the value is inherited from the parent.", + "type": "boolean" + }, + "keepWithNext": { + "description": "Whether at least a part of this paragraph should be laid out on the same page or column as the next paragraph if possible. If unset, the value is inherited from the parent.", + "type": "boolean" + }, + "lineSpacing": { + "description": "The amount of space between lines, as a percentage of normal, where normal is represented as 100.0. If unset, the value is inherited from the parent.", + "format": "float", + "type": "number" + }, + "namedStyleType": { + "description": "The named style type of the paragraph. Since updating the named style type affects other properties within ParagraphStyle, the named style type is applied before the other properties are updated.", + "enum": [ + "NAMED_STYLE_TYPE_UNSPECIFIED", + "NORMAL_TEXT", + "TITLE", + "SUBTITLE", + "HEADING_1", + "HEADING_2", + "HEADING_3", + "HEADING_4", + "HEADING_5", + "HEADING_6" + ], + "enumDescriptions": [ + "The type of named style is unspecified.", + "Normal text.", + "Title.", + "Subtitle.", + "Heading 1.", + "Heading 2.", + "Heading 3.", + "Heading 4.", + "Heading 5.", + "Heading 6." + ], + "type": "string" + }, + "pageBreakBefore": { + "description": "Whether the current paragraph should always start at the beginning of a page. If unset, the value is inherited from the parent. Attempting to update page_break_before for paragraphs in unsupported regions, including Table, Header, Footer and Footnote, can result in an invalid document state that returns a 400 bad request error.", + "type": "boolean" + }, + "shading": { + "$ref": "Shading", + "description": "The shading of the paragraph. If unset, the value is inherited from the parent." + }, + "spaceAbove": { + "$ref": "Dimension", + "description": "The amount of extra space above the paragraph. If unset, the value is inherited from the parent." + }, + "spaceBelow": { + "$ref": "Dimension", + "description": "The amount of extra space below the paragraph. If unset, the value is inherited from the parent." + }, + "spacingMode": { + "description": "The spacing mode for the paragraph.", + "enum": [ + "SPACING_MODE_UNSPECIFIED", + "NEVER_COLLAPSE", + "COLLAPSE_LISTS" + ], + "enumDescriptions": [ + "The spacing mode is inherited from the parent.", + "Paragraph spacing is always rendered.", + "Paragraph spacing is skipped between list elements." + ], + "type": "string" + }, + "tabStops": { + "description": "A list of the tab stops for this paragraph. The list of tab stops is not inherited. This property is read-only.", + "items": { + "$ref": "TabStop" + }, + "type": "array" + } + }, + "type": "object" + }, + "ParagraphStyleSuggestionState": { + "description": "A mask that indicates which of the fields on the base ParagraphStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "ParagraphStyleSuggestionState", + "properties": { + "alignmentSuggested": { + "description": "Indicates if there was a suggested change to alignment.", + "type": "boolean" + }, + "avoidWidowAndOrphanSuggested": { + "description": "Indicates if there was a suggested change to avoid_widow_and_orphan.", + "type": "boolean" + }, + "borderBetweenSuggested": { + "description": "Indicates if there was a suggested change to border_between.", + "type": "boolean" + }, + "borderBottomSuggested": { + "description": "Indicates if there was a suggested change to border_bottom.", + "type": "boolean" + }, + "borderLeftSuggested": { + "description": "Indicates if there was a suggested change to border_left.", + "type": "boolean" + }, + "borderRightSuggested": { + "description": "Indicates if there was a suggested change to border_right.", + "type": "boolean" + }, + "borderTopSuggested": { + "description": "Indicates if there was a suggested change to border_top.", + "type": "boolean" + }, + "directionSuggested": { + "description": "Indicates if there was a suggested change to direction.", + "type": "boolean" + }, + "headingIdSuggested": { + "description": "Indicates if there was a suggested change to heading_id.", + "type": "boolean" + }, + "indentEndSuggested": { + "description": "Indicates if there was a suggested change to indent_end.", + "type": "boolean" + }, + "indentFirstLineSuggested": { + "description": "Indicates if there was a suggested change to indent_first_line.", + "type": "boolean" + }, + "indentStartSuggested": { + "description": "Indicates if there was a suggested change to indent_start.", + "type": "boolean" + }, + "keepLinesTogetherSuggested": { + "description": "Indicates if there was a suggested change to keep_lines_together.", + "type": "boolean" + }, + "keepWithNextSuggested": { + "description": "Indicates if there was a suggested change to keep_with_next.", + "type": "boolean" + }, + "lineSpacingSuggested": { + "description": "Indicates if there was a suggested change to line_spacing.", + "type": "boolean" + }, + "namedStyleTypeSuggested": { + "description": "Indicates if there was a suggested change to named_style_type.", + "type": "boolean" + }, + "pageBreakBeforeSuggested": { + "description": "Indicates if there was a suggested change to page_break_before.", + "type": "boolean" + }, + "shadingSuggestionState": { + "$ref": "ShadingSuggestionState", + "description": "A mask that indicates which of the fields in shading have been changed in this suggestion." + }, + "spaceAboveSuggested": { + "description": "Indicates if there was a suggested change to space_above.", + "type": "boolean" + }, + "spaceBelowSuggested": { + "description": "Indicates if there was a suggested change to space_below.", + "type": "boolean" + }, + "spacingModeSuggested": { + "description": "Indicates if there was a suggested change to spacing_mode.", + "type": "boolean" + } + }, + "type": "object" + }, + "Person": { + "description": "A person or email address mentioned in a document. These mentions behave as a single, immutable element containing the person's name or email address.", + "id": "Person", + "properties": { + "personId": { + "description": "Output only. The unique ID of this link.", + "readOnly": true, + "type": "string" + }, + "personProperties": { + "$ref": "PersonProperties", + "description": "Output only. The properties of this Person. This field is always present.", + "readOnly": true + }, + "suggestedDeletionIds": { + "description": "IDs for suggestions that remove this person link from the document. A Person might have multiple deletion IDs if, for example, multiple users suggest deleting it. If empty, then this person link isn't suggested for deletion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "IDs for suggestions that insert this person link into the document. A Person might have multiple insertion IDs if it's a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn't a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this Person, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this Person." + } + }, + "type": "object" + }, + "PersonProperties": { + "description": "Properties specific to a linked Person.", + "id": "PersonProperties", + "properties": { + "email": { + "description": "Output only. The email address linked to this Person. This field is always present.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The name of the person if it's displayed in the link text instead of the person's email address.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "PinTableHeaderRowsRequest": { + "description": "Updates the number of pinned table header rows in a table.", + "id": "PinTableHeaderRowsRequest", + "properties": { + "pinnedHeaderRowsCount": { + "description": "The number of table rows to pin, where 0 implies that all rows are unpinned.", + "format": "int32", + "type": "integer" + }, + "tableStartLocation": { + "$ref": "Location", + "description": "The location where the table starts in the document." + } + }, + "type": "object" + }, + "PositionedObject": { + "description": "An object that's tethered to a Paragraph and positioned relative to the beginning of the paragraph. A PositionedObject contains an EmbeddedObject such as an image.", + "id": "PositionedObject", + "properties": { + "objectId": { + "description": "The ID of this positioned object.", + "type": "string" + }, + "positionedObjectProperties": { + "$ref": "PositionedObjectProperties", + "description": "The properties of this positioned object." + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionId": { + "description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", + "type": "string" + }, + "suggestedPositionedObjectPropertiesChanges": { + "additionalProperties": { + "$ref": "SuggestedPositionedObjectProperties" + }, + "description": "The suggested changes to the positioned object properties, keyed by suggestion ID.", + "type": "object" + } + }, + "type": "object" + }, + "PositionedObjectPositioning": { + "description": "The positioning of a PositionedObject. The positioned object is positioned relative to the beginning of the Paragraph it's tethered to.", + "id": "PositionedObjectPositioning", + "properties": { + "layout": { + "description": "The layout of this positioned object.", + "enum": [ + "POSITIONED_OBJECT_LAYOUT_UNSPECIFIED", + "WRAP_TEXT", + "BREAK_LEFT", + "BREAK_RIGHT", + "BREAK_LEFT_RIGHT", + "IN_FRONT_OF_TEXT", + "BEHIND_TEXT" + ], + "enumDescriptions": [ + "The layout is unspecified.", + "The text wraps around the positioned object.", + "Breaks text such that the positioned object is on the left and text is on the right.", + "Breaks text such that the positioned object is on the right and text is on the left.", + "Breaks text such that there's no text on the left or right of the positioned object.", + "The positioned object is in front of the text.", + "The positioned object is behind the text." + ], + "type": "string" + }, + "leftOffset": { + "$ref": "Dimension", + "description": "The offset of the left edge of the positioned object relative to the beginning of the Paragraph it's tethered to. The exact positioning of the object can depend on other content in the document and the document's styling." + }, + "topOffset": { + "$ref": "Dimension", + "description": "The offset of the top edge of the positioned object relative to the beginning of the Paragraph it's tethered to. The exact positioning of the object can depend on other content in the document and the document's styling." + } + }, + "type": "object" + }, + "PositionedObjectPositioningSuggestionState": { + "description": "A mask that indicates which of the fields on the base PositionedObjectPositioning have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "PositionedObjectPositioningSuggestionState", + "properties": { + "layoutSuggested": { + "description": "Indicates if there was a suggested change to layout.", + "type": "boolean" + }, + "leftOffsetSuggested": { + "description": "Indicates if there was a suggested change to left_offset.", + "type": "boolean" + }, + "topOffsetSuggested": { + "description": "Indicates if there was a suggested change to top_offset.", + "type": "boolean" + } + }, + "type": "object" + }, + "PositionedObjectProperties": { + "description": "Properties of a PositionedObject.", + "id": "PositionedObjectProperties", + "properties": { + "embeddedObject": { + "$ref": "EmbeddedObject", + "description": "The embedded object of this positioned object." + }, + "positioning": { + "$ref": "PositionedObjectPositioning", + "description": "The positioning of this positioned object relative to the newline of the Paragraph that references this positioned object." + } + }, + "type": "object" + }, + "PositionedObjectPropertiesSuggestionState": { + "description": "A mask that indicates which of the fields on the base PositionedObjectProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "PositionedObjectPropertiesSuggestionState", + "properties": { + "embeddedObjectSuggestionState": { + "$ref": "EmbeddedObjectSuggestionState", + "description": "A mask that indicates which of the fields in embedded_object have been changed in this suggestion." + }, + "positioningSuggestionState": { + "$ref": "PositionedObjectPositioningSuggestionState", + "description": "A mask that indicates which of the fields in positioning have been changed in this suggestion." + } + }, + "type": "object" + }, + "Range": { + "description": "Specifies a contiguous range of text.", + "id": "Range", + "properties": { + "endIndex": { + "description": "The zero-based end index of this range, exclusive, in UTF-16 code units. In all current uses, an end index must be provided. This field is an Int32Value in order to accommodate future use cases with open-ended ranges.", + "format": "int32", + "type": "integer" + }, + "segmentId": { + "description": "The ID of the header, footer, or footnote that this range is contained in. An empty segment ID signifies the document's body.", + "type": "string" + }, + "startIndex": { + "description": "The zero-based start index of this range, in UTF-16 code units. In all current uses, a start index must be provided. This field is an Int32Value in order to accommodate future use cases with open-ended ranges.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ReplaceAllTextRequest": { + "description": "Replaces all instances of text matching a criteria with replace text.", + "id": "ReplaceAllTextRequest", + "properties": { + "containsText": { + "$ref": "SubstringMatchCriteria", + "description": "Finds text in the document matching this substring." + }, + "replaceText": { + "description": "The text that will replace the matched text.", + "type": "string" + } + }, + "type": "object" + }, + "ReplaceAllTextResponse": { + "description": "The result of replacing text.", + "id": "ReplaceAllTextResponse", + "properties": { + "occurrencesChanged": { + "description": "The number of occurrences changed by replacing all text.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ReplaceImageRequest": { + "description": "Replaces an existing image with a new image. Replacing an image removes some image effects from the existing image in order to mirror the behavior of the Docs editor.", + "id": "ReplaceImageRequest", + "properties": { + "imageObjectId": { + "description": "The ID of the existing image that will be replaced. The ID can be retrieved from the response of a get request.", + "type": "string" + }, + "imageReplaceMethod": { + "description": "The replacement method.", + "enum": [ + "IMAGE_REPLACE_METHOD_UNSPECIFIED", + "CENTER_CROP" + ], + "enumDescriptions": [ + "Unspecified image replace method. This value must not be used.", + "Scales and centers the image to fill the bounds of the original image. The image may be cropped in order to fill the original image's bounds. The rendered size of the image will be the same as the original image." + ], + "type": "string" + }, + "uri": { + "description": "The URI of the new image. The image is fetched once at insertion time and a copy is stored for display inside the document. Images must be less than 50MB, cannot exceed 25 megapixels, and must be in PNG, JPEG, or GIF format. The provided URI can't surpass 2 KB in length. The URI is saved with the image, and exposed through the ImageProperties.source_uri field.", + "type": "string" + } + }, + "type": "object" + }, + "ReplaceNamedRangeContentRequest": { + "description": "Replaces the contents of the specified NamedRange or NamedRanges with the given replacement content. Note that an individual NamedRange may consist of multiple discontinuous ranges. In this case, only the content in the first range will be replaced. The other ranges and their content will be deleted. In cases where replacing or deleting any ranges would result in an invalid document structure, a 400 bad request error is returned.", + "id": "ReplaceNamedRangeContentRequest", + "properties": { + "namedRangeId": { + "description": "The ID of the named range whose content will be replaced. If there is no named range with the given ID a 400 bad request error is returned.", + "type": "string" + }, + "namedRangeName": { + "description": "The name of the NamedRanges whose content will be replaced. If there are multiple named ranges with the given name, then the content of each one will be replaced. If there are no named ranges with the given name, then the request will be a no-op.", + "type": "string" + }, + "text": { + "description": "Replaces the content of the specified named range(s) with the given text.", + "type": "string" + } + }, + "type": "object" + }, + "Request": { + "description": "A single update to apply to a document.", + "id": "Request", + "properties": { + "createFooter": { + "$ref": "CreateFooterRequest", + "description": "Creates a footer." + }, + "createFootnote": { + "$ref": "CreateFootnoteRequest", + "description": "Creates a footnote." + }, + "createHeader": { + "$ref": "CreateHeaderRequest", + "description": "Creates a header." + }, + "createNamedRange": { + "$ref": "CreateNamedRangeRequest", + "description": "Creates a named range." + }, + "createParagraphBullets": { + "$ref": "CreateParagraphBulletsRequest", + "description": "Creates bullets for paragraphs." + }, + "deleteContentRange": { + "$ref": "DeleteContentRangeRequest", + "description": "Deletes content from the document." + }, + "deleteFooter": { + "$ref": "DeleteFooterRequest", + "description": "Deletes a footer from the document." + }, + "deleteHeader": { + "$ref": "DeleteHeaderRequest", + "description": "Deletes a header from the document." + }, + "deleteNamedRange": { + "$ref": "DeleteNamedRangeRequest", + "description": "Deletes a named range." + }, + "deleteParagraphBullets": { + "$ref": "DeleteParagraphBulletsRequest", + "description": "Deletes bullets from paragraphs." + }, + "deletePositionedObject": { + "$ref": "DeletePositionedObjectRequest", + "description": "Deletes a positioned object from the document." + }, + "deleteTableColumn": { + "$ref": "DeleteTableColumnRequest", + "description": "Deletes a column from a table." + }, + "deleteTableRow": { + "$ref": "DeleteTableRowRequest", + "description": "Deletes a row from a table." + }, + "insertInlineImage": { + "$ref": "InsertInlineImageRequest", + "description": "Inserts an inline image at the specified location." + }, + "insertPageBreak": { + "$ref": "InsertPageBreakRequest", + "description": "Inserts a page break at the specified location." + }, + "insertSectionBreak": { + "$ref": "InsertSectionBreakRequest", + "description": "Inserts a section break at the specified location." + }, + "insertTable": { + "$ref": "InsertTableRequest", + "description": "Inserts a table at the specified location." + }, + "insertTableColumn": { + "$ref": "InsertTableColumnRequest", + "description": "Inserts an empty column into a table." + }, + "insertTableRow": { + "$ref": "InsertTableRowRequest", + "description": "Inserts an empty row into a table." + }, + "insertText": { + "$ref": "InsertTextRequest", + "description": "Inserts text at the specified location." + }, + "mergeTableCells": { + "$ref": "MergeTableCellsRequest", + "description": "Merges cells in a table." + }, + "pinTableHeaderRows": { + "$ref": "PinTableHeaderRowsRequest", + "description": "Updates the number of pinned header rows in a table." + }, + "replaceAllText": { + "$ref": "ReplaceAllTextRequest", + "description": "Replaces all instances of the specified text." + }, + "replaceImage": { + "$ref": "ReplaceImageRequest", + "description": "Replaces an image in the document." + }, + "replaceNamedRangeContent": { + "$ref": "ReplaceNamedRangeContentRequest", + "description": "Replaces the content in a named range." + }, + "unmergeTableCells": { + "$ref": "UnmergeTableCellsRequest", + "description": "Unmerges cells in a table." + }, + "updateDocumentStyle": { + "$ref": "UpdateDocumentStyleRequest", + "description": "Updates the style of the document." + }, + "updateParagraphStyle": { + "$ref": "UpdateParagraphStyleRequest", + "description": "Updates the paragraph style at the specified range." + }, + "updateSectionStyle": { + "$ref": "UpdateSectionStyleRequest", + "description": "Updates the section style of the specified range." + }, + "updateTableCellStyle": { + "$ref": "UpdateTableCellStyleRequest", + "description": "Updates the style of table cells." + }, + "updateTableColumnProperties": { + "$ref": "UpdateTableColumnPropertiesRequest", + "description": "Updates the properties of columns in a table." + }, + "updateTableRowStyle": { + "$ref": "UpdateTableRowStyleRequest", + "description": "Updates the row style in a table." + }, + "updateTextStyle": { + "$ref": "UpdateTextStyleRequest", + "description": "Updates the text style at the specified range." + } + }, + "type": "object" + }, + "Response": { + "description": "A single response from an update.", + "id": "Response", + "properties": { + "createFooter": { + "$ref": "CreateFooterResponse", + "description": "The result of creating a footer." + }, + "createFootnote": { + "$ref": "CreateFootnoteResponse", + "description": "The result of creating a footnote." + }, + "createHeader": { + "$ref": "CreateHeaderResponse", + "description": "The result of creating a header." + }, + "createNamedRange": { + "$ref": "CreateNamedRangeResponse", + "description": "The result of creating a named range." + }, + "insertInlineImage": { + "$ref": "InsertInlineImageResponse", + "description": "The result of inserting an inline image." + }, + "insertInlineSheetsChart": { + "$ref": "InsertInlineSheetsChartResponse", + "description": "The result of inserting an inline Google Sheets chart." + }, + "replaceAllText": { + "$ref": "ReplaceAllTextResponse", + "description": "The result of replacing text." + } + }, + "type": "object" + }, + "RgbColor": { + "description": "An RGB color.", + "id": "RgbColor", + "properties": { + "blue": { + "description": "The blue component of the color, from 0.0 to 1.0.", + "format": "float", + "type": "number" + }, + "green": { + "description": "The green component of the color, from 0.0 to 1.0.", + "format": "float", + "type": "number" + }, + "red": { + "description": "The red component of the color, from 0.0 to 1.0.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "RichLink": { + "description": "A link to a Google resource (such as a file in Drive, a YouTube video, or a Calendar event).", + "id": "RichLink", + "properties": { + "richLinkId": { + "description": "Output only. The ID of this link.", + "readOnly": true, + "type": "string" + }, + "richLinkProperties": { + "$ref": "RichLinkProperties", + "description": "Output only. The properties of this RichLink. This field is always present.", + "readOnly": true + }, + "suggestedDeletionIds": { + "description": "IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest deleting it. If empty, then this person link isn't suggested for deletion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it's a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn't a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this RichLink, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this RichLink." + } + }, + "type": "object" + }, + "RichLinkProperties": { + "description": "Properties specific to a RichLink.", + "id": "RichLinkProperties", + "properties": { + "mimeType": { + "description": "Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there's one (for example, when it's a file in Drive).", + "readOnly": true, + "type": "string" + }, + "title": { + "description": "Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.", + "readOnly": true, + "type": "string" + }, + "uri": { + "description": "Output only. The URI to the RichLink. This is always present.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SectionBreak": { + "description": "A StructuralElement representing a section break. A section is a range of content that has the same SectionStyle. A section break represents the start of a new section, and the section style applies to the section after the section break. The document body always begins with a section break.", + "id": "SectionBreak", + "properties": { + "sectionStyle": { + "$ref": "SectionStyle", + "description": "The style of the section after this section break." + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A SectionBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SectionColumnProperties": { + "description": "Properties that apply to a section's column.", + "id": "SectionColumnProperties", + "properties": { + "paddingEnd": { + "$ref": "Dimension", + "description": "The padding at the end of the column." + }, + "width": { + "$ref": "Dimension", + "description": "Output only. The width of the column." + } + }, + "type": "object" + }, + "SectionStyle": { + "description": "The styling that applies to a section.", + "id": "SectionStyle", + "properties": { + "columnProperties": { + "description": "The section's columns properties. If empty, the section contains one column with the default properties in the Docs editor. A section can be updated to have no more than 3 columns. When updating this property, setting a concrete value is required. Unsetting this property will result in a 400 bad request error.", + "items": { + "$ref": "SectionColumnProperties" + }, + "type": "array" + }, + "columnSeparatorStyle": { + "description": "The style of column separators. This style can be set even when there's one column in the section. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", + "enum": [ + "COLUMN_SEPARATOR_STYLE_UNSPECIFIED", + "NONE", + "BETWEEN_EACH_COLUMN" + ], + "enumDescriptions": [ + "An unspecified column separator style.", + "No column separator lines between columns.", + "Renders a column separator line between each column." + ], + "type": "string" + }, + "contentDirection": { + "description": "The content direction of this section. If unset, the value defaults to LEFT_TO_RIGHT. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", + "enum": [ + "CONTENT_DIRECTION_UNSPECIFIED", + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT" + ], + "enumDescriptions": [ + "The content direction is unspecified.", + "The content goes from left to right.", + "The content goes from right to left." + ], + "type": "string" + }, + "defaultFooterId": { + "description": "The ID of the default footer. 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 default_footer_id. This property is read-only.", + "type": "string" + }, + "defaultHeaderId": { + "description": "The ID of the default header. 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 default_header_id. This property is read-only.", + "type": "string" + }, + "evenPageFooterId": { + "description": "The ID of the footer used only for even pages. If the value of DocumentStyle's use_even_page_header_footer is true, this value is used for the footers on even pages in the section. If it is false, the footers on even pages use the default_footer_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 even_page_footer_id. This property is read-only.", + "type": "string" + }, + "evenPageHeaderId": { + "description": "The ID of the header used only for even pages. If the value of DocumentStyle's use_even_page_header_footer is true, this value is used for the headers on even pages in the section. If it is false, the headers on even pages use 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 even_page_header_id. This property is read-only.", + "type": "string" + }, + "firstPageFooterId": { + "description": "The ID of the footer used only for the first page of the section. If use_first_page_header_footer is true, this value is used for the footer on the first page of the section. If it's false, the footer on the first page of the section uses the default_footer_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_footer_id. This property is read-only.", + "type": "string" + }, + "firstPageHeaderId": { + "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" + }, + "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." + }, + "marginFooter": { + "$ref": "Dimension", + "description": "The footer margin of the section. If unset, the value defaults to margin_footer from DocumentStyle. If updated, use_custom_header_footer_margins is set to true on DocumentStyle. The value of use_custom_header_footer_margins on DocumentStyle indicates if a footer margin is being respected for this section When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." + }, + "marginHeader": { + "$ref": "Dimension", + "description": "The header margin of the section. If unset, the value defaults to margin_header from DocumentStyle. If updated, use_custom_header_footer_margins is set to true on DocumentStyle. The value of use_custom_header_footer_margins on DocumentStyle indicates if a header margin is being respected for this section. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." + }, + "marginLeft": { + "$ref": "Dimension", + "description": "The left page margin of the section. If unset, the value defaults to margin_left from DocumentStyle. Updating the left margin causes columns in this section to resize. Since the margin affects column width, it's applied before column properties. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." + }, + "marginRight": { + "$ref": "Dimension", + "description": "The right page margin of the section. If unset, the value defaults to margin_right from DocumentStyle. Updating the right margin causes columns in this section to resize. Since the margin affects column width, it's applied before column properties. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." + }, + "marginTop": { + "$ref": "Dimension", + "description": "The top page margin of the section. If unset, the value defaults to margin_top from DocumentStyle. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." + }, + "pageNumberStart": { + "description": "The page number from which to start counting the number of pages for this section. If unset, page numbering continues from the previous section. If the value is unset in the first SectionBreak, refer to DocumentStyle's page_number_start. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", + "format": "int32", + "type": "integer" + }, + "sectionType": { + "description": "Output only. The type of section.", + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "CONTINUOUS", + "NEXT_PAGE" + ], + "enumDescriptions": [ + "The section type is unspecified.", + "The section starts immediately after the last paragraph of the previous section.", + "The section starts on the next page." + ], + "type": "string" + }, + "useFirstPageHeaderFooter": { + "description": "Indicates whether to use the first page header / footer IDs for the first page of the section. If unset, it inherits from DocumentStyle's use_first_page_header_footer for the first section. If the value is unset for subsequent sectors, it should be interpreted as false. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", + "type": "boolean" + } + }, + "type": "object" + }, + "Shading": { + "description": "The shading of a paragraph.", + "id": "Shading", + "properties": { + "backgroundColor": { + "$ref": "OptionalColor", + "description": "The background color of this paragraph shading." + } + }, + "type": "object" + }, + "ShadingSuggestionState": { + "description": "A mask that indicates which of the fields on the base Shading have been changed in this suggested change. For any field set to true, there's a new suggested value.", + "id": "ShadingSuggestionState", + "properties": { + "backgroundColorSuggested": { + "description": "Indicates if there was a suggested change to the Shading.", + "type": "boolean" + } + }, + "type": "object" + }, + "SheetsChartReference": { + "description": "A reference to a linked chart embedded from Google Sheets.", + "id": "SheetsChartReference", + "properties": { + "chartId": { + "description": "The ID of the specific chart in the Google Sheets spreadsheet that's embedded.", + "format": "int32", + "type": "integer" + }, + "spreadsheetId": { + "description": "The ID of the Google Sheets spreadsheet that contains the source chart.", + "type": "string" + } + }, + "type": "object" + }, + "SheetsChartReferenceSuggestionState": { + "description": "A mask that indicates which of the fields on the base SheetsChartReference have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "SheetsChartReferenceSuggestionState", + "properties": { + "chartIdSuggested": { + "description": "Indicates if there was a suggested change to chart_id.", + "type": "boolean" + }, + "spreadsheetIdSuggested": { + "description": "Indicates if there was a suggested change to spreadsheet_id.", + "type": "boolean" + } + }, + "type": "object" + }, + "Size": { + "description": "A width and height.", + "id": "Size", + "properties": { + "height": { + "$ref": "Dimension", + "description": "The height of the object." + }, + "width": { + "$ref": "Dimension", + "description": "The width of the object." + } + }, + "type": "object" + }, + "SizeSuggestionState": { + "description": "A mask that indicates which of the fields on the base Size have been changed in this suggestion. For any field set to true, the Size has a new suggested value.", + "id": "SizeSuggestionState", + "properties": { + "heightSuggested": { + "description": "Indicates if there was a suggested change to height.", + "type": "boolean" + }, + "widthSuggested": { + "description": "Indicates if there was a suggested change to width.", + "type": "boolean" + } + }, + "type": "object" + }, + "StructuralElement": { + "description": "A StructuralElement describes content that provides structure to the document.", + "id": "StructuralElement", + "properties": { + "endIndex": { + "description": "The zero-based end index of this structural element, exclusive, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "paragraph": { + "$ref": "Paragraph", + "description": "A paragraph type of structural element." + }, + "sectionBreak": { + "$ref": "SectionBreak", + "description": "A section break type of structural element." + }, + "startIndex": { + "description": "The zero-based start index of this structural element, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "table": { + "$ref": "Table", + "description": "A table type of structural element." + }, + "tableOfContents": { + "$ref": "TableOfContents", + "description": "A table of contents type of structural element." + } + }, + "type": "object" + }, + "SubstringMatchCriteria": { + "description": "A criteria that matches a specific string of text in the document.", + "id": "SubstringMatchCriteria", + "properties": { + "matchCase": { + "description": "Indicates whether the search should respect case: - `True`: the search is case sensitive. - `False`: the search is case insensitive.", + "type": "boolean" + }, + "text": { + "description": "The text to search for in the document.", + "type": "string" + } + }, + "type": "object" + }, + "SuggestedBullet": { + "description": "A suggested change to a Bullet.", + "id": "SuggestedBullet", + "properties": { + "bullet": { + "$ref": "Bullet", + "description": "A Bullet that only includes the changes made in this suggestion. This can be used along with the bullet_suggestion_state to see which fields have changed and their new values." + }, + "bulletSuggestionState": { + "$ref": "BulletSuggestionState", + "description": "A mask that indicates which of the fields on the base Bullet have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedDocumentStyle": { + "description": "A suggested change to the DocumentStyle.", + "id": "SuggestedDocumentStyle", + "properties": { + "documentStyle": { + "$ref": "DocumentStyle", + "description": "A DocumentStyle that only includes the changes made in this suggestion. This can be used along with the document_style_suggestion_state to see which fields have changed and their new values." + }, + "documentStyleSuggestionState": { + "$ref": "DocumentStyleSuggestionState", + "description": "A mask that indicates which of the fields on the base DocumentStyle have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedInlineObjectProperties": { + "description": "A suggested change to InlineObjectProperties.", + "id": "SuggestedInlineObjectProperties", + "properties": { + "inlineObjectProperties": { + "$ref": "InlineObjectProperties", + "description": "An InlineObjectProperties that only includes the changes made in this suggestion. This can be used along with the inline_object_properties_suggestion_state to see which fields have changed and their new values." + }, + "inlineObjectPropertiesSuggestionState": { + "$ref": "InlineObjectPropertiesSuggestionState", + "description": "A mask that indicates which of the fields on the base InlineObjectProperties have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedListProperties": { + "description": "A suggested change to ListProperties.", + "id": "SuggestedListProperties", + "properties": { + "listProperties": { + "$ref": "ListProperties", + "description": "A ListProperties that only includes the changes made in this suggestion. This can be used along with the list_properties_suggestion_state to see which fields have changed and their new values." + }, + "listPropertiesSuggestionState": { + "$ref": "ListPropertiesSuggestionState", + "description": "A mask that indicates which of the fields on the base ListProperties have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedNamedStyles": { + "description": "A suggested change to the NamedStyles.", + "id": "SuggestedNamedStyles", + "properties": { + "namedStyles": { + "$ref": "NamedStyles", + "description": "A NamedStyles that only includes the changes made in this suggestion. This can be used along with the named_styles_suggestion_state to see which fields have changed and their new values." + }, + "namedStylesSuggestionState": { + "$ref": "NamedStylesSuggestionState", + "description": "A mask that indicates which of the fields on the base NamedStyles have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedParagraphStyle": { + "description": "A suggested change to a ParagraphStyle.", + "id": "SuggestedParagraphStyle", + "properties": { + "paragraphStyle": { + "$ref": "ParagraphStyle", + "description": "A ParagraphStyle that only includes the changes made in this suggestion. This can be used along with the paragraph_style_suggestion_state to see which fields have changed and their new values." + }, + "paragraphStyleSuggestionState": { + "$ref": "ParagraphStyleSuggestionState", + "description": "A mask that indicates which of the fields on the base ParagraphStyle have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedPositionedObjectProperties": { + "description": "A suggested change to PositionedObjectProperties.", + "id": "SuggestedPositionedObjectProperties", + "properties": { + "positionedObjectProperties": { + "$ref": "PositionedObjectProperties", + "description": "A PositionedObjectProperties that only includes the changes made in this suggestion. This can be used along with the positioned_object_properties_suggestion_state to see which fields have changed and their new values." + }, + "positionedObjectPropertiesSuggestionState": { + "$ref": "PositionedObjectPropertiesSuggestionState", + "description": "A mask that indicates which of the fields on the base PositionedObjectProperties have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedTableCellStyle": { + "description": "A suggested change to a TableCellStyle.", + "id": "SuggestedTableCellStyle", + "properties": { + "tableCellStyle": { + "$ref": "TableCellStyle", + "description": "A TableCellStyle that only includes the changes made in this suggestion. This can be used along with the table_cell_style_suggestion_state to see which fields have changed and their new values." + }, + "tableCellStyleSuggestionState": { + "$ref": "TableCellStyleSuggestionState", + "description": "A mask that indicates which of the fields on the base TableCellStyle have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedTableRowStyle": { + "description": "A suggested change to a TableRowStyle.", + "id": "SuggestedTableRowStyle", + "properties": { + "tableRowStyle": { + "$ref": "TableRowStyle", + "description": "A TableRowStyle that only includes the changes made in this suggestion. This can be used along with the table_row_style_suggestion_state to see which fields have changed and their new values." + }, + "tableRowStyleSuggestionState": { + "$ref": "TableRowStyleSuggestionState", + "description": "A mask that indicates which of the fields on the base TableRowStyle have been changed in this suggestion." + } + }, + "type": "object" + }, + "SuggestedTextStyle": { + "description": "A suggested change to a TextStyle.", + "id": "SuggestedTextStyle", + "properties": { + "textStyle": { + "$ref": "TextStyle", + "description": "A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values." + }, + "textStyleSuggestionState": { + "$ref": "TextStyleSuggestionState", + "description": "A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion." + } + }, + "type": "object" + }, + "TabStop": { + "description": "A tab stop within a paragraph.", + "id": "TabStop", + "properties": { + "alignment": { + "description": "The alignment of this tab stop. If unset, the value defaults to START.", + "enum": [ + "TAB_STOP_ALIGNMENT_UNSPECIFIED", + "START", + "CENTER", + "END" + ], + "enumDescriptions": [ + "The tab stop alignment is unspecified.", + "The tab stop is aligned to the start of the line. This is the default.", + "The tab stop is aligned to the center of the line.", + "The tab stop is aligned to the end of the line." + ], + "type": "string" + }, + "offset": { + "$ref": "Dimension", + "description": "The offset between this tab stop and the start margin." + } + }, + "type": "object" + }, + "Table": { + "description": "A StructuralElement representing a table.", + "id": "Table", + "properties": { + "columns": { + "description": "Number of columns in the table. It's possible for a table to be non-rectangular, so some rows may have a different number of cells.", + "format": "int32", + "type": "integer" + }, + "rows": { + "description": "Number of rows in the table.", + "format": "int32", + "type": "integer" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A Table may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "tableRows": { + "description": "The contents and style of each row.", + "items": { + "$ref": "TableRow" + }, + "type": "array" + }, + "tableStyle": { + "$ref": "TableStyle", + "description": "The style of the table." + } + }, + "type": "object" + }, + "TableCell": { + "description": "The contents and style of a cell in a Table.", + "id": "TableCell", + "properties": { + "content": { + "description": "The content of the cell.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + }, + "endIndex": { + "description": "The zero-based end index of this cell, exclusive, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "startIndex": { + "description": "The zero-based start index of this cell, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A TableCell may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTableCellStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTableCellStyle" + }, + "description": "The suggested changes to the table cell style, keyed by suggestion ID.", + "type": "object" + }, + "tableCellStyle": { + "$ref": "TableCellStyle", + "description": "The style of the cell." + } + }, + "type": "object" + }, + "TableCellBorder": { + "description": "A border around a table cell. Table cell borders cannot be transparent. To hide a table cell border, make its width 0.", + "id": "TableCellBorder", + "properties": { + "color": { + "$ref": "OptionalColor", + "description": "The color of the border. This color cannot be transparent." + }, + "dashStyle": { + "description": "The dash style of the border.", + "enum": [ + "DASH_STYLE_UNSPECIFIED", + "SOLID", + "DOT", + "DASH" + ], + "enumDescriptions": [ + "Unspecified dash style.", + "Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", + "Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", + "Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." + ], + "type": "string" + }, + "width": { + "$ref": "Dimension", + "description": "The width of the border." + } + }, + "type": "object" + }, + "TableCellLocation": { + "description": "Location of a single cell within a table.", + "id": "TableCellLocation", + "properties": { + "columnIndex": { + "description": "The zero-based column index. For example, the second column in the table has a column index of 1.", + "format": "int32", + "type": "integer" + }, + "rowIndex": { + "description": "The zero-based row index. For example, the second row in the table has a row index of 1.", + "format": "int32", + "type": "integer" + }, + "tableStartLocation": { + "$ref": "Location", + "description": "The location where the table starts in the document." + } + }, + "type": "object" + }, + "TableCellStyle": { + "description": "The style of a TableCell. Inherited table cell styles are represented as unset fields in this message. A table cell style can inherit from the table's style.", + "id": "TableCellStyle", + "properties": { + "backgroundColor": { + "$ref": "OptionalColor", + "description": "The background color of the cell." + }, + "borderBottom": { + "$ref": "TableCellBorder", + "description": "The bottom border of the cell." + }, + "borderLeft": { + "$ref": "TableCellBorder", + "description": "The left border of the cell." + }, + "borderRight": { + "$ref": "TableCellBorder", + "description": "The right border of the cell." + }, + "borderTop": { + "$ref": "TableCellBorder", + "description": "The top border of the cell." + }, + "columnSpan": { + "description": "The column span of the cell. This property is read-only.", + "format": "int32", + "type": "integer" + }, + "contentAlignment": { + "description": "The alignment of the content in the table cell. The default alignment matches the alignment for newly created table cells in the Docs editor.", + "enum": [ + "CONTENT_ALIGNMENT_UNSPECIFIED", + "CONTENT_ALIGNMENT_UNSUPPORTED", + "TOP", + "MIDDLE", + "BOTTOM" + ], + "enumDescriptions": [ + "An unspecified content alignment. The content alignment is inherited from the parent if one exists.", + "An unsupported content alignment.", + "An alignment that aligns the content to the top of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 't'.", + "An alignment that aligns the content to the middle of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 'ctr'.", + "An alignment that aligns the content to the bottom of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 'b'." + ], + "type": "string" + }, + "paddingBottom": { + "$ref": "Dimension", + "description": "The bottom padding of the cell." + }, + "paddingLeft": { + "$ref": "Dimension", + "description": "The left padding of the cell." + }, + "paddingRight": { + "$ref": "Dimension", + "description": "The right padding of the cell." + }, + "paddingTop": { + "$ref": "Dimension", + "description": "The top padding of the cell." + }, + "rowSpan": { + "description": "The row span of the cell. This property is read-only.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TableCellStyleSuggestionState": { + "description": "A mask that indicates which of the fields on the base TableCellStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "TableCellStyleSuggestionState", + "properties": { + "backgroundColorSuggested": { + "description": "Indicates if there was a suggested change to background_color.", + "type": "boolean" + }, + "borderBottomSuggested": { + "description": "Indicates if there was a suggested change to border_bottom.", + "type": "boolean" + }, + "borderLeftSuggested": { + "description": "Indicates if there was a suggested change to border_left.", + "type": "boolean" + }, + "borderRightSuggested": { + "description": "Indicates if there was a suggested change to border_right.", + "type": "boolean" + }, + "borderTopSuggested": { + "description": "Indicates if there was a suggested change to border_top.", + "type": "boolean" + }, + "columnSpanSuggested": { + "description": "Indicates if there was a suggested change to column_span.", + "type": "boolean" + }, + "contentAlignmentSuggested": { + "description": "Indicates if there was a suggested change to content_alignment.", + "type": "boolean" + }, + "paddingBottomSuggested": { + "description": "Indicates if there was a suggested change to padding_bottom.", + "type": "boolean" + }, + "paddingLeftSuggested": { + "description": "Indicates if there was a suggested change to padding_left.", + "type": "boolean" + }, + "paddingRightSuggested": { + "description": "Indicates if there was a suggested change to padding_right.", + "type": "boolean" + }, + "paddingTopSuggested": { + "description": "Indicates if there was a suggested change to padding_top.", + "type": "boolean" + }, + "rowSpanSuggested": { + "description": "Indicates if there was a suggested change to row_span.", + "type": "boolean" + } + }, + "type": "object" + }, + "TableColumnProperties": { + "description": "The properties of a column in a table.", + "id": "TableColumnProperties", + "properties": { + "width": { + "$ref": "Dimension", + "description": "The width of the column. Set when the column's `width_type` is FIXED_WIDTH." + }, + "widthType": { + "description": "The width type of the column.", + "enum": [ + "WIDTH_TYPE_UNSPECIFIED", + "EVENLY_DISTRIBUTED", + "FIXED_WIDTH" + ], + "enumDescriptions": [ + "The column width type is unspecified.", + "The column width is evenly distributed among the other evenly distributed columns. The width of the column is automatically determined and will have an equal portion of the width remaining for the table after accounting for all columns with specified widths.", + "A fixed column width. The width property contains the column's width." + ], + "type": "string" + } + }, + "type": "object" + }, + "TableOfContents": { + "description": "A StructuralElement representing a table of contents.", + "id": "TableOfContents", + "properties": { + "content": { + "description": "The content of the table of contents.", + "items": { + "$ref": "StructuralElement" + }, + "type": "array" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A TableOfContents may have multiple insertion IDs if it is a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TableRange": { + "description": "A table range represents a reference to a subset of a table. It's important to note that the cells specified by a table range do not necessarily form a rectangle. For example, let's say we have a 3 x 3 table where all the cells of the last row are merged together. The table looks like this: [ ] A table range with table cell location = (table_start_location, row = 0, column = 0), row span = 3 and column span = 2 specifies the following cells: x x [ x x x ]", + "id": "TableRange", + "properties": { + "columnSpan": { + "description": "The column span of the table range.", + "format": "int32", + "type": "integer" + }, + "rowSpan": { + "description": "The row span of the table range.", + "format": "int32", + "type": "integer" + }, + "tableCellLocation": { + "$ref": "TableCellLocation", + "description": "The cell location where the table range starts." + } + }, + "type": "object" + }, + "TableRow": { + "description": "The contents and style of a row in a Table.", + "id": "TableRow", + "properties": { + "endIndex": { + "description": "The zero-based end index of this row, exclusive, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "startIndex": { + "description": "The zero-based start index of this row, in UTF-16 code units.", + "format": "int32", + "type": "integer" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A TableRow may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTableRowStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTableRowStyle" + }, + "description": "The suggested style changes to this row, keyed by suggestion ID.", + "type": "object" + }, + "tableCells": { + "description": "The contents and style of each cell in this row. It's possible for a table to be non-rectangular, so some rows may have a different number of cells than other rows in the same table.", + "items": { + "$ref": "TableCell" + }, + "type": "array" + }, + "tableRowStyle": { + "$ref": "TableRowStyle", + "description": "The style of the table row." + } + }, + "type": "object" + }, + "TableRowStyle": { + "description": "Styles that apply to a table row.", + "id": "TableRowStyle", + "properties": { + "minRowHeight": { + "$ref": "Dimension", + "description": "The minimum height of the row. The row will be rendered in the Docs editor at a height equal to or greater than this value in order to show all the content in the row's cells." + }, + "preventOverflow": { + "description": "Whether the row cannot overflow across page or column boundaries.", + "type": "boolean" + }, + "tableHeader": { + "description": "Whether the row is a table header.", + "type": "boolean" + } + }, + "type": "object" + }, + "TableRowStyleSuggestionState": { + "description": "A mask that indicates which of the fields on the base TableRowStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "TableRowStyleSuggestionState", + "properties": { + "minRowHeightSuggested": { + "description": "Indicates if there was a suggested change to min_row_height.", + "type": "boolean" + } + }, + "type": "object" + }, + "TableStyle": { + "description": "Styles that apply to a table.", + "id": "TableStyle", + "properties": { + "tableColumnProperties": { + "description": "The properties of each column. Note that in Docs, tables contain rows and rows contain cells, similar to HTML. So the properties for a row can be found on the row's table_row_style.", + "items": { + "$ref": "TableColumnProperties" + }, + "type": "array" + } + }, + "type": "object" + }, + "TextRun": { + "description": "A ParagraphElement that represents a run of text that all has the same styling.", + "id": "TextRun", + "properties": { + "content": { + "description": "The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.", + "type": "string" + }, + "suggestedDeletionIds": { + "description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedInsertionIds": { + "description": "The suggested insertion IDs. A TextRun may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "suggestedTextStyleChanges": { + "additionalProperties": { + "$ref": "SuggestedTextStyle" + }, + "description": "The suggested text style changes to this run, keyed by suggestion ID.", + "type": "object" + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The text style of this run." + } + }, + "type": "object" + }, + "TextStyle": { + "description": "Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style's parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph's corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that's contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor.", + "id": "TextStyle", + "properties": { + "backgroundColor": { + "$ref": "OptionalColor", + "description": "The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field." + }, + "baselineOffset": { + "description": "The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. Changes in this field don't affect the `font_size`.", + "enum": [ + "BASELINE_OFFSET_UNSPECIFIED", + "NONE", + "SUPERSCRIPT", + "SUBSCRIPT" + ], + "enumDescriptions": [ + "The text's baseline offset is inherited from the parent.", + "The text is not vertically offset.", + "The text is vertically offset upwards (superscript).", + "The text is vertically offset downwards (subscript)." + ], + "type": "string" + }, + "bold": { + "description": "Whether or not the text is rendered as bold.", + "type": "boolean" + }, + "fontSize": { + "$ref": "Dimension", + "description": "The size of the text's font." + }, + "foregroundColor": { + "$ref": "OptionalColor", + "description": "The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field." + }, + "italic": { + "description": "Whether or not the text is italicized.", + "type": "boolean" + }, + "link": { + "$ref": "Link", + "description": "The hyperlink destination of the text. If unset, there's no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `\"ABC\\n123\"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request." + }, + "smallCaps": { + "description": "Whether or not the text is in small capital letters.", + "type": "boolean" + }, + "strikethrough": { + "description": "Whether or not the text is struck through.", + "type": "boolean" + }, + "underline": { + "description": "Whether or not the text is underlined.", + "type": "boolean" + }, + "weightedFontFamily": { + "$ref": "WeightedFontFamily", + "description": "The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned." + } + }, + "type": "object" + }, + "TextStyleSuggestionState": { + "description": "A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", + "id": "TextStyleSuggestionState", + "properties": { + "backgroundColorSuggested": { + "description": "Indicates if there was a suggested change to background_color.", + "type": "boolean" + }, + "baselineOffsetSuggested": { + "description": "Indicates if there was a suggested change to baseline_offset.", + "type": "boolean" + }, + "boldSuggested": { + "description": "Indicates if there was a suggested change to bold.", + "type": "boolean" + }, + "fontSizeSuggested": { + "description": "Indicates if there was a suggested change to font_size.", + "type": "boolean" + }, + "foregroundColorSuggested": { + "description": "Indicates if there was a suggested change to foreground_color.", + "type": "boolean" + }, + "italicSuggested": { + "description": "Indicates if there was a suggested change to italic.", + "type": "boolean" + }, + "linkSuggested": { + "description": "Indicates if there was a suggested change to link.", + "type": "boolean" + }, + "smallCapsSuggested": { + "description": "Indicates if there was a suggested change to small_caps.", + "type": "boolean" + }, + "strikethroughSuggested": { + "description": "Indicates if there was a suggested change to strikethrough.", + "type": "boolean" + }, + "underlineSuggested": { + "description": "Indicates if there was a suggested change to underline.", + "type": "boolean" + }, + "weightedFontFamilySuggested": { + "description": "Indicates if there was a suggested change to weighted_font_family.", + "type": "boolean" + } + }, + "type": "object" + }, + "UnmergeTableCellsRequest": { + "description": "Unmerges cells in a Table.", + "id": "UnmergeTableCellsRequest", + "properties": { + "tableRange": { + "$ref": "TableRange", + "description": "The table range specifying which cells of the table to unmerge. All merged cells in this range will be unmerged, and cells that are already unmerged will not be affected. If the range has no merged cells, the request will do nothing. If there is text in any of the merged cells, the text will remain in the \"head\" cell of the resulting block of unmerged cells. The \"head\" cell is the upper-left cell when the content direction is from left to right, and the upper-right otherwise." + } + }, + "type": "object" + }, + "UpdateDocumentStyleRequest": { + "description": "Updates the DocumentStyle.", + "id": "UpdateDocumentStyleRequest", + "properties": { + "documentStyle": { + "$ref": "DocumentStyle", + "description": "The styles to set on the document. Certain document style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of DocumentStyle for more information." + }, + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `document_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the background, set `fields` to `\"background\"`.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "UpdateParagraphStyleRequest": { + "description": "Update the styling of all paragraphs that overlap with the given range.", + "id": "UpdateParagraphStyleRequest", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `paragraph_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example, to update the paragraph style's alignment property, set `fields` to `\"alignment\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", + "format": "google-fieldmask", + "type": "string" + }, + "paragraphStyle": { + "$ref": "ParagraphStyle", + "description": "The styles to set on the paragraphs. Certain paragraph style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of ParagraphStyle for more information." + }, + "range": { + "$ref": "Range", + "description": "The range overlapping the paragraphs to style." + } + }, + "type": "object" + }, + "UpdateSectionStyleRequest": { + "description": "Updates the SectionStyle.", + "id": "UpdateSectionStyleRequest", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `section_style` is implied and must not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the left margin, set `fields` to `\"margin_left\"`.", + "format": "google-fieldmask", + "type": "string" + }, + "range": { + "$ref": "Range", + "description": "The range overlapping the sections to style. Because section breaks can only be inserted inside the body, the segment ID field must be empty." + }, + "sectionStyle": { + "$ref": "SectionStyle", + "description": "The styles to be set on the section. Certain section style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of SectionStyle for more information." + } + }, + "type": "object" + }, + "UpdateTableCellStyleRequest": { + "description": "Updates the style of a range of table cells.", + "id": "UpdateTableCellStyleRequest", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `tableCellStyle` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the table cell background color, set `fields` to `\"backgroundColor\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", + "format": "google-fieldmask", + "type": "string" + }, + "tableCellStyle": { + "$ref": "TableCellStyle", + "description": "The style to set on the table cells. When updating borders, if a cell shares a border with an adjacent cell, the corresponding border property of the adjacent cell is updated as well. Borders that are merged and invisible are not updated. Since updating a border shared by adjacent cells in the same request can cause conflicting border updates, border updates are applied in the following order: - `border_right` - `border_left` - `border_bottom` - `border_top`" + }, + "tableRange": { + "$ref": "TableRange", + "description": "The table range representing the subset of the table to which the updates are applied." + }, + "tableStartLocation": { + "$ref": "Location", + "description": "The location where the table starts in the document. When specified, the updates are applied to all the cells in the table." + } + }, + "type": "object" + }, + "UpdateTableColumnPropertiesRequest": { + "description": "Updates the TableColumnProperties of columns in a table.", + "id": "UpdateTableColumnPropertiesRequest", + "properties": { + "columnIndices": { + "description": "The list of zero-based column indices whose property should be updated. If no indices are specified, all columns will be updated.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `tableColumnProperties` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the column width, set `fields` to `\"width\"`.", + "format": "google-fieldmask", + "type": "string" + }, + "tableColumnProperties": { + "$ref": "TableColumnProperties", + "description": "The table column properties to update. If the value of `table_column_properties#width` is less than 5 points (5/72 inch), a 400 bad request error is returned." + }, + "tableStartLocation": { + "$ref": "Location", + "description": "The location where the table starts in the document." + } + }, + "type": "object" + }, + "UpdateTableRowStyleRequest": { + "description": "Updates the TableRowStyle of rows in a table.", + "id": "UpdateTableRowStyleRequest", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `tableRowStyle` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the minimum row height, set `fields` to `\"min_row_height\"`.", + "format": "google-fieldmask", + "type": "string" + }, + "rowIndices": { + "description": "The list of zero-based row indices whose style should be updated. If no indices are specified, all rows will be updated.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "tableRowStyle": { + "$ref": "TableRowStyle", + "description": "The styles to be set on the rows." + }, + "tableStartLocation": { + "$ref": "Location", + "description": "The location where the table starts in the document." + } + }, + "type": "object" + }, + "UpdateTextStyleRequest": { + "description": "Update the styling of text.", + "id": "UpdateTextStyleRequest", + "properties": { + "fields": { + "description": "The fields that should be updated. At least one field must be specified. The root `text_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example, to update the text style to bold, set `fields` to `\"bold\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", + "format": "google-fieldmask", + "type": "string" + }, + "range": { + "$ref": "Range", + "description": "The range of text to style. The range may be extended to include adjacent newlines. If the range fully contains a paragraph belonging to a list, the paragraph's bullet is also updated with the matching text style. Ranges cannot be inserted inside a relative UpdateTextStyleRequest." + }, + "textStyle": { + "$ref": "TextStyle", + "description": "The styles to set on the text. If the value for a particular style matches that of the parent, that style will be set to inherit. Certain text style changes may cause other changes in order to to mirror the behavior of the Docs editor. See the documentation of TextStyle for more information." + } + }, + "type": "object" + }, + "WeightedFontFamily": { + "description": "Represents a font family and weight of text.", + "id": "WeightedFontFamily", + "properties": { + "fontFamily": { + "description": "The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.", + "type": "string" + }, + "weight": { + "description": "The weight of the font. This field can have any value that's a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (\"normal\"). The font weight makes up just one component of the rendered font weight. A combination of the `weight` and the text style's resolved `bold` value determine the rendered weight, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "WriteControl": { + "description": "Provides control over how write requests are executed.", + "id": "WriteControl", + "properties": { + "requiredRevisionId": { + "description": "The optional revision ID of the document the write request is applied to. If this is not the latest revision of the document, the request is not processed and returns a 400 bad request error. When a required revision ID is returned in a response, it indicates the revision ID of the document after the request was applied.", + "type": "string" + }, + "targetRevisionId": { + "description": "The optional target revision ID of the document the write request is applied to. If collaborator changes have occurred after the document was read using the API, the changes produced by this write request are applied against the collaborator changes. This results in a new revision of the document that incorporates both the collaborator changes and the changes in the request, with the Docs server resolving conflicting changes. When using target revision ID, the API client can be thought of as another collaborator of the document. The target revision ID can only be used to write to recent versions of a document. If the target revision is too far behind the latest revision, the request is not processed and returns a 400 bad request error. The request should be tried again after retrieving the latest version of the document. Usually a revision ID remains valid for use as a target revision for several minutes after it's read, but for frequently edited documents this window might be shorter.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Google Docs API", + "version": "v1", + "version_module": true +} \ No newline at end of file diff --git a/etc/api/documentai/v1/documentai-api.json b/etc/api/documentai/v1/documentai-api.json index 0aaf9fc868..4ff558aa8d 100644 --- a/etc/api/documentai/v1/documentai-api.json +++ b/etc/api/documentai/v1/documentai-api.json @@ -198,7 +198,7 @@ ], "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).", + "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" }, @@ -326,6 +326,71 @@ } } }, + "processorTypes": { + "methods": { + "get": { + "description": "Gets a processor type detail.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processorTypes/{processorTypesId}", + "httpMethod": "GET", + "id": "documentai.projects.locations.processorTypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The processor type resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processorTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDocumentaiV1ProcessorType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the processor types that exist.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processorTypes", + "httpMethod": "GET", + "id": "documentai.projects.locations.processorTypes.list", + "parameterOrder": [ + "parent" + ], + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Used to retrieve the next page of results, empty if at the end of the list.", + "location": "query", + "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}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/processorTypes", + "response": { + "$ref": "GoogleCloudDocumentaiV1ListProcessorTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "processors": { "methods": { "batchProcess": { @@ -699,6 +764,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "evaluateProcessorVersion": { + "description": "Evaluates a ProcessorVersion against annotated documents, producing an Evaluation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:evaluateProcessorVersion", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.processorVersions.evaluateProcessorVersion", + "parameterOrder": [ + "processorVersion" + ], + "parameters": { + "processorVersion": { + "description": "Required. The resource name of the ProcessorVersion to evaluate. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+processorVersion}:evaluateProcessorVersion", + "request": { + "$ref": "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a processor version detail.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", @@ -788,6 +881,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "train": { + "description": "Trains a new processor version. Operation metadata is returned as cloud_documentai_core.TrainProcessorVersionMetadata.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.processorVersions.train", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project, location and processor) to create the new version for. Format: `projects/{project}/locations/{location}/processors/{processor}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/processorVersions:train", + "request": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "undeploy": { "description": "Undeploys the processor version.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:undeploy", @@ -816,6 +937,73 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "evaluations": { + "methods": { + "get": { + "description": "Retrieves a specific evaluation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations/{evaluationsId}", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.processorVersions.evaluations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Evaluation to get. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}/evaluations/{evaluation}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+/evaluations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDocumentaiV1Evaluation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Retrieves a set of evaluations for a given processor version.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.processorVersions.evaluations.list", + "parameterOrder": [ + "parent" + ], + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEvaluations` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the ProcessorVersion to list evaluations for. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/evaluations", + "response": { + "$ref": "GoogleCloudDocumentaiV1ListEvaluationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } } } @@ -852,184 +1040,9 @@ } } } - }, - "uiv1beta3": { - "resources": { - "projects": { - "resources": { - "locations": { - "methods": { - "get": { - "description": "Gets information about a location.", - "flatPath": "uiv1beta3/projects/{projectsId}/locations/{locationsId}", - "httpMethod": "GET", - "id": "documentai.uiv1beta3.projects.locations.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Resource name for the location.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "uiv1beta3/{+name}", - "response": { - "$ref": "GoogleCloudLocationLocation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists information about the supported locations for this service.", - "flatPath": "uiv1beta3/projects/{projectsId}/locations", - "httpMethod": "GET", - "id": "documentai.uiv1beta3.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": "uiv1beta3/{+name}/locations", - "response": { - "$ref": "GoogleCloudLocationListLocationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "operations": { - "methods": { - "cancel": { - "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", - "flatPath": "uiv1beta3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", - "httpMethod": "POST", - "id": "documentai.uiv1beta3.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": "uiv1beta3/{+name}:cancel", - "response": { - "$ref": "GoogleProtobufEmpty" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", - "flatPath": "uiv1beta3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", - "httpMethod": "GET", - "id": "documentai.uiv1beta3.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": "uiv1beta3/{+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`. 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.", - "flatPath": "uiv1beta3/projects/{projectsId}/locations/{locationsId}/operations", - "httpMethod": "GET", - "id": "documentai.uiv1beta3.projects.locations.operations.list", - "parameterOrder": [ - "name" - ], - "parameters": { - "filter": { - "description": "The standard list filter.", - "location": "query", - "type": "string" - }, - "name": { - "description": "The name of the operation's parent resource.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/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": "uiv1beta3/{+name}", - "response": { - "$ref": "GoogleLongrunningListOperationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - } - } - } - } } }, - "revision": "20220226", + "revision": "20230117", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -1038,6 +1051,38 @@ "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "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": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." } }, "type": "object" @@ -1071,6 +1116,22 @@ ], "type": "string" }, + "destSplitType": { + "description": "The destination dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, "individualBatchMoveStatuses": { "description": "The list of response details of each document.", "items": { @@ -1158,6 +1219,17 @@ }, "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." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { "description": "The long running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", @@ -1232,6 +1304,10 @@ "gcsManagedDocId": { "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" }, + "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." @@ -1240,11 +1316,11 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the GCS-based option.", + "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { - "description": "Optional. Id of the document (indexed) managed by Content Warehouse.", + "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { @@ -1293,6 +1369,84 @@ }, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata": { + "description": "Metadata of the batch export documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + }, + "individualExportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus" + }, + "type": "array" + }, + "splitExportStats": { + "description": "The list of statistics for each dataset split type.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus": { + "description": "The status of each individual document in the export process.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The path to source docproto of the document." + }, + "outputGcsDestination": { + "description": "The output_gcs_destination of the exported document if it was successful, otherwise empty.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the exporting of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat": { + "description": "The statistic representing a dataset split type for this export.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat", + "properties": { + "splitType": { + "description": "The dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, + "totalDocumentCount": { + "description": "Total number of documents with the given dataset split type to be exported.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse": { + "description": "The response proto of ExportDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata": { "description": "Metadata message associated with the ExportProcessorVersion operation.", "id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata", @@ -1323,12 +1477,39 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, "individualImportStatuses": { "description": "The list of response details of each document.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus" }, "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "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.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", + "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" @@ -1366,31 +1547,73 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, - "newlyAddedDocuments": { - "description": "Returns the newly added document Cloud Storage prefix if the documents are founded in Cloud Storage while not in Document Service storage.", + "datasetResyncStatuses": { + "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", "items": { - "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument" + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" + }, + "type": "array" + }, + "individualDocumentResyncStatuses": { + "description": "The list of document resync statuses. The same document could have multiple `individual_document_resync_statuses` if it has multiple inconsistencies.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus" }, "type": "array" } }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument": { - "description": "The proto for updated document in resync pipeline.", - "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument", + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus": { + "description": "Resync status against inconsistency types on the dataset level.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus", "properties": { - "destinationPrefix": { - "description": "The prefix of cloud storage, identifies the destination document which should be updated by resync pipeline.", - "type": "string" - }, - "sourcePrefix": { - "description": "The prefix of cloud storage, identifies the original document which should be updated by resync pipeline.", + "datasetInconsistencyType": { + "description": "The type of the inconsistency of the dataset.", + "enum": [ + "DATASET_INCONSISTENCY_TYPE_UNSPECIFIED", + "DATASET_INCONSISTENCY_TYPE_NO_STORAGE_MARKER" + ], + "enumDescriptions": [ + "Default value.", + "The marker file under the dataset folder is not found." + ], "type": "string" }, "status": { "$ref": "GoogleRpcStatus", - "description": "The final status of the documents which should be updated by resync pipeline." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus": { + "description": "Resync status for each document per inconsistency type.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document identifier." + }, + "documentInconsistencyType": { + "description": "The type of document inconsistency.", + "enum": [ + "DOCUMENT_INCONSISTENCY_TYPE_UNSPECIFIED", + "DOCUMENT_INCONSISTENCY_TYPE_INVALID_DOCPROTO", + "DOCUMENT_INCONSISTENCY_TYPE_MISMATCHED_METADATA", + "DOCUMENT_INCONSISTENCY_TYPE_NO_PAGE_IMAGE" + ], + "enumDescriptions": [ + "Default value.", + "The document proto is invalid.", + "Indexed docproto metadata is mismatched.", + "The page image or thumbnails are missing." + ], + "type": "string" + }, + "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." } }, "type": "object" @@ -1401,16 +1624,47 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiUiv1beta3RevisionRef", + "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, fallback to read the first (OCR) revision.", + "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" + }, "GoogleCloudDocumentaiUiv1beta3RevisionReference": { "description": "The revision reference specifies which revision on the document to read.", "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", "properties": { "latestProcessorVersion": { - "description": "Read the revision generated by the processor version, returns error if it does not exist.", + "description": "Reads the revision generated by the processor version.", "type": "string" }, "revisionCase": { - "description": "Read the revision by the predefined case.", + "description": "Reads the revision by the predefined case.", "enum": [ "REVISION_CASE_UNSPECIFIED", "LATEST_HUMAN_REVIEW", @@ -1424,7 +1678,7 @@ "type": "string" }, "revisionId": { - "description": "Read the revision given by the id, returns error if it does not exist.", + "description": "Reads the revision given by the id.", "type": "string" } }, @@ -1557,6 +1811,25 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1Barcode", + "properties": { + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", + "type": "string" + }, + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", + "type": "string" + }, + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1BatchDocumentsInputConfig": { "description": "The common config to specify a set of documents used as input.", "id": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", @@ -1567,7 +1840,7 @@ }, "gcsPrefix": { "$ref": "GoogleCloudDocumentaiV1GcsPrefix", - "description": "The set of documents that match the specified Cloud Storage [gcs_prefix]." + "description": "The set of documents that match the specified Cloud Storage `gcs_prefix`." } }, "type": "object" @@ -1640,7 +1913,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -1805,7 +2078,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1Document", "properties": { "content": { @@ -1858,14 +2131,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1DocumentStyle" }, @@ -1883,7 +2156,7 @@ "id": "GoogleCloudDocumentaiV1DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -1896,7 +2169,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -1927,7 +2200,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -1968,7 +2241,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -2008,9 +2281,35 @@ "description": "The configuration used when outputting documents.", "id": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfig", "properties": { + "fieldMask": { + "description": "Specifies which fields to include in the output documents. 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" + }, "gcsUri": { "description": "The Cloud Storage uri (a directory) of the output.", "type": "string" + }, + "shardingConfig": { + "$ref": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig", + "description": "Specifies the sharding config for the output document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig": { + "description": "The sharding config for the output document.", + "id": "GoogleCloudDocumentaiV1DocumentOutputConfigGcsOutputConfigShardingConfig", + "properties": { + "pagesOverlap": { + "description": "The number of overlapping pages between consecutive shards.", + "format": "int32", + "type": "integer" + }, + "pagesPerShard": { + "description": "The number of pages per shard.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -2026,6 +2325,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -2048,6 +2354,10 @@ "$ref": "GoogleCloudDocumentaiV1DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", "description": "Layout for the page." @@ -2136,7 +2446,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2169,7 +2479,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -2198,17 +2508,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -2274,7 +2599,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -2306,6 +2631,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1DocumentPageLayout", @@ -2315,7 +2675,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2461,6 +2821,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -2704,6 +3068,135 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1DocumentSchema": { + "description": "The schema defines the output of the processed document by a processor.", + "id": "GoogleCloudDocumentaiV1DocumentSchema", + "properties": { + "description": { + "description": "Description of the schema.", + "type": "string" + }, + "displayName": { + "description": "Display name to show to users.", + "type": "string" + }, + "entityTypes": { + "description": "Entity types of the schema.", + "items": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityType" + }, + "type": "array" + }, + "metadata": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchemaMetadata", + "description": "Metadata of the schema." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentSchemaEntityType": { + "description": "EntityType is the wrapper of a label of the corresponding model with detailed attributes and limitations for entity-based processors. Multiple types can also compose a dependency tree to represent nested types.", + "id": "GoogleCloudDocumentaiV1DocumentSchemaEntityType", + "properties": { + "baseTypes": { + "description": "The entity type that this type is derived from. For now, one and only one should be set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "User defined name for the type.", + "type": "string" + }, + "enumValues": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues", + "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.", + "type": "string" + }, + "properties": { + "description": "Describing the nested structure, or composition of an entity.", + "items": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues": { + "description": "Defines the a list of enum values.", + "id": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeEnumValues", + "properties": { + "values": { + "description": "The individual values that this enum values type can include.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty": { + "description": "Defines properties that can be part of the entity type.", + "id": "GoogleCloudDocumentaiV1DocumentSchemaEntityTypeProperty", + "properties": { + "name": { + "description": "The name of the property. Follows the same guidelines as the EntityType name.", + "type": "string" + }, + "occurrenceType": { + "description": "Occurrence type limits the number of instances an entity type appears in the document.", + "enum": [ + "OCCURRENCE_TYPE_UNSPECIFIED", + "OPTIONAL_ONCE", + "OPTIONAL_MULTIPLE", + "REQUIRED_ONCE", + "REQUIRED_MULTIPLE" + ], + "enumDescriptions": [ + "Unspecified occurrence type.", + "There will be zero or one instance of this entity type.", + "The entity type will appear zero or multiple times.", + "The entity type will only appear exactly once.", + "The entity type will appear once or more times." + ], + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1DocumentSchemaMetadata": { + "description": "Metadata for global schema behavior.", + "id": "GoogleCloudDocumentaiV1DocumentSchemaMetadata", + "properties": { + "documentAllowMultipleLabels": { + "description": "If true, on a given page, there can be multiple `document` annotations covering it.", + "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).", + "type": "boolean" + }, + "prefixedNamingOnProperties": { + "description": "If set, all the nested entities must be prefixed with the parents.", + "type": "boolean" + }, + "skipNamingValidation": { + "description": "If set, we will skip the naming format validation in the schema. So the string values in `DocumentSchema.EntityType.name` and `DocumentSchema.EntityType.Property.name` will not be checked.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1DocumentShardInfo": { "description": "For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is.", "id": "GoogleCloudDocumentaiV1DocumentShardInfo", @@ -2738,6 +3231,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1DocumentStyleFontSize", "description": "Font size." @@ -2857,6 +3354,237 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest": { + "description": "Evaluates the given ProcessorVersion against the supplied documents.", + "id": "GoogleCloudDocumentaiV1EvaluateProcessorVersionRequest", + "properties": { + "evaluationDocuments": { + "$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", + "description": "Optional. The documents used in the evaluation. If unspecified, use the processor's dataset as evaluation input." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1Evaluation": { + "description": "An evaluation of a ProcessorVersion's performance.", + "id": "GoogleCloudDocumentaiV1Evaluation", + "properties": { + "allEntitiesMetrics": { + "$ref": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics", + "description": "Metrics for all the entities in aggregate." + }, + "createTime": { + "description": "The time that the evaluation was created.", + "format": "google-datetime", + "type": "string" + }, + "documentCounters": { + "$ref": "GoogleCloudDocumentaiV1EvaluationCounters", + "description": "Counters for the documents used in the evaluation." + }, + "entityMetrics": { + "additionalProperties": { + "$ref": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics" + }, + "description": "Metrics across confidence levels, for different entities.", + "type": "object" + }, + "kmsKeyName": { + "description": "The KMS key name used for encryption.", + "type": "string" + }, + "kmsKeyVersionName": { + "description": "The KMS key version with which data is encrypted.", + "type": "string" + }, + "name": { + "description": "The resource name of the evaluation. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}/evaluations/{evaluation}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics": { + "description": "Evaluations metrics, at a specific confidence level.", + "id": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics", + "properties": { + "confidenceLevel": { + "description": "The confidence level.", + "format": "float", + "type": "number" + }, + "metrics": { + "$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", + "description": "The metrics at the specific confidence level." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluationCounters": { + "description": "Evaluation counters for the documents that were used.", + "id": "GoogleCloudDocumentaiV1EvaluationCounters", + "properties": { + "evaluatedDocumentsCount": { + "description": "How many documents were used in the evaluation.", + "format": "int32", + "type": "integer" + }, + "failedDocumentsCount": { + "description": "How many documents were not included in the evaluation as Document AI failed to process them.", + "format": "int32", + "type": "integer" + }, + "inputDocumentsCount": { + "description": "How many documents were sent for evaluation.", + "format": "int32", + "type": "integer" + }, + "invalidDocumentsCount": { + "description": "How many documents were not included in the evaluation as they didn't pass validation.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluationMetrics": { + "description": "Evaluation metrics, either in aggregate or about a specific entity.", + "id": "GoogleCloudDocumentaiV1EvaluationMetrics", + "properties": { + "f1Score": { + "description": "The calculated f1 score.", + "format": "float", + "type": "number" + }, + "falseNegativesCount": { + "description": "The amount of false negatives.", + "format": "int32", + "type": "integer" + }, + "falsePositivesCount": { + "description": "The amount of false positives.", + "format": "int32", + "type": "integer" + }, + "groundTruthDocumentCount": { + "description": "The amount of documents with a ground truth occurrence.", + "format": "int32", + "type": "integer" + }, + "groundTruthOccurrencesCount": { + "description": "The amount of occurrences in ground truth documents.", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "The calculated precision.", + "format": "float", + "type": "number" + }, + "predictedDocumentCount": { + "description": "The amount of documents with a predicted occurrence.", + "format": "int32", + "type": "integer" + }, + "predictedOccurrencesCount": { + "description": "The amount of occurrences in predicted documents.", + "format": "int32", + "type": "integer" + }, + "recall": { + "description": "The calculated recall.", + "format": "float", + "type": "number" + }, + "totalDocumentsCount": { + "description": "The amount of documents that had an occurrence of this label.", + "format": "int32", + "type": "integer" + }, + "truePositivesCount": { + "description": "The amount of true positives.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics": { + "description": "Metrics across multiple confidence levels.", + "id": "GoogleCloudDocumentaiV1EvaluationMultiConfidenceMetrics", + "properties": { + "auprc": { + "description": "The calculated area under the precision recall curve (AUPRC), computed by integrating over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "auprcExact": { + "description": "The AUPRC for metrics with fuzzy matching disabled, i.e., exact matching only.", + "format": "float", + "type": "number" + }, + "confidenceLevelMetrics": { + "description": "Metrics across confidence levels with fuzzy matching enabled.", + "items": { + "$ref": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics" + }, + "type": "array" + }, + "confidenceLevelMetricsExact": { + "description": "Metrics across confidence levels with only exact matching.", + "items": { + "$ref": "GoogleCloudDocumentaiV1EvaluationConfidenceLevelMetrics" + }, + "type": "array" + }, + "estimatedCalibrationError": { + "description": "The Estimated Calibration Error (ECE) of the confidence of the predicted entities.", + "format": "float", + "type": "number" + }, + "estimatedCalibrationErrorExact": { + "description": "The ECE for the predicted entities with fuzzy matching disabled, i.e., exact matching only.", + "format": "float", + "type": "number" + }, + "metricsType": { + "description": "The metrics type for the label.", + "enum": [ + "METRICS_TYPE_UNSPECIFIED", + "AGGREGATE" + ], + "enumDescriptions": [ + "The metrics type is unspecified. By default, metrics without a particular specification are for leaf entity types (i.e., top-level entity types without child types, or child types which are not parent types themselves).", + "Indicates whether metrics for this particular label type represent an aggregate of metrics for other types instead of being based on actual TP/FP/FN values for the label type. Metrics for parent (i.e., non-leaf) entity types are an aggregate of metrics for their children." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1EvaluationReference": { + "description": "Gives a short summary of an evaluation, and links to the evaluation itself.", + "id": "GoogleCloudDocumentaiV1EvaluationReference", + "properties": { + "aggregateMetrics": { + "$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", + "description": "An aggregate of the statistics for the evaluation with fuzzy matching on." + }, + "aggregateMetricsExact": { + "$ref": "GoogleCloudDocumentaiV1EvaluationMetrics", + "description": "An aggregate of the statistics for the evaluation with fuzzy matching off." + }, + "evaluation": { + "description": "The resource name of the evaluation.", + "type": "string" + }, + "operation": { + "description": "The resource name of the Long Running Operation for the evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1FetchProcessorTypesResponse": { "description": "Response message for fetch processor types.", "id": "GoogleCloudDocumentaiV1FetchProcessorTypesResponse", @@ -2944,6 +3672,42 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1ListEvaluationsResponse": { + "description": "The response from ListEvaluations.", + "id": "GoogleCloudDocumentaiV1ListEvaluationsResponse", + "properties": { + "evaluations": { + "description": "The evaluations requested.", + "items": { + "$ref": "GoogleCloudDocumentaiV1Evaluation" + }, + "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" + }, + "GoogleCloudDocumentaiV1ListProcessorTypesResponse": { + "description": "Response message for list processor types.", + "id": "GoogleCloudDocumentaiV1ListProcessorTypesResponse", + "properties": { + "nextPageToken": { + "description": "Points to the next page, otherwise empty.", + "type": "string" + }, + "processorTypes": { + "description": "The processor types.", + "items": { + "$ref": "GoogleCloudDocumentaiV1ProcessorType" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1ListProcessorVersionsResponse": { "description": "Response message for list processors.", "id": "GoogleCloudDocumentaiV1ListProcessorVersionsResponse", @@ -3001,6 +3765,11 @@ "description": "Request message for the process document 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}`.", + "format": "google-fieldmask", + "type": "string" + }, "inlineDocument": { "$ref": "GoogleCloudDocumentaiV1Document", "description": "An inline document proto." @@ -3078,9 +3847,9 @@ "The processor is in an unspecified state.", "The processor is enabled, i.e., has an enabled version which can currently serve processing requests and all the feature dependencies have been successfully initialized.", "The processor is disabled.", - "The processor is being enabled, will become ENABLED if successful.", - "The processor is being disabled, will become DISABLED if successful.", - "The processor is being created, will become either ENABLED (for successful creation) or FAILED (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", + "The processor is being enabled, will become `ENABLED` if successful.", + "The processor is being disabled, will become `DISABLED` if successful.", + "The processor is being created, will become either `ENABLED` (for successful creation) or `FAILED` (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", "The processor failed during creation or initialization of feature dependencies. The user should delete the processor and recreate one as all the functionalities of the processor are disabled.", "The processor is being deleted, will be removed if successful." ], @@ -3088,7 +3857,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, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc. To get a list of processors types, see FetchProcessorTypes.", "type": "string" } }, @@ -3138,11 +3907,18 @@ "type": "string" }, "name": { - "description": "The resource name of the processor type. Format: projects/{project}/processorTypes/{processor_type}", + "description": "The resource name of the processor type. Format: `projects/{project}/processorTypes/{processor_type}`", "type": "string" }, + "sampleDocumentUris": { + "description": "A set of Cloud Storage URIs of sample documents for this processor.", + "items": { + "type": "string" + }, + "type": "array" + }, "type": { - "description": "The type of the processor, e.g., \"invoice_parsing\".", + "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc.", "type": "string" } }, @@ -3160,7 +3936,7 @@ "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, 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", "id": "GoogleCloudDocumentaiV1ProcessorVersion", "properties": { "createTime": { @@ -3168,10 +3944,22 @@ "format": "google-datetime", "type": "string" }, + "deprecationInfo": { + "$ref": "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo", + "description": "If set, information about the eventual deprecation of this version." + }, "displayName": { "description": "The display name of the processor version.", "type": "string" }, + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchema", + "description": "The schema of the processor version. Describes the output." + }, + "googleManaged": { + "description": "Denotes that this ProcessorVersion is managed by google.", + "type": "boolean" + }, "kmsKeyName": { "description": "The KMS key name used for encryption.", "type": "string" @@ -3180,6 +3968,10 @@ "description": "The KMS key version with which data is encrypted.", "type": "string" }, + "latestEvaluation": { + "$ref": "GoogleCloudDocumentaiV1EvaluationReference", + "description": "The most recently invoked evaluation for the processor version." + }, "name": { "description": "The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", "type": "string" @@ -3211,6 +4003,22 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo": { + "description": "Information about the upcoming deprecation of this processor version.", + "id": "GoogleCloudDocumentaiV1ProcessorVersionDeprecationInfo", + "properties": { + "deprecationTime": { + "description": "The time at which this processor version will be deprecated.", + "format": "google-datetime", + "type": "string" + }, + "replacementProcessorVersion": { + "description": "If set, the processor version that will be used as a replacement.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1RawDocument": { "description": "Payload message of raw document content (bytes).", "id": "GoogleCloudDocumentaiV1RawDocument", @@ -3221,7 +4029,7 @@ "type": "string" }, "mimeType": { - "description": "An IANA MIME type (RFC6838) indicating the nature and format of the [content].", + "description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", "type": "string" } }, @@ -3246,6 +4054,10 @@ "description": "Request message for review document method.", "id": "GoogleCloudDocumentaiV1ReviewDocumentRequest", "properties": { + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1DocumentSchema", + "description": "The document schema of the human review task." + }, "enableSchemaValidation": { "description": "Whether the validation should be performed on the ad-hoc review request.", "type": "boolean" @@ -3274,7 +4086,25 @@ "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -3296,7 +4126,7 @@ "id": "GoogleCloudDocumentaiV1SetDefaultProcessorVersionRequest", "properties": { "defaultProcessorVersion": { - "description": "Required. The resource name of child ProcessorVersion to use as default.", + "description": "Required. The resource name of child ProcessorVersion to use as default. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}`", "type": "string" } }, @@ -3308,6 +4138,44 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionRequest": { + "description": "Request message for the create processor version 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" + }, + "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`." + }, + "processorVersion": { + "$ref": "GoogleCloudDocumentaiV1ProcessorVersion", + "description": "Required. The processor version to be created." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData": { + "description": "The input data used to train a new `ProcessorVersion`.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", + "properties": { + "testDocuments": { + "$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", + "description": "The documents used for testing the trained version." + }, + "trainingDocuments": { + "$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", + "description": "The documents used for training the new version." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata": { "description": "The long running operation metadata for the undeploy processor version method.", "id": "GoogleCloudDocumentaiV1UndeployProcessorVersionMetadata", @@ -3348,57 +4216,20 @@ }, "type": "object" }, - "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata": { - "description": "The long running operation metadata for AnalyzeHitlData.", - "id": "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata", + "GoogleCloudDocumentaiV1beta1Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta1Barcode", "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata": { - "description": "The common metadata for long running operations.", - "id": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "properties": { - "createTime": { - "description": "The creation time of the operation.", - "format": "google-datetime", + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", "type": "string" }, - "resource": { - "description": "A related resource to this operation.", + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", "type": "string" }, - "state": { - "description": "The state of the operation.", - "enum": [ - "STATE_UNSPECIFIED", - "RUNNING", - "CANCELLING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ], - "enumDescriptions": [ - "Unspecified state.", - "Operation is still running.", - "Operation is being cancelled.", - "Operation succeeded.", - "Operation failed.", - "Operation is cancelled." - ], - "type": "string" - }, - "stateMessage": { - "description": "A message providing more details about the current state of processing.", - "type": "string" - }, - "updateTime": { - "description": "The last update time of the operation.", - "format": "google-datetime", + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", "type": "string" } }, @@ -3440,7 +4271,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta1Document", "properties": { "content": { @@ -3493,14 +4324,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" }, @@ -3518,7 +4349,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -3531,7 +4362,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -3562,7 +4393,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -3603,7 +4434,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -3639,6 +4470,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -3661,6 +4499,10 @@ "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for the page." @@ -3749,7 +4591,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -3782,7 +4624,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -3811,17 +4653,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta1Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -3887,7 +4744,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -3919,6 +4776,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -3928,7 +4820,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -4074,6 +4966,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -4351,6 +5247,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyleFontSize", "description": "Font size." @@ -4590,6 +5490,25 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta2Barcode", + "properties": { + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", + "type": "string" + }, + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", + "type": "string" + }, + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse": { "description": "Response to an batch document processing request. This is returned in the LRO Operation after the operation is complete.", "id": "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse", @@ -4626,7 +5545,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta2Document", "properties": { "content": { @@ -4686,14 +5605,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" }, @@ -4711,7 +5630,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -4724,7 +5643,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -4755,7 +5674,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -4796,7 +5715,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -4852,6 +5771,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -4874,6 +5800,10 @@ "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for the page." @@ -4962,7 +5892,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -4995,7 +5925,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -5024,17 +5954,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta2Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -5100,7 +6045,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -5132,6 +6077,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -5141,7 +6121,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -5287,6 +6267,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -5564,6 +6548,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyleFontSize", "description": "Font size." @@ -5880,7 +6868,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -6009,6 +6997,28 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", @@ -6096,7 +7106,25 @@ "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -6119,6 +7147,67 @@ "properties": {}, "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." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "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" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { + "description": "The response for the TrainProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { "description": "The long running operation metadata for the undeploy processor version method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", @@ -6242,7 +7331,7 @@ "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" @@ -6302,7 +7391,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { @@ -6324,36 +7413,36 @@ "type": "object" }, "GoogleTypeDateTime": { - "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", + "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", "id": "GoogleTypeDateTime", "properties": { "day": { - "description": "Required. Day of month. Must be from 1 to 31 and valid for the year and month.", + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", "format": "int32", "type": "integer" }, "hours": { - "description": "Required. 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.", + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", "format": "int32", "type": "integer" }, "minutes": { - "description": "Required. Minutes of hour of day. Must be from 0 to 59.", + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", "format": "int32", "type": "integer" }, "month": { - "description": "Required. Month of year. Must be from 1 to 12.", + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", "format": "int32", "type": "integer" }, "nanos": { - "description": "Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", "format": "int32", "type": "integer" }, "seconds": { - "description": "Required. 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.", + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", "format": "int32", "type": "integer" }, @@ -6396,7 +7485,7 @@ "type": "object" }, "GoogleTypePostalAddress": { - "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 i18n-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", + "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": "GoogleTypePostalAddress", "properties": { "addressLines": { diff --git a/etc/api/documentai/v1beta2/documentai-api.json b/etc/api/documentai/v1beta2/documentai-api.json index 1dbe8d70e9..743731a7d9 100644 --- a/etc/api/documentai/v1beta2/documentai-api.json +++ b/etc/api/documentai/v1beta2/documentai-api.json @@ -292,7 +292,7 @@ } } }, - "revision": "20220226", + "revision": "20230117", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -301,6 +301,38 @@ "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "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": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." } }, "type": "object" @@ -334,6 +366,22 @@ ], "type": "string" }, + "destSplitType": { + "description": "The destination dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, "individualBatchMoveStatuses": { "description": "The list of response details of each document.", "items": { @@ -421,6 +469,17 @@ }, "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." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { "description": "The long running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", @@ -495,6 +554,10 @@ "gcsManagedDocId": { "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" }, + "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." @@ -503,11 +566,11 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the GCS-based option.", + "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { - "description": "Optional. Id of the document (indexed) managed by Content Warehouse.", + "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { @@ -556,6 +619,84 @@ }, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata": { + "description": "Metadata of the batch export documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + }, + "individualExportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus" + }, + "type": "array" + }, + "splitExportStats": { + "description": "The list of statistics for each dataset split type.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus": { + "description": "The status of each individual document in the export process.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The path to source docproto of the document." + }, + "outputGcsDestination": { + "description": "The output_gcs_destination of the exported document if it was successful, otherwise empty.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the exporting of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat": { + "description": "The statistic representing a dataset split type for this export.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat", + "properties": { + "splitType": { + "description": "The dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, + "totalDocumentCount": { + "description": "Total number of documents with the given dataset split type to be exported.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse": { + "description": "The response proto of ExportDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata": { "description": "Metadata message associated with the ExportProcessorVersion operation.", "id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata", @@ -586,12 +727,39 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, "individualImportStatuses": { "description": "The list of response details of each document.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus" }, "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "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.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", + "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" @@ -629,31 +797,73 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, - "newlyAddedDocuments": { - "description": "Returns the newly added document Cloud Storage prefix if the documents are founded in Cloud Storage while not in Document Service storage.", + "datasetResyncStatuses": { + "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", "items": { - "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument" + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" + }, + "type": "array" + }, + "individualDocumentResyncStatuses": { + "description": "The list of document resync statuses. The same document could have multiple `individual_document_resync_statuses` if it has multiple inconsistencies.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus" }, "type": "array" } }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument": { - "description": "The proto for updated document in resync pipeline.", - "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument", + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus": { + "description": "Resync status against inconsistency types on the dataset level.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus", "properties": { - "destinationPrefix": { - "description": "The prefix of cloud storage, identifies the destination document which should be updated by resync pipeline.", - "type": "string" - }, - "sourcePrefix": { - "description": "The prefix of cloud storage, identifies the original document which should be updated by resync pipeline.", + "datasetInconsistencyType": { + "description": "The type of the inconsistency of the dataset.", + "enum": [ + "DATASET_INCONSISTENCY_TYPE_UNSPECIFIED", + "DATASET_INCONSISTENCY_TYPE_NO_STORAGE_MARKER" + ], + "enumDescriptions": [ + "Default value.", + "The marker file under the dataset folder is not found." + ], "type": "string" }, "status": { "$ref": "GoogleRpcStatus", - "description": "The final status of the documents which should be updated by resync pipeline." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus": { + "description": "Resync status for each document per inconsistency type.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document identifier." + }, + "documentInconsistencyType": { + "description": "The type of document inconsistency.", + "enum": [ + "DOCUMENT_INCONSISTENCY_TYPE_UNSPECIFIED", + "DOCUMENT_INCONSISTENCY_TYPE_INVALID_DOCPROTO", + "DOCUMENT_INCONSISTENCY_TYPE_MISMATCHED_METADATA", + "DOCUMENT_INCONSISTENCY_TYPE_NO_PAGE_IMAGE" + ], + "enumDescriptions": [ + "Default value.", + "The document proto is invalid.", + "Indexed docproto metadata is mismatched.", + "The page image or thumbnails are missing." + ], + "type": "string" + }, + "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." } }, "type": "object" @@ -664,16 +874,47 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiUiv1beta3RevisionRef", + "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, fallback to read the first (OCR) revision.", + "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" + }, "GoogleCloudDocumentaiUiv1beta3RevisionReference": { "description": "The revision reference specifies which revision on the document to read.", "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", "properties": { "latestProcessorVersion": { - "description": "Read the revision generated by the processor version, returns error if it does not exist.", + "description": "Reads the revision generated by the processor version.", "type": "string" }, "revisionCase": { - "description": "Read the revision by the predefined case.", + "description": "Reads the revision by the predefined case.", "enum": [ "REVISION_CASE_UNSPECIFIED", "LATEST_HUMAN_REVIEW", @@ -687,7 +928,7 @@ "type": "string" }, "revisionId": { - "description": "Read the revision given by the id, returns error if it does not exist.", + "description": "Reads the revision given by the id.", "type": "string" } }, @@ -888,7 +1129,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -1070,7 +1311,25 @@ "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -1110,57 +1369,20 @@ "properties": {}, "type": "object" }, - "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata": { - "description": "The long running operation metadata for AnalyzeHitlData.", - "id": "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata", + "GoogleCloudDocumentaiV1beta1Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta1Barcode", "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata": { - "description": "The common metadata for long running operations.", - "id": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "properties": { - "createTime": { - "description": "The creation time of the operation.", - "format": "google-datetime", + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", "type": "string" }, - "resource": { - "description": "A related resource to this operation.", + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", "type": "string" }, - "state": { - "description": "The state of the operation.", - "enum": [ - "STATE_UNSPECIFIED", - "RUNNING", - "CANCELLING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ], - "enumDescriptions": [ - "Unspecified state.", - "Operation is still running.", - "Operation is being cancelled.", - "Operation succeeded.", - "Operation failed.", - "Operation is cancelled." - ], - "type": "string" - }, - "stateMessage": { - "description": "A message providing more details about the current state of processing.", - "type": "string" - }, - "updateTime": { - "description": "The last update time of the operation.", - "format": "google-datetime", + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", "type": "string" } }, @@ -1202,7 +1424,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta1Document", "properties": { "content": { @@ -1255,14 +1477,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" }, @@ -1280,7 +1502,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -1293,7 +1515,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -1324,7 +1546,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -1365,7 +1587,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -1401,6 +1623,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -1423,6 +1652,10 @@ "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for the page." @@ -1511,7 +1744,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -1544,7 +1777,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -1573,17 +1806,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta1Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -1649,7 +1897,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -1681,6 +1929,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -1690,7 +1973,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -1836,6 +2119,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -2113,6 +2400,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyleFontSize", "description": "Font size." @@ -2363,6 +2654,25 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta2Barcode", + "properties": { + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", + "type": "string" + }, + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", + "type": "string" + }, + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsRequest": { "description": "Request to batch process documents as an asynchronous operation. The output is written to Cloud Storage as JSON in the [Document] format.", "id": "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsRequest", @@ -2413,7 +2723,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta2Document", "properties": { "content": { @@ -2473,14 +2783,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" }, @@ -2498,7 +2808,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2511,7 +2821,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -2542,7 +2852,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -2583,7 +2893,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -2639,6 +2949,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -2661,6 +2978,10 @@ "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for the page." @@ -2749,7 +3070,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2782,7 +3103,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -2811,17 +3132,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta2Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -2887,7 +3223,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -2919,6 +3255,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -2928,7 +3299,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -3074,6 +3445,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -3351,6 +3726,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyleFontSize", "description": "Font size." @@ -3824,7 +4203,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -3953,6 +4332,28 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3HumanReviewStatus": { "description": "The status of human review on a processed document.", "id": "GoogleCloudDocumentaiV1beta3HumanReviewStatus", @@ -4040,7 +4441,25 @@ "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -4063,6 +4482,67 @@ "properties": {}, "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." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "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" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { + "description": "The response for the TrainProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { "description": "The long running operation metadata for the undeploy processor version method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", @@ -4116,7 +4596,7 @@ "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" @@ -4176,7 +4656,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { @@ -4198,36 +4678,36 @@ "type": "object" }, "GoogleTypeDateTime": { - "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", + "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", "id": "GoogleTypeDateTime", "properties": { "day": { - "description": "Required. Day of month. Must be from 1 to 31 and valid for the year and month.", + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", "format": "int32", "type": "integer" }, "hours": { - "description": "Required. 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.", + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", "format": "int32", "type": "integer" }, "minutes": { - "description": "Required. Minutes of hour of day. Must be from 0 to 59.", + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", "format": "int32", "type": "integer" }, "month": { - "description": "Required. Month of year. Must be from 1 to 12.", + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", "format": "int32", "type": "integer" }, "nanos": { - "description": "Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", "format": "int32", "type": "integer" }, "seconds": { - "description": "Required. 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.", + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", "format": "int32", "type": "integer" }, @@ -4270,7 +4750,7 @@ "type": "object" }, "GoogleTypePostalAddress": { - "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 i18n-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", + "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": "GoogleTypePostalAddress", "properties": { "addressLines": { diff --git a/etc/api/documentai/v1beta3/documentai-api.json b/etc/api/documentai/v1beta3/documentai-api.json index 48d8628884..cca137d682 100644 --- a/etc/api/documentai/v1beta3/documentai-api.json +++ b/etc/api/documentai/v1beta3/documentai-api.json @@ -169,7 +169,7 @@ ], "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).", + "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" }, @@ -297,6 +297,71 @@ } } }, + "processorTypes": { + "methods": { + "get": { + "description": "Gets a processor type detail.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processorTypes/{processorTypesId}", + "httpMethod": "GET", + "id": "documentai.projects.locations.processorTypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The processor type resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processorTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+name}", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessorType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the processor types that exist.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processorTypes", + "httpMethod": "GET", + "id": "documentai.projects.locations.processorTypes.list", + "parameterOrder": [ + "parent" + ], + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Used to retrieve the next page of results, empty if at the end of the list.", + "location": "query", + "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}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+parent}/processorTypes", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "processors": { "methods": { "batchProcess": { @@ -670,6 +735,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "evaluateProcessorVersion": { + "description": "Evaluates a ProcessorVersion against annotated documents, producing an Evaluation.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:evaluateProcessorVersion", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.processorVersions.evaluateProcessorVersion", + "parameterOrder": [ + "processorVersion" + ], + "parameters": { + "processorVersion": { + "description": "Required. The resource name of the ProcessorVersion to evaluate. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+processorVersion}:evaluateProcessorVersion", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a processor version detail.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}", @@ -759,6 +852,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "train": { + "description": "Trains a new processor version. Operation metadata is returned as cloud_documentai_core.TrainProcessorVersionMetadata.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions:train", + "httpMethod": "POST", + "id": "documentai.projects.locations.processors.processorVersions.train", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent (project, location and processor) to create the new version for. Format: `projects/{project}/locations/{location}/processors/{processor}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+parent}/processorVersions:train", + "request": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "undeploy": { "description": "Undeploys the processor version.", "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}:undeploy", @@ -787,6 +908,73 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "evaluations": { + "methods": { + "get": { + "description": "Retrieves a specific evaluation.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations/{evaluationsId}", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.processorVersions.evaluations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Evaluation to get. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}/evaluations/{evaluation}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+/evaluations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+name}", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3Evaluation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Retrieves a set of evaluations for a given processor version.", + "flatPath": "v1beta3/projects/{projectsId}/locations/{locationsId}/processors/{processorsId}/processorVersions/{processorVersionsId}/evaluations", + "httpMethod": "GET", + "id": "documentai.projects.locations.processors.processorVersions.evaluations.list", + "parameterOrder": [ + "parent" + ], + "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.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEvaluations` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the ProcessorVersion to list evaluations for. `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processorVersion}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/processors/[^/]+/processorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta3/{+parent}/evaluations", + "response": { + "$ref": "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } } } @@ -796,7 +984,7 @@ } } }, - "revision": "20220226", + "revision": "20230117", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadata": { @@ -805,6 +993,38 @@ "commonMetadata": { "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "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": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus" + }, + "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of documents deleting from dataset.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus": { + "description": "The status of each individual document in the batch delete process.", + "id": "GoogleCloudDocumentaiUiv1beta3BatchDeleteDocumentsMetadataIndividualBatchDeleteStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document id of the document." + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of deleting the document in storage." } }, "type": "object" @@ -838,6 +1058,22 @@ ], "type": "string" }, + "destSplitType": { + "description": "The destination dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, "individualBatchMoveStatuses": { "description": "The list of response details of each document.", "items": { @@ -925,6 +1161,17 @@ }, "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." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata": { "description": "The long running operation metadata for DeleteLabelerPool.", "id": "GoogleCloudDocumentaiUiv1beta3DeleteLabelerPoolOperationMetadata", @@ -999,6 +1246,10 @@ "gcsManagedDocId": { "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId" }, + "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." @@ -1007,11 +1258,11 @@ "type": "object" }, "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId": { - "description": "Identifies a document uniquely within the scope of a dataset in the GCS-based option.", + "description": "Identifies a document uniquely within the scope of a dataset in the Cloud Storage option.", "id": "GoogleCloudDocumentaiUiv1beta3DocumentIdGCSManagedDocumentId", "properties": { "cwDocId": { - "description": "Optional. Id of the document (indexed) managed by Content Warehouse.", + "description": "Id of the document (indexed) managed by Content Warehouse.", "type": "string" }, "gcsUri": { @@ -1060,6 +1311,84 @@ }, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata": { + "description": "Metadata of the batch export documents operation.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + }, + "individualExportStatuses": { + "description": "The list of response details of each document.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus" + }, + "type": "array" + }, + "splitExportStats": { + "description": "The list of statistics for each dataset split type.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus": { + "description": "The status of each individual document in the export process.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataIndividualExportStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The path to source docproto of the document." + }, + "outputGcsDestination": { + "description": "The output_gcs_destination of the exported document if it was successful, otherwise empty.", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the exporting of the document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat": { + "description": "The statistic representing a dataset split type for this export.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsMetadataSplitExportStat", + "properties": { + "splitType": { + "description": "The dataset split type.", + "enum": [ + "DATASET_SPLIT_TYPE_UNSPECIFIED", + "DATASET_SPLIT_TRAIN", + "DATASET_SPLIT_TEST", + "DATASET_SPLIT_UNASSIGNED" + ], + "enumDescriptions": [ + "Default value if the enum is not set. go/protodosdonts#do-include-an-unspecified-value-in-an-enum", + "Identifies the train documents.", + "Identifies the test documents.", + "Identifies the unassigned documents." + ], + "type": "string" + }, + "totalDocumentCount": { + "description": "Total number of documents with the given dataset split type to be exported.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse": { + "description": "The response proto of ExportDocuments method.", + "id": "GoogleCloudDocumentaiUiv1beta3ExportDocumentsResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata": { "description": "Metadata message associated with the ExportProcessorVersion operation.", "id": "GoogleCloudDocumentaiUiv1beta3ExportProcessorVersionMetadata", @@ -1090,12 +1419,39 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, + "importConfigValidationResults": { + "description": "Validation statuses of the batch documents import config.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult" + }, + "type": "array" + }, "individualImportStatuses": { "description": "The list of response details of each document.", "items": { "$ref": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataIndividualImportStatus" }, "type": "array" + }, + "totalDocumentCount": { + "description": "Total number of the documents that are qualified for importing.", + "format": "int32", + "type": "integer" + } + }, + "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.", + "id": "GoogleCloudDocumentaiUiv1beta3ImportDocumentsMetadataImportConfigValidationResult", + "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" @@ -1133,31 +1489,73 @@ "$ref": "GoogleCloudDocumentaiUiv1beta3CommonOperationMetadata", "description": "The basic metadata of the long running operation." }, - "newlyAddedDocuments": { - "description": "Returns the newly added document Cloud Storage prefix if the documents are founded in Cloud Storage while not in Document Service storage.", + "datasetResyncStatuses": { + "description": "The list of dataset resync statuses. Not checked when `dataset_documents` is specified in ResyncRequest.", "items": { - "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument" + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus" + }, + "type": "array" + }, + "individualDocumentResyncStatuses": { + "description": "The list of document resync statuses. The same document could have multiple `individual_document_resync_statuses` if it has multiple inconsistencies.", + "items": { + "$ref": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus" }, "type": "array" } }, "type": "object" }, - "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument": { - "description": "The proto for updated document in resync pipeline.", - "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataUpdatedDocument", + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus": { + "description": "Resync status against inconsistency types on the dataset level.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataDatasetResyncStatus", "properties": { - "destinationPrefix": { - "description": "The prefix of cloud storage, identifies the destination document which should be updated by resync pipeline.", - "type": "string" - }, - "sourcePrefix": { - "description": "The prefix of cloud storage, identifies the original document which should be updated by resync pipeline.", + "datasetInconsistencyType": { + "description": "The type of the inconsistency of the dataset.", + "enum": [ + "DATASET_INCONSISTENCY_TYPE_UNSPECIFIED", + "DATASET_INCONSISTENCY_TYPE_NO_STORAGE_MARKER" + ], + "enumDescriptions": [ + "Default value.", + "The marker file under the dataset folder is not found." + ], "type": "string" }, "status": { "$ref": "GoogleRpcStatus", - "description": "The final status of the documents which should be updated by resync pipeline." + "description": "The status of resyncing the dataset with regards to the detected inconsistency. Empty if `validate_only` is true in the request." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus": { + "description": "Resync status for each document per inconsistency type.", + "id": "GoogleCloudDocumentaiUiv1beta3ResyncDatasetMetadataIndividualDocumentResyncStatus", + "properties": { + "documentId": { + "$ref": "GoogleCloudDocumentaiUiv1beta3DocumentId", + "description": "The document identifier." + }, + "documentInconsistencyType": { + "description": "The type of document inconsistency.", + "enum": [ + "DOCUMENT_INCONSISTENCY_TYPE_UNSPECIFIED", + "DOCUMENT_INCONSISTENCY_TYPE_INVALID_DOCPROTO", + "DOCUMENT_INCONSISTENCY_TYPE_MISMATCHED_METADATA", + "DOCUMENT_INCONSISTENCY_TYPE_NO_PAGE_IMAGE" + ], + "enumDescriptions": [ + "Default value.", + "The document proto is invalid.", + "Indexed docproto metadata is mismatched.", + "The page image or thumbnails are missing." + ], + "type": "string" + }, + "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." } }, "type": "object" @@ -1168,16 +1566,47 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiUiv1beta3RevisionRef": { + "description": "The revision reference specifies which revision on the document to read.", + "id": "GoogleCloudDocumentaiUiv1beta3RevisionRef", + "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, fallback to read the first (OCR) revision.", + "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" + }, "GoogleCloudDocumentaiUiv1beta3RevisionReference": { "description": "The revision reference specifies which revision on the document to read.", "id": "GoogleCloudDocumentaiUiv1beta3RevisionReference", "properties": { "latestProcessorVersion": { - "description": "Read the revision generated by the processor version, returns error if it does not exist.", + "description": "Reads the revision generated by the processor version.", "type": "string" }, "revisionCase": { - "description": "Read the revision by the predefined case.", + "description": "Reads the revision by the predefined case.", "enum": [ "REVISION_CASE_UNSPECIFIED", "LATEST_HUMAN_REVIEW", @@ -1191,7 +1620,7 @@ "type": "string" }, "revisionId": { - "description": "Read the revision given by the id, returns error if it does not exist.", + "description": "Reads the revision given by the id.", "type": "string" } }, @@ -1392,7 +1821,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -1574,7 +2003,25 @@ "id": "GoogleCloudDocumentaiV1ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -1614,57 +2061,20 @@ "properties": {}, "type": "object" }, - "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata": { - "description": "The long running operation metadata for AnalyzeHitlData.", - "id": "GoogleCloudDocumentaiV1alpha1AnalyzeHitlDataMetadata", + "GoogleCloudDocumentaiV1beta1Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta1Barcode", "properties": { - "commonMetadata": { - "$ref": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "description": "The basic metadata of the long running operation." - } - }, - "type": "object" - }, - "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata": { - "description": "The common metadata for long running operations.", - "id": "GoogleCloudDocumentaiV1alpha1CommonOperationMetadata", - "properties": { - "createTime": { - "description": "The creation time of the operation.", - "format": "google-datetime", + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", "type": "string" }, - "resource": { - "description": "A related resource to this operation.", + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", "type": "string" }, - "state": { - "description": "The state of the operation.", - "enum": [ - "STATE_UNSPECIFIED", - "RUNNING", - "CANCELLING", - "SUCCEEDED", - "FAILED", - "CANCELLED" - ], - "enumDescriptions": [ - "Unspecified state.", - "Operation is still running.", - "Operation is being cancelled.", - "Operation succeeded.", - "Operation failed.", - "Operation is cancelled." - ], - "type": "string" - }, - "stateMessage": { - "description": "A message providing more details about the current state of processing.", - "type": "string" - }, - "updateTime": { - "description": "The last update time of the operation.", - "format": "google-datetime", + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", "type": "string" } }, @@ -1706,7 +2116,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta1Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta1Document", "properties": { "content": { @@ -1759,14 +2169,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyle" }, @@ -1784,7 +2194,7 @@ "id": "GoogleCloudDocumentaiV1beta1DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -1797,7 +2207,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -1828,7 +2238,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -1869,7 +2279,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -1905,6 +2315,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -1927,6 +2344,10 @@ "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for the page." @@ -2015,7 +2436,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2048,7 +2469,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -2077,17 +2498,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta1Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -2153,7 +2589,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -2185,6 +2621,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta1DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta1DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", @@ -2194,7 +2665,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2340,6 +2811,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta1DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -2617,6 +3092,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta1DocumentStyleFontSize", "description": "Font size." @@ -2856,6 +3335,25 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta2Barcode", + "properties": { + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", + "type": "string" + }, + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", + "type": "string" + }, + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse": { "description": "Response to an batch document processing request. This is returned in the LRO Operation after the operation is complete.", "id": "GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse", @@ -2892,7 +3390,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta2Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta2Document", "properties": { "content": { @@ -2952,14 +3450,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyle" }, @@ -2977,7 +3475,7 @@ "id": "GoogleCloudDocumentaiV1beta2DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -2990,7 +3488,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -3021,7 +3519,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -3062,7 +3560,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -3118,6 +3616,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -3140,6 +3645,10 @@ "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for the page." @@ -3228,7 +3737,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -3261,7 +3770,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -3290,17 +3799,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta2Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -3366,7 +3890,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -3398,6 +3922,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta2DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta2DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", @@ -3407,7 +3966,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -3553,6 +4112,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta2DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -3830,6 +4393,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta2DocumentStyleFontSize", "description": "Font size." @@ -4074,6 +4641,25 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3Barcode": { + "description": "Encodes the detailed information of a barcode.", + "id": "GoogleCloudDocumentaiV1beta3Barcode", + "properties": { + "format": { + "description": "Format of a barcode. The supported formats are: - `CODE_128`: Code 128 type. - `CODE_39`: Code 39 type. - `CODE_93`: Code 93 type. - `CODABAR`: Codabar type. - `DATA_MATRIX`: 2D Data Matrix type. - `ITF`: ITF type. - `EAN_13`: EAN-13 type. - `EAN_8`: EAN-8 type. - `QR_CODE`: 2D QR code type. - `UPC_A`: UPC-A type. - `UPC_E`: UPC-E type. - `PDF417`: PDF417 type. - `AZTEC`: 2D Aztec code type. - `DATABAR`: GS1 DataBar code type.", + "type": "string" + }, + "rawValue": { + "description": "Raw value encoded in the barcode. For example: `'MEBKM:TITLE:Google;URL:https://www.google.com;;'`.", + "type": "string" + }, + "valueFormat": { + "description": "Value format describes the format of the value that a barcode encodes. The supported formats are: - `CONTACT_INFO`: Contact information. - `EMAIL`: Email address. - `ISBN`: ISBN identifier. - `PHONE`: Phone number. - `PRODUCT`: Product. - `SMS`: SMS message. - `TEXT`: Text string. - `URL`: URL address. - `WIFI`: Wifi information. - `GEO`: Geo-localization. - `CALENDAR_EVENT`: Calendar event. - `DRIVER_LICENSE`: Driver's license.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig": { "description": "The common config to specify a set of documents used as input.", "id": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", @@ -4084,7 +4670,7 @@ }, "gcsPrefix": { "$ref": "GoogleCloudDocumentaiV1beta3GcsPrefix", - "description": "The set of documents that match the specified Cloud Storage [gcs_prefix]." + "description": "The set of documents that match the specified Cloud Storage `gcs_prefix`." } }, "type": "object" @@ -4161,7 +4747,7 @@ }, "status": { "$ref": "GoogleRpcStatus", - "description": "The status of the processing of the document." + "description": "The status processing the document." } }, "type": "object" @@ -4189,6 +4775,10 @@ "$ref": "GoogleCloudDocumentaiV1beta3BatchProcessRequestBatchOutputConfig", "description": "The overall output config for batch process." }, + "processOptions": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptions", + "description": "Inference-time options for the process API" + }, "skipHumanReview": { "description": "Whether Human Review feature should be skipped for this request. Default to false.", "type": "boolean" @@ -4363,7 +4953,7 @@ "type": "object" }, "GoogleCloudDocumentaiV1beta3Document": { - "description": "Document represents the canonical document resource in Document Understanding AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document Understanding AI to iterate and optimize for quality.", + "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta3Document", "properties": { "content": { @@ -4416,14 +5006,14 @@ "type": "string" }, "textChanges": { - "description": "Placeholder. A list of text corrections made to [Document.text]. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", + "description": "Placeholder. A list of text corrections made to Document.text. This is usually used for annotating corrections to OCR mistakes. Text changes for a given revision may not overlap with each other.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentTextChange" }, "type": "array" }, "textStyles": { - "description": "Placeholder. Styles for the Document.text.", + "description": "Styles for the Document.text.", "items": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentStyle" }, @@ -4441,7 +5031,7 @@ "id": "GoogleCloudDocumentaiV1beta3DocumentEntity", "properties": { "confidence": { - "description": "Optional. Confidence of detected Schema entity. Range [0, 1].", + "description": "Optional. Confidence of detected Schema entity. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -4454,7 +5044,7 @@ "type": "string" }, "mentionText": { - "description": "Optional. Text value in the document e.g. `1600 Amphitheatre Pkwy`. If the entity is not present in the document, this field will be empty.", + "description": "Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.", "type": "string" }, "normalizedValue": { @@ -4485,7 +5075,7 @@ "description": "Optional. Provenance of the entity. Text anchor indexing into the Document.text." }, "type": { - "description": "Entity type from a schema e.g. `Address`.", + "description": "Required. Entity type from a schema e.g. `Address`.", "type": "string" } }, @@ -4526,7 +5116,7 @@ "description": "Money value. See also: https://github.com/googleapis/googleapis/blob/master/google/type/money.proto" }, "text": { - "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate float or int normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", + "description": "Optional. An optional field to store a normalized string. For some entity types, one of respective `structured_value` fields may also be populated. Also not all the types of `structured_value` will be normalized. For example, some processors may not generate `float` or `integer` normalized text by default. Below are sample formats mapped to structured values. - Money/Currency type (`money_value`) is in the ISO 4217 text format. - Date type (`date_value`) is in the ISO 8601 text format. - Datetime type (`datetime_value`) is in the ISO 8601 text format.", "type": "string" } }, @@ -4566,9 +5156,35 @@ "description": "The configuration used when outputting documents.", "id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfig", "properties": { + "fieldMask": { + "description": "Specifies which fields to include in the output documents. 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" + }, "gcsUri": { "description": "The Cloud Storage uri (a directory) of the output.", "type": "string" + }, + "shardingConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig", + "description": "Specifies the sharding config for the output document." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig": { + "description": "The sharding config for the output document.", + "id": "GoogleCloudDocumentaiV1beta3DocumentOutputConfigGcsOutputConfigShardingConfig", + "properties": { + "pagesOverlap": { + "description": "The number of overlapping pages between consecutive shards.", + "format": "int32", + "type": "integer" + }, + "pagesPerShard": { + "description": "The number of pages per shard.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -4584,6 +5200,13 @@ }, "type": "array" }, + "detectedBarcodes": { + "description": "A list of detected barcodes.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode" + }, + "type": "array" + }, "detectedLanguages": { "description": "A list of detected languages together with confidence.", "items": { @@ -4606,6 +5229,10 @@ "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImage", "description": "Rendered image for this page. This image is preprocessed to remove any skew, rotation, and distortions such that the annotation bounding boxes can be upright and axis-aligned." }, + "imageQualityScores": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", + "description": "Image Quality Scores." + }, "layout": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", "description": "Layout for the page." @@ -4694,7 +5321,7 @@ "description": "Optional. Identifies the bounding polygon of a layout element on the page." }, "confidence": { - "description": "Optional. Confidence of detected page element, if applicable. Range [0, 1].", + "description": "Optional. Confidence of detected page element, if applicable. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -4727,7 +5354,7 @@ "type": "string" }, "page": { - "description": "Required. Index into the Document.pages element, for example using Document.pages to locate the related page element. This field is skipped when its value is the default 0. See https://developers.google.com/protocol-buffers/docs/proto3#json.", + "description": "Required. Index into the Document.pages element, for example using `Document.pages` to locate the related page element. This field is skipped when its value is the default `0`. See https://developers.google.com/protocol-buffers/docs/proto3#json.", "format": "int64", "type": "string" } @@ -4756,17 +5383,32 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode": { + "description": "A detected barcode.", + "id": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedBarcode", + "properties": { + "barcode": { + "$ref": "GoogleCloudDocumentaiV1beta3Barcode", + "description": "Detailed barcode information of the DetectedBarcode." + }, + "layout": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", + "description": "Layout for DetectedBarcode." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage": { "description": "Detected language for a structural component.", "id": "GoogleCloudDocumentaiV1beta3DocumentPageDetectedLanguage", "properties": { "confidence": { - "description": "Confidence of detected language. Range [0, 1].", + "description": "Confidence of detected language. Range `[0, 1]`.", "format": "float", "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, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.", "type": "string" } }, @@ -4832,7 +5474,7 @@ "type": "array" }, "valueType": { - "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the field_value is normal text) - \"unfilled_checkbox\" - \"filled_checkbox\"", + "description": "If the value is non-textual, this field represents the type. Current valid values are: - blank (this indicates the `field_value` is normal text) - `unfilled_checkbox` - `filled_checkbox`", "type": "string" } }, @@ -4864,6 +5506,41 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores": { + "description": "Image Quality Scores for the page image", + "id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScores", + "properties": { + "detectedDefects": { + "description": "A list of detected defects.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect" + }, + "type": "array" + }, + "qualityScore": { + "description": "The overall quality score. Range `[0, 1]` where 1 is perfect quality.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect": { + "description": "Image Quality Defects", + "id": "GoogleCloudDocumentaiV1beta3DocumentPageImageQualityScoresDetectedDefect", + "properties": { + "confidence": { + "description": "Confidence of detected defect. Range `[0, 1]` where 1 indicates strong confidence of that the defect exists.", + "format": "float", + "type": "number" + }, + "type": { + "description": "Name of the defect type. Supported values are: - `quality/defect_blurry` - `quality/defect_noisy` - `quality/defect_dark` - `quality/defect_faint` - `quality/defect_text_too_small` - `quality/defect_document_cutoff` - `quality/defect_text_cutoff` - `quality/defect_glare`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentPageLayout": { "description": "Visual element describing a layout unit on a page.", "id": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", @@ -4873,7 +5550,7 @@ "description": "The bounding polygon for the Layout." }, "confidence": { - "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range [0, 1].", + "description": "Confidence of the current Layout within context of the object this layout is for. e.g. confidence can be for a single token, a table, a visual element, etc. depending on context. Range `[0, 1]`.", "format": "float", "type": "number" }, @@ -5019,6 +5696,10 @@ "layout": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentPageLayout", "description": "Layout for Table." + }, + "provenance": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentProvenance", + "description": "The history of this table." } }, "type": "object" @@ -5262,6 +5943,135 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentSchema": { + "description": "The schema defines the output of the processed document by a processor.", + "id": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "properties": { + "description": { + "description": "Description of the schema.", + "type": "string" + }, + "displayName": { + "description": "Display name to show to users.", + "type": "string" + }, + "entityTypes": { + "description": "Entity types of the schema.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType" + }, + "type": "array" + }, + "metadata": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata", + "description": "Metadata of the schema." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType": { + "description": "EntityType is the wrapper of a label of the corresponding model with detailed attributes and limitations for entity-based processors. Multiple types can also compose a dependency tree to represent nested types.", + "id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityType", + "properties": { + "baseTypes": { + "description": "The entity type that this type is derived from. For now, one and only one should be set.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "User defined name for the type.", + "type": "string" + }, + "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.", + "type": "string" + }, + "properties": { + "description": "Describing the nested structure, or composition of an entity.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues": { + "description": "Defines the a list of enum values.", + "id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeEnumValues", + "properties": { + "values": { + "description": "The individual values that this enum values type can include.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty": { + "description": "Defines properties that can be part of the entity type.", + "id": "GoogleCloudDocumentaiV1beta3DocumentSchemaEntityTypeProperty", + "properties": { + "name": { + "description": "The name of the property. Follows the same guidelines as the EntityType name.", + "type": "string" + }, + "occurrenceType": { + "description": "Occurrence type limits the number of instances an entity type appears in the document.", + "enum": [ + "OCCURRENCE_TYPE_UNSPECIFIED", + "OPTIONAL_ONCE", + "OPTIONAL_MULTIPLE", + "REQUIRED_ONCE", + "REQUIRED_MULTIPLE" + ], + "enumDescriptions": [ + "Unspecified occurrence type.", + "There will be zero or one instance of this entity type.", + "The entity type will appear zero or multiple times.", + "The entity type will only appear exactly once.", + "The entity type will appear once or more times." + ], + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata": { + "description": "Metadata for global schema behavior.", + "id": "GoogleCloudDocumentaiV1beta3DocumentSchemaMetadata", + "properties": { + "documentAllowMultipleLabels": { + "description": "If true, on a given page, there can be multiple `document` annotations covering it.", + "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).", + "type": "boolean" + }, + "prefixedNamingOnProperties": { + "description": "If set, all the nested entities must be prefixed with the parents.", + "type": "boolean" + }, + "skipNamingValidation": { + "description": "If set, we will skip the naming format validation in the schema. So the string values in `DocumentSchema.EntityType.name` and `DocumentSchema.EntityType.Property.name` will not be checked.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentShardInfo": { "description": "For a large document, sharding may be performed to produce several document shards. Each document shard contains this field to detail which shard it is.", "id": "GoogleCloudDocumentaiV1beta3DocumentShardInfo", @@ -5296,6 +6106,10 @@ "$ref": "GoogleTypeColor", "description": "Text color." }, + "fontFamily": { + "description": "Font family such as `Arial`, `Times New Roman`. https://www.w3schools.com/cssref/pr_font_font-family.asp", + "type": "string" + }, "fontSize": { "$ref": "GoogleCloudDocumentaiV1beta3DocumentStyleFontSize", "description": "Font size." @@ -5415,6 +6229,259 @@ "properties": {}, "type": "object" }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionMetadata", + "properties": { + "commonMetadata": { + "$ref": "GoogleCloudDocumentaiV1beta3CommonOperationMetadata", + "description": "The basic metadata of the long running operation." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest": { + "description": "Evaluates the given ProcessorVersion against the supplied documents.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionRequest", + "properties": { + "evaluationDocuments": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", + "description": "Optional. The documents used in the evaluation. If unspecified, use the processor's dataset as evaluation input." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse": { + "description": "Metadata of the EvaluateProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3EvaluateProcessorVersionResponse", + "properties": { + "evaluation": { + "description": "The resource name of the created evaluation.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3Evaluation": { + "description": "An evaluation of a ProcessorVersion's performance.", + "id": "GoogleCloudDocumentaiV1beta3Evaluation", + "properties": { + "allEntitiesMetrics": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics", + "description": "Metrics for all the entities in aggregate." + }, + "createTime": { + "description": "The time that the evaluation was created.", + "format": "google-datetime", + "type": "string" + }, + "documentCounters": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationCounters", + "description": "Counters for the documents used in the evaluation." + }, + "entityMetrics": { + "additionalProperties": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics" + }, + "description": "Metrics across confidence levels, for different entities.", + "type": "object" + }, + "kmsKeyName": { + "description": "The KMS key name used for encryption.", + "type": "string" + }, + "kmsKeyVersionName": { + "description": "The KMS key version with which data is encrypted.", + "type": "string" + }, + "name": { + "description": "The resource name of the evaluation. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}/evaluations/{evaluation}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics": { + "description": "Evaluations metrics, at a specific confidence level.", + "id": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics", + "properties": { + "confidenceLevel": { + "description": "The confidence level.", + "format": "float", + "type": "number" + }, + "metrics": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", + "description": "The metrics at the specific confidence level." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluationCounters": { + "description": "Evaluation counters for the documents that were used.", + "id": "GoogleCloudDocumentaiV1beta3EvaluationCounters", + "properties": { + "evaluatedDocumentsCount": { + "description": "How many documents were used in the evaluation.", + "format": "int32", + "type": "integer" + }, + "failedDocumentsCount": { + "description": "How many documents were not included in the evaluation as Document AI failed to process them.", + "format": "int32", + "type": "integer" + }, + "inputDocumentsCount": { + "description": "How many documents were sent for evaluation.", + "format": "int32", + "type": "integer" + }, + "invalidDocumentsCount": { + "description": "How many documents were not included in the evaluation as they didn't pass validation.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluationMetrics": { + "description": "Evaluation metrics, either in aggregate or about a specific entity.", + "id": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", + "properties": { + "f1Score": { + "description": "The calculated f1 score.", + "format": "float", + "type": "number" + }, + "falseNegativesCount": { + "description": "The amount of false negatives.", + "format": "int32", + "type": "integer" + }, + "falsePositivesCount": { + "description": "The amount of false positives.", + "format": "int32", + "type": "integer" + }, + "groundTruthDocumentCount": { + "description": "The amount of documents with a ground truth occurrence.", + "format": "int32", + "type": "integer" + }, + "groundTruthOccurrencesCount": { + "description": "The amount of occurrences in ground truth documents.", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "The calculated precision.", + "format": "float", + "type": "number" + }, + "predictedDocumentCount": { + "description": "The amount of documents with a predicted occurrence.", + "format": "int32", + "type": "integer" + }, + "predictedOccurrencesCount": { + "description": "The amount of occurrences in predicted documents.", + "format": "int32", + "type": "integer" + }, + "recall": { + "description": "The calculated recall.", + "format": "float", + "type": "number" + }, + "totalDocumentsCount": { + "description": "The amount of documents that had an occurrence of this label.", + "format": "int32", + "type": "integer" + }, + "truePositivesCount": { + "description": "The amount of true positives.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics": { + "description": "Metrics across multiple confidence levels.", + "id": "GoogleCloudDocumentaiV1beta3EvaluationMultiConfidenceMetrics", + "properties": { + "auprc": { + "description": "The calculated area under the precision recall curve (AUPRC), computed by integrating over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "auprcExact": { + "description": "The AUPRC for metrics with fuzzy matching disabled, i.e., exact matching only.", + "format": "float", + "type": "number" + }, + "confidenceLevelMetrics": { + "description": "Metrics across confidence levels with fuzzy matching enabled.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics" + }, + "type": "array" + }, + "confidenceLevelMetricsExact": { + "description": "Metrics across confidence levels with only exact matching.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationConfidenceLevelMetrics" + }, + "type": "array" + }, + "estimatedCalibrationError": { + "description": "The Estimated Calibration Error (ECE) of the confidence of the predicted entities.", + "format": "float", + "type": "number" + }, + "estimatedCalibrationErrorExact": { + "description": "The ECE for the predicted entities with fuzzy matching disabled, i.e., exact matching only.", + "format": "float", + "type": "number" + }, + "metricsType": { + "description": "The metrics type for the label.", + "enum": [ + "METRICS_TYPE_UNSPECIFIED", + "AGGREGATE" + ], + "enumDescriptions": [ + "The metrics type is unspecified. By default, metrics without a particular specification are for leaf entity types (i.e., top-level entity types without child types, or child types which are not parent types themselves).", + "Indicates whether metrics for this particular label type represent an aggregate of metrics for other types instead of being based on actual TP/FP/FN values for the label type. Metrics for parent (i.e., non-leaf) entity types are an aggregate of metrics for their children." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3EvaluationReference": { + "description": "Gives a short summary of an evaluation, and links to the evaluation itself.", + "id": "GoogleCloudDocumentaiV1beta3EvaluationReference", + "properties": { + "aggregateMetrics": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", + "description": "An aggregate of the statistics for the evaluation with fuzzy matching on." + }, + "aggregateMetricsExact": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationMetrics", + "description": "An aggregate of the statistics for the evaluation with fuzzy matching off." + }, + "evaluation": { + "description": "The resource name of the evaluation.", + "type": "string" + }, + "operation": { + "description": "The resource name of the Long Running Operation for the evaluation.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse": { "description": "Response message for fetch processor types.", "id": "GoogleCloudDocumentaiV1beta3FetchProcessorTypesResponse", @@ -5502,6 +6569,42 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse": { + "description": "The response from ListEvaluations.", + "id": "GoogleCloudDocumentaiV1beta3ListEvaluationsResponse", + "properties": { + "evaluations": { + "description": "The evaluations requested.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3Evaluation" + }, + "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" + }, + "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse": { + "description": "Response message for list processor types.", + "id": "GoogleCloudDocumentaiV1beta3ListProcessorTypesResponse", + "properties": { + "nextPageToken": { + "description": "Points to the next page, otherwise empty.", + "type": "string" + }, + "processorTypes": { + "description": "The processor types.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessorType" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse": { "description": "Response message for list processors.", "id": "GoogleCloudDocumentaiV1beta3ListProcessorVersionsResponse", @@ -5555,6 +6658,28 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3OcrConfig": { + "description": "Config for Document OCR.", + "id": "GoogleCloudDocumentaiV1beta3OcrConfig", + "properties": { + "enableNativePdfParsing": { + "description": "Enables special handling for PDFs with existing text information. Results in better text extraction quality in such PDF inputs.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ProcessOptions": { + "description": "Options for Process API", + "id": "GoogleCloudDocumentaiV1beta3ProcessOptions", + "properties": { + "ocrConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3OcrConfig", + "description": "Only applicable to \"Document OCR Processor\". Returns error if set on other processor types." + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ProcessRequest": { "description": "Request message for the process document method.", "id": "GoogleCloudDocumentaiV1beta3ProcessRequest", @@ -5563,10 +6688,19 @@ "$ref": "GoogleCloudDocumentaiV1beta3Document", "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}`.", + "format": "google-fieldmask", + "type": "string" + }, "inlineDocument": { "$ref": "GoogleCloudDocumentaiV1beta3Document", "description": "An inline document proto." }, + "processOptions": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptions", + "description": "Inference-time options for the process API" + }, "rawDocument": { "$ref": "GoogleCloudDocumentaiV1beta3RawDocument", "description": "A raw document content (bytes)." @@ -5644,9 +6778,9 @@ "The processor is in an unspecified state.", "The processor is enabled, i.e., has an enabled version which can currently serve processing requests and all the feature dependencies have been successfully initialized.", "The processor is disabled.", - "The processor is being enabled, will become ENABLED if successful.", - "The processor is being disabled, will become DISABLED if successful.", - "The processor is being created, will become either ENABLED (for successful creation) or FAILED (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", + "The processor is being enabled, will become `ENABLED` if successful.", + "The processor is being disabled, will become `DISABLED` if successful.", + "The processor is being created, will become either `ENABLED` (for successful creation) or `FAILED` (for failed ones). Once a processor is in this state, it can then be used for document processing, but the feature dependencies of the processor might not be fully created yet.", "The processor failed during creation or initialization of feature dependencies. The user should delete the processor and recreate one as all the functionalities of the processor are disabled.", "The processor is being deleted, will be removed if successful." ], @@ -5654,7 +6788,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, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc. To get a list of processors types, see FetchProcessorTypes.", "type": "string" } }, @@ -5704,11 +6838,18 @@ "type": "string" }, "name": { - "description": "The resource name of the processor type. Format: projects/{project}/processorTypes/{processor_type}", + "description": "The resource name of the processor type. Format: `projects/{project}/processorTypes/{processor_type}`", "type": "string" }, + "sampleDocumentUris": { + "description": "A set of Cloud Storage URIs of sample documents for this processor.", + "items": { + "type": "string" + }, + "type": "array" + }, "type": { - "description": "The type of the processor, e.g., \"invoice_parsing\".", + "description": "The processor type, e.g., `OCR_PROCESSOR`, `INVOICE_PROCESSOR`, etc.", "type": "string" } }, @@ -5726,7 +6867,7 @@ "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, 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", "id": "GoogleCloudDocumentaiV1beta3ProcessorVersion", "properties": { "createTime": { @@ -5734,10 +6875,22 @@ "format": "google-datetime", "type": "string" }, + "deprecationInfo": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo", + "description": "If set, information about the eventual deprecation of this version." + }, "displayName": { "description": "The display name of the processor version.", "type": "string" }, + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "description": "The schema of the processor version. Describes the output." + }, + "googleManaged": { + "description": "Denotes that this ProcessorVersion is managed by google.", + "type": "boolean" + }, "kmsKeyName": { "description": "The KMS key name used for encryption.", "type": "string" @@ -5746,6 +6899,10 @@ "description": "The KMS key version with which data is encrypted.", "type": "string" }, + "latestEvaluation": { + "$ref": "GoogleCloudDocumentaiV1beta3EvaluationReference", + "description": "The most recently invoked evaluation for the processor version." + }, "name": { "description": "The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", "type": "string" @@ -5777,6 +6934,22 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo": { + "description": "Information about the upcoming deprecation of this processor version.", + "id": "GoogleCloudDocumentaiV1beta3ProcessorVersionDeprecationInfo", + "properties": { + "deprecationTime": { + "description": "The time at which this processor version will be deprecated.", + "format": "google-datetime", + "type": "string" + }, + "replacementProcessorVersion": { + "description": "If set, the processor version that will be used as a replacement.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3RawDocument": { "description": "Payload message of raw document content (bytes).", "id": "GoogleCloudDocumentaiV1beta3RawDocument", @@ -5787,7 +6960,7 @@ "type": "string" }, "mimeType": { - "description": "An IANA MIME type (RFC6838) indicating the nature and format of the [content].", + "description": "An IANA MIME type (RFC6838) indicating the nature and format of the content.", "type": "string" } }, @@ -5850,6 +7023,10 @@ "$ref": "GoogleCloudDocumentaiV1beta3Document", "description": "The document that needs human review." }, + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "description": "The document schema of the human review task." + }, "enableSchemaValidation": { "description": "Whether the validation should be performed on the ad-hoc review request.", "type": "boolean" @@ -5878,7 +7055,25 @@ "id": "GoogleCloudDocumentaiV1beta3ReviewDocumentResponse", "properties": { "gcsDestination": { - "description": "The Cloud Storage uri for the human reviewed document.", + "description": "The Cloud Storage uri for the human reviewed document if the review is succeeded.", + "type": "string" + }, + "rejectionReason": { + "description": "The reason why the review is rejected by reviewer.", + "type": "string" + }, + "state": { + "description": "The state of the review operation.", + "enum": [ + "STATE_UNSPECIFIED", + "REJECTED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The default value. This value is used if the state is omitted.", + "The review operation is rejected by the reviewer.", + "The review operation is succeeded." + ], "type": "string" } }, @@ -5900,7 +7095,7 @@ "id": "GoogleCloudDocumentaiV1beta3SetDefaultProcessorVersionRequest", "properties": { "defaultProcessorVersion": { - "description": "Required. The resource name of child ProcessorVersion to use as default.", + "description": "Required. The resource name of child ProcessorVersion to use as default. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{version}`", "type": "string" } }, @@ -5912,6 +7107,105 @@ "properties": {}, "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." + }, + "testDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The test dataset validation information." + }, + "trainingDatasetValidation": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "description": "The training dataset validation information." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation": { + "description": "The dataset validation information. This includes any and all errors with documents and the dataset.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionMetadataDatasetValidation", + "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" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequest": { + "description": "Request message for the create processor version 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" + }, + "documentSchema": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentSchema", + "description": "Optional. The schema the processor version will be trained with." + }, + "inputData": { + "$ref": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", + "description": "Optional. The input data used to train the `ProcessorVersion`." + }, + "processorVersion": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessorVersion", + "description": "Required. The processor version to be created." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData": { + "description": "The input data used to train a new `ProcessorVersion`.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionRequestInputData", + "properties": { + "testDocuments": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", + "description": "The documents used for testing the trained version." + }, + "trainingDocuments": { + "$ref": "GoogleCloudDocumentaiV1beta3BatchDocumentsInputConfig", + "description": "The documents used for training the new version." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse": { + "description": "The response for the TrainProcessorVersion method.", + "id": "GoogleCloudDocumentaiV1beta3TrainProcessorVersionResponse", + "properties": { + "processorVersion": { + "description": "The resource name of the processor version produced by training.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata": { "description": "The long running operation metadata for the undeploy processor version method.", "id": "GoogleCloudDocumentaiV1beta3UndeployProcessorVersionMetadata", @@ -6058,7 +7352,7 @@ "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" @@ -6118,7 +7412,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { @@ -6140,36 +7434,36 @@ "type": "object" }, "GoogleTypeDateTime": { - "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year is 0, the DateTime is considered not to have a specific year. month and day must have valid, non-zero values. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", + "description": "Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.", "id": "GoogleTypeDateTime", "properties": { "day": { - "description": "Required. Day of month. Must be from 1 to 31 and valid for the year and month.", + "description": "Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.", "format": "int32", "type": "integer" }, "hours": { - "description": "Required. 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.", + "description": "Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", "format": "int32", "type": "integer" }, "minutes": { - "description": "Required. Minutes of hour of day. Must be from 0 to 59.", + "description": "Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.", "format": "int32", "type": "integer" }, "month": { - "description": "Required. Month of year. Must be from 1 to 12.", + "description": "Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.", "format": "int32", "type": "integer" }, "nanos": { - "description": "Required. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "description": "Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.", "format": "int32", "type": "integer" }, "seconds": { - "description": "Required. 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.", + "description": "Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.", "format": "int32", "type": "integer" }, @@ -6212,7 +7506,7 @@ "type": "object" }, "GoogleTypePostalAddress": { - "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 i18n-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", + "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": "GoogleTypePostalAddress", "properties": { "addressLines": { diff --git a/etc/api/domains/v1/domains-api.json b/etc/api/domains/v1/domains-api.json index 6fd2ec42f6..f98cdcde2d 100644 --- a/etc/api/domains/v1/domains-api.json +++ b/etc/api/domains/v1/domains-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -427,7 +427,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -442,6 +442,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:import", + "httpMethod": "POST", + "id": "domains.projects.locations.registrations.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the Registration. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/registrations:import", + "request": { + "$ref": "ImportDomainRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists the `Registration` resources in a project.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations", @@ -598,6 +626,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", + "httpMethod": "GET", + "id": "domains.projects.locations.registrations.retrieveImportableDomains", + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "description": "Required. The location. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "When set to the `next_page_token` from a prior response, provides the next page of results.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+location}/registrations:retrieveImportableDomains", + "response": { + "$ref": "RetrieveImportableDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "retrieveRegisterParameters": { "description": "Gets parameters needed to register a new domain name, including price and up-to-date availability. Use the returned values to call `RegisterDomain`.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveRegisterParameters", @@ -629,7 +693,7 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. Use the returned values to call `TransferDomain`.", + "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`.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -698,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -726,7 +790,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -745,7 +809,7 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. 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.", + "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.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -779,11 +843,11 @@ } } }, - "revision": "20220128", + "revision": "20230105", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -850,7 +914,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1035,6 +1099,41 @@ }, "type": "object" }, + "Domain": { + "description": "A domain that the calling user manages in Google Domains.", + "id": "Domain", + "properties": { + "domainName": { + "description": "The domain name. Unicode domain names are expressed in Punycode format.", + "type": "string" + }, + "resourceState": { + "description": "The state of this domain as a `Registration` resource.", + "enum": [ + "RESOURCE_STATE_UNSPECIFIED", + "IMPORTABLE", + "UNSUPPORTED", + "SUSPENDED", + "EXPIRED", + "DELETED" + ], + "enumDescriptions": [ + "The assessment is undefined.", + "A `Registration` resource can be created for this domain by calling `ImportDomain`.", + "A `Registration` resource cannot be created for this domain because it is not supported by Cloud Domains; for example, the top-level domain is not supported or the registry charges non-standard pricing for yearly renewals.", + "A `Registration` resource cannot be created for this domain because it is suspended and needs to be resolved with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is expired and needs to be renewed with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is deleted, but it may be possible to restore it with Google Domains." + ], + "type": "string" + }, + "yearlyPrice": { + "$ref": "Money", + "description": "Price to renew the domain for one year. Only set when `resource_state` is `IMPORTABLE`." + } + }, + "type": "object" + }, "DsRecord": { "description": "Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.", "id": "DsRecord", @@ -1204,6 +1303,24 @@ }, "type": "object" }, + "ImportDomainRequest": { + "description": "Request for the `ImportDomain` method.", + "id": "ImportDomainRequest", + "properties": { + "domainName": { + "description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of labels associated with the `Registration`.", + "type": "object" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1449,7 +1566,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -1487,7 +1604,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { @@ -1623,7 +1740,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`.", + "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.", "id": "Registration", "properties": { "contactSettings": { @@ -1689,6 +1806,23 @@ "description": "Output only. Pending contact settings for the `Registration`. Updates to the `contact_settings` field that change its `registrant_contact` or `privacy` fields require email confirmation by the `registrant_contact` before taking effect. This field is set only if there are pending updates to the `contact_settings` that have not been confirmed. To confirm the changes, the `registrant_contact` must follow the instructions in the email they receive.", "readOnly": true }, + "registerFailureReason": { + "description": "Output only. The reason the domain registration failed. Only set for domains in REGISTRATION_FAILED state.", + "enum": [ + "REGISTER_FAILURE_REASON_UNSPECIFIED", + "REGISTER_FAILURE_REASON_UNKNOWN", + "DOMAIN_NOT_AVAILABLE", + "INVALID_CONTACTS" + ], + "enumDescriptions": [ + "Register failure unspecified.", + "Registration failed for an unknown reason.", + "The domain is not available for registration.", + "The provided contact information was rejected." + ], + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. The state of the `Registration`", "enum": [ @@ -1697,6 +1831,7 @@ "REGISTRATION_FAILED", "TRANSFER_PENDING", "TRANSFER_FAILED", + "IMPORT_PENDING", "ACTIVE", "SUSPENDED", "EXPORTED" @@ -1707,6 +1842,7 @@ "The domain registration failed. You can delete resources in this state to allow registration to be retried.", "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 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." @@ -1733,6 +1869,37 @@ }, "readOnly": true, "type": "array" + }, + "transferFailureReason": { + "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "enum": [ + "TRANSFER_FAILURE_REASON_UNSPECIFIED", + "TRANSFER_FAILURE_REASON_UNKNOWN", + "EMAIL_CONFIRMATION_FAILURE", + "DOMAIN_NOT_REGISTERED", + "DOMAIN_HAS_TRANSFER_LOCK", + "INVALID_AUTHORIZATION_CODE", + "TRANSFER_CANCELLED", + "TRANSFER_REJECTED", + "INVALID_REGISTRANT_EMAIL_ADDRESS", + "DOMAIN_NOT_ELIGIBLE_FOR_TRANSFER", + "TRANSFER_ALREADY_PENDING" + ], + "enumDescriptions": [ + "Transfer failure unspecified.", + "Transfer failed for an unknown reason.", + "An email confirmation sent to the user was rejected or expired.", + "The domain is available for registration.", + "The domain has a transfer lock with its current registrar which must be removed prior to transfer.", + "The authorization code entered is not valid.", + "The transfer was cancelled by the domain owner, current registrar, or TLD registry.", + "The transfer was rejected by the current registrar. Contact the current registrar for more information.", + "The registrant email address cannot be parsed from the domain's current public contact data.", + "The domain is not eligible for transfer due requirements imposed by the current registrar or TLD registry.", + "Another transfer is already pending for this domain. The existing transfer attempt must expire or be cancelled in order to proceed." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1743,6 +1910,24 @@ "properties": {}, "type": "object" }, + "RetrieveImportableDomainsResponse": { + "description": "Response for the `RetrieveImportableDomains` method.", + "id": "RetrieveImportableDomainsResponse", + "properties": { + "domains": { + "description": "A list of domains that the calling user manages in Google Domains.", + "items": { + "$ref": "Domain" + }, + "type": "array" + }, + "nextPageToken": { + "description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "RetrieveRegisterParametersResponse": { "description": "Response for the `RetrieveRegisterParameters` method.", "id": "RetrieveRegisterParametersResponse", @@ -1785,7 +1970,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1827,7 +2012,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1896,6 +2081,10 @@ "description": "The registrar that currently manages the domain.", "type": "string" }, + "currentRegistrarUri": { + "description": "The URL of the registrar that currently manages the domain.", + "type": "string" + }, "domainName": { "description": "The domain name. Unicode domain names are expressed in Punycode format.", "type": "string" diff --git a/etc/api/domains/v1alpha2/domains-api.json b/etc/api/domains/v1alpha2/domains-api.json index 98aa90c8ea..a6c4035add 100644 --- a/etc/api/domains/v1alpha2/domains-api.json +++ b/etc/api/domains/v1alpha2/domains-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -427,7 +427,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -442,6 +442,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:import", + "httpMethod": "POST", + "id": "domains.projects.locations.registrations.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the Registration. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha2/{+parent}/registrations:import", + "request": { + "$ref": "ImportDomainRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists the `Registration` resources in a project.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations", @@ -598,6 +626,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", + "httpMethod": "GET", + "id": "domains.projects.locations.registrations.retrieveImportableDomains", + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "description": "Required. The location. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "When set to the `next_page_token` from a prior response, provides the next page of results.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha2/{+location}/registrations:retrieveImportableDomains", + "response": { + "$ref": "RetrieveImportableDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "retrieveRegisterParameters": { "description": "Gets parameters needed to register a new domain name, including price and up-to-date availability. Use the returned values to call `RegisterDomain`.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveRegisterParameters", @@ -629,7 +693,7 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. Use the returned values to call `TransferDomain`.", + "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`.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -698,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -726,7 +790,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -745,7 +809,7 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. 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.", + "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.", "flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -779,11 +843,11 @@ } } }, - "revision": "20220128", + "revision": "20230105", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -850,7 +914,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1035,6 +1099,41 @@ }, "type": "object" }, + "Domain": { + "description": "A domain that the calling user manages in Google Domains.", + "id": "Domain", + "properties": { + "domainName": { + "description": "The domain name. Unicode domain names are expressed in Punycode format.", + "type": "string" + }, + "resourceState": { + "description": "The state of this domain as a `Registration` resource.", + "enum": [ + "RESOURCE_STATE_UNSPECIFIED", + "IMPORTABLE", + "UNSUPPORTED", + "SUSPENDED", + "EXPIRED", + "DELETED" + ], + "enumDescriptions": [ + "The assessment is undefined.", + "A `Registration` resource can be created for this domain by calling `ImportDomain`.", + "A `Registration` resource cannot be created for this domain because it is not supported by Cloud Domains; for example, the top-level domain is not supported or the registry charges non-standard pricing for yearly renewals.", + "A `Registration` resource cannot be created for this domain because it is suspended and needs to be resolved with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is expired and needs to be renewed with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is deleted, but it may be possible to restore it with Google Domains." + ], + "type": "string" + }, + "yearlyPrice": { + "$ref": "Money", + "description": "Price to renew the domain for one year. Only set when `resource_state` is `IMPORTABLE`." + } + }, + "type": "object" + }, "DsRecord": { "description": "Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.", "id": "DsRecord", @@ -1204,6 +1303,24 @@ }, "type": "object" }, + "ImportDomainRequest": { + "description": "Request for the `ImportDomain` method.", + "id": "ImportDomainRequest", + "properties": { + "domainName": { + "description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of labels associated with the `Registration`.", + "type": "object" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1449,7 +1566,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -1487,7 +1604,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { @@ -1623,7 +1740,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`.", + "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.", "id": "Registration", "properties": { "contactSettings": { @@ -1689,6 +1806,23 @@ "description": "Output only. Pending contact settings for the `Registration`. Updates to the `contact_settings` field that change its `registrant_contact` or `privacy` fields require email confirmation by the `registrant_contact` before taking effect. This field is set only if there are pending updates to the `contact_settings` that have not been confirmed. To confirm the changes, the `registrant_contact` must follow the instructions in the email they receive.", "readOnly": true }, + "registerFailureReason": { + "description": "Output only. The reason the domain registration failed. Only set for domains in REGISTRATION_FAILED state.", + "enum": [ + "REGISTER_FAILURE_REASON_UNSPECIFIED", + "REGISTER_FAILURE_REASON_UNKNOWN", + "DOMAIN_NOT_AVAILABLE", + "INVALID_CONTACTS" + ], + "enumDescriptions": [ + "Register failure unspecified.", + "Registration failed for an unknown reason.", + "The domain is not available for registration.", + "The provided contact information was rejected." + ], + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. The state of the `Registration`", "enum": [ @@ -1697,6 +1831,7 @@ "REGISTRATION_FAILED", "TRANSFER_PENDING", "TRANSFER_FAILED", + "IMPORT_PENDING", "ACTIVE", "SUSPENDED", "EXPORTED" @@ -1707,6 +1842,7 @@ "The domain registration failed. You can delete resources in this state to allow registration to be retried.", "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 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." @@ -1733,6 +1869,37 @@ }, "readOnly": true, "type": "array" + }, + "transferFailureReason": { + "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "enum": [ + "TRANSFER_FAILURE_REASON_UNSPECIFIED", + "TRANSFER_FAILURE_REASON_UNKNOWN", + "EMAIL_CONFIRMATION_FAILURE", + "DOMAIN_NOT_REGISTERED", + "DOMAIN_HAS_TRANSFER_LOCK", + "INVALID_AUTHORIZATION_CODE", + "TRANSFER_CANCELLED", + "TRANSFER_REJECTED", + "INVALID_REGISTRANT_EMAIL_ADDRESS", + "DOMAIN_NOT_ELIGIBLE_FOR_TRANSFER", + "TRANSFER_ALREADY_PENDING" + ], + "enumDescriptions": [ + "Transfer failure unspecified.", + "Transfer failed for an unknown reason.", + "An email confirmation sent to the user was rejected or expired.", + "The domain is available for registration.", + "The domain has a transfer lock with its current registrar which must be removed prior to transfer.", + "The authorization code entered is not valid.", + "The transfer was cancelled by the domain owner, current registrar, or TLD registry.", + "The transfer was rejected by the current registrar. Contact the current registrar for more information.", + "The registrant email address cannot be parsed from the domain's current public contact data.", + "The domain is not eligible for transfer due requirements imposed by the current registrar or TLD registry.", + "Another transfer is already pending for this domain. The existing transfer attempt must expire or be cancelled in order to proceed." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1743,6 +1910,24 @@ "properties": {}, "type": "object" }, + "RetrieveImportableDomainsResponse": { + "description": "Response for the `RetrieveImportableDomains` method.", + "id": "RetrieveImportableDomainsResponse", + "properties": { + "domains": { + "description": "A list of domains that the calling user manages in Google Domains.", + "items": { + "$ref": "Domain" + }, + "type": "array" + }, + "nextPageToken": { + "description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "RetrieveRegisterParametersResponse": { "description": "Response for the `RetrieveRegisterParameters` method.", "id": "RetrieveRegisterParametersResponse", @@ -1785,7 +1970,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1827,7 +2012,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1896,6 +2081,10 @@ "description": "The registrar that currently manages the domain.", "type": "string" }, + "currentRegistrarUri": { + "description": "The URL of the registrar that currently manages the domain.", + "type": "string" + }, "domainName": { "description": "The domain name. Unicode domain names are expressed in Punycode format.", "type": "string" diff --git a/etc/api/domains/v1beta1/domains-api.json b/etc/api/domains/v1beta1/domains-api.json index e2639b6978..795ddf227c 100644 --- a/etc/api/domains/v1beta1/domains-api.json +++ b/etc/api/domains/v1beta1/domains-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -427,7 +427,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -442,6 +442,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:import", + "httpMethod": "POST", + "id": "domains.projects.locations.registrations.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the Registration. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/registrations:import", + "request": { + "$ref": "ImportDomainRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists the `Registration` resources in a project.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations", @@ -598,6 +626,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", + "httpMethod": "GET", + "id": "domains.projects.locations.registrations.retrieveImportableDomains", + "parameterOrder": [ + "location" + ], + "parameters": { + "location": { + "description": "Required. The location. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Maximum number of results to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "When set to the `next_page_token` from a prior response, provides the next page of results.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+location}/registrations:retrieveImportableDomains", + "response": { + "$ref": "RetrieveImportableDomainsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "retrieveRegisterParameters": { "description": "Gets parameters needed to register a new domain name, including price and up-to-date availability. Use the returned values to call `RegisterDomain`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveRegisterParameters", @@ -629,7 +693,7 @@ ] }, "retrieveTransferParameters": { - "description": "Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. Use the returned values to call `TransferDomain`.", + "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`.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", "httpMethod": "GET", "id": "domains.projects.locations.registrations.retrieveTransferParameters", @@ -698,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -726,7 +790,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/registrations/[^/]+$", "required": true, @@ -745,7 +809,7 @@ ] }, "transfer": { - "description": "Transfers a domain name from another registrar to Cloud Domains. For domains managed by Google Domains, transferring to Cloud Domains is not supported. 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.", + "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.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations:transfer", "httpMethod": "POST", "id": "domains.projects.locations.registrations.transfer", @@ -779,11 +843,11 @@ } } }, - "revision": "20220128", + "revision": "20230105", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -850,7 +914,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1035,6 +1099,41 @@ }, "type": "object" }, + "Domain": { + "description": "A domain that the calling user manages in Google Domains.", + "id": "Domain", + "properties": { + "domainName": { + "description": "The domain name. Unicode domain names are expressed in Punycode format.", + "type": "string" + }, + "resourceState": { + "description": "The state of this domain as a `Registration` resource.", + "enum": [ + "RESOURCE_STATE_UNSPECIFIED", + "IMPORTABLE", + "UNSUPPORTED", + "SUSPENDED", + "EXPIRED", + "DELETED" + ], + "enumDescriptions": [ + "The assessment is undefined.", + "A `Registration` resource can be created for this domain by calling `ImportDomain`.", + "A `Registration` resource cannot be created for this domain because it is not supported by Cloud Domains; for example, the top-level domain is not supported or the registry charges non-standard pricing for yearly renewals.", + "A `Registration` resource cannot be created for this domain because it is suspended and needs to be resolved with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is expired and needs to be renewed with Google Domains.", + "A `Registration` resource cannot be created for this domain because it is deleted, but it may be possible to restore it with Google Domains." + ], + "type": "string" + }, + "yearlyPrice": { + "$ref": "Money", + "description": "Price to renew the domain for one year. Only set when `resource_state` is `IMPORTABLE`." + } + }, + "type": "object" + }, "DsRecord": { "description": "Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.", "id": "DsRecord", @@ -1204,6 +1303,24 @@ }, "type": "object" }, + "ImportDomainRequest": { + "description": "Request for the `ImportDomain` method.", + "id": "ImportDomainRequest", + "properties": { + "domainName": { + "description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of labels associated with the `Registration`.", + "type": "object" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1449,7 +1566,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -1487,7 +1604,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { @@ -1623,7 +1740,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`.", + "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.", "id": "Registration", "properties": { "contactSettings": { @@ -1689,6 +1806,23 @@ "description": "Output only. Pending contact settings for the `Registration`. Updates to the `contact_settings` field that change its `registrant_contact` or `privacy` fields require email confirmation by the `registrant_contact` before taking effect. This field is set only if there are pending updates to the `contact_settings` that have not been confirmed. To confirm the changes, the `registrant_contact` must follow the instructions in the email they receive.", "readOnly": true }, + "registerFailureReason": { + "description": "Output only. The reason the domain registration failed. Only set for domains in REGISTRATION_FAILED state.", + "enum": [ + "REGISTER_FAILURE_REASON_UNSPECIFIED", + "REGISTER_FAILURE_REASON_UNKNOWN", + "DOMAIN_NOT_AVAILABLE", + "INVALID_CONTACTS" + ], + "enumDescriptions": [ + "Register failure unspecified.", + "Registration failed for an unknown reason.", + "The domain is not available for registration.", + "The provided contact information was rejected." + ], + "readOnly": true, + "type": "string" + }, "state": { "description": "Output only. The state of the `Registration`", "enum": [ @@ -1697,6 +1831,7 @@ "REGISTRATION_FAILED", "TRANSFER_PENDING", "TRANSFER_FAILED", + "IMPORT_PENDING", "ACTIVE", "SUSPENDED", "EXPORTED" @@ -1707,6 +1842,7 @@ "The domain registration failed. You can delete resources in this state to allow registration to be retried.", "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 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." @@ -1733,6 +1869,37 @@ }, "readOnly": true, "type": "array" + }, + "transferFailureReason": { + "description": "Output only. The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "enum": [ + "TRANSFER_FAILURE_REASON_UNSPECIFIED", + "TRANSFER_FAILURE_REASON_UNKNOWN", + "EMAIL_CONFIRMATION_FAILURE", + "DOMAIN_NOT_REGISTERED", + "DOMAIN_HAS_TRANSFER_LOCK", + "INVALID_AUTHORIZATION_CODE", + "TRANSFER_CANCELLED", + "TRANSFER_REJECTED", + "INVALID_REGISTRANT_EMAIL_ADDRESS", + "DOMAIN_NOT_ELIGIBLE_FOR_TRANSFER", + "TRANSFER_ALREADY_PENDING" + ], + "enumDescriptions": [ + "Transfer failure unspecified.", + "Transfer failed for an unknown reason.", + "An email confirmation sent to the user was rejected or expired.", + "The domain is available for registration.", + "The domain has a transfer lock with its current registrar which must be removed prior to transfer.", + "The authorization code entered is not valid.", + "The transfer was cancelled by the domain owner, current registrar, or TLD registry.", + "The transfer was rejected by the current registrar. Contact the current registrar for more information.", + "The registrant email address cannot be parsed from the domain's current public contact data.", + "The domain is not eligible for transfer due requirements imposed by the current registrar or TLD registry.", + "Another transfer is already pending for this domain. The existing transfer attempt must expire or be cancelled in order to proceed." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1743,6 +1910,24 @@ "properties": {}, "type": "object" }, + "RetrieveImportableDomainsResponse": { + "description": "Response for the `RetrieveImportableDomains` method.", + "id": "RetrieveImportableDomainsResponse", + "properties": { + "domains": { + "description": "A list of domains that the calling user manages in Google Domains.", + "items": { + "$ref": "Domain" + }, + "type": "array" + }, + "nextPageToken": { + "description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "RetrieveRegisterParametersResponse": { "description": "Response for the `RetrieveRegisterParameters` method.", "id": "RetrieveRegisterParametersResponse", @@ -1785,7 +1970,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1827,7 +2012,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1896,6 +2081,10 @@ "description": "The registrar that currently manages the domain.", "type": "string" }, + "currentRegistrarUri": { + "description": "The URL of the registrar that currently manages the domain.", + "type": "string" + }, "domainName": { "description": "The domain name. Unicode domain names are expressed in Punycode format.", "type": "string" diff --git a/etc/api/domainsrdap/v1/domainsrdap-api.json b/etc/api/domainsrdap/v1/domainsrdap-api.json index ac4dea1b7e..e2c0e67cae 100644 --- a/etc/api/domainsrdap/v1/domainsrdap-api.json +++ b/etc/api/domainsrdap/v1/domainsrdap-api.json @@ -289,7 +289,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://domainsrdap.googleapis.com/", "schemas": { "HttpBody": { diff --git a/etc/api/doubleclickbidmanager/v1.1/doubleclickbidmanager-api.json b/etc/api/doubleclickbidmanager/v1.1/doubleclickbidmanager-api.json index cb8fbd9273..b7d1da5e86 100644 --- a/etc/api/doubleclickbidmanager/v1.1/doubleclickbidmanager-api.json +++ b/etc/api/doubleclickbidmanager/v1.1/doubleclickbidmanager-api.json @@ -280,7 +280,7 @@ } } }, - "revision": "20220302", + "revision": "20230117", "rootUrl": "https://doubleclickbidmanager.googleapis.com/", "schemas": { "ChannelGrouping": { @@ -628,7 +628,9 @@ "FILTER_VERIFICATION_AUDIBILITY_START", "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", "FILTER_MEDIA_TYPE", - "FILTER_AUDIO_FEED_TYPE_NAME" + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" ], "enumDescriptions": [ "", @@ -922,6 +924,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -1298,7 +1302,9 @@ "FILTER_VERIFICATION_AUDIBILITY_START", "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", "FILTER_MEDIA_TYPE", - "FILTER_AUDIO_FEED_TYPE_NAME" + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" ], "enumDescriptions": [ "", @@ -1592,6 +1598,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -1986,7 +1994,6 @@ "METRIC_INVALID_CLICKS", "METRIC_INVALID_IMPRESSIONS", "METRIC_INVALID_TRACKED_ADS", - "METRIC_MEDIA_COST_ADVERTISER_CURRENCY_PER_STORE_VISIT_ADX_ONLY", "METRIC_MIDPOINT_AUDIO", "METRIC_ORIGINAL_AUDIENCE_FREQUENCY", "METRIC_PAUSES_AUDIO", @@ -2002,11 +2009,9 @@ "METRIC_REFUND_BILLABLE_COST_ADVERTISER_CURRENCY", "METRIC_REFUND_MEDIA_COST_ADVERTISER_CURRENCY", "METRIC_REFUND_PLATFORM_FEE_ADVERTISER_CURRENCY", - "METRIC_REVENUE_ADVERTISER_CURRENCY_PER_STORE_VISIT_ADX_ONLY", "METRIC_RICH_MEDIA_ENGAGEMENTS", "METRIC_STARTS_AUDIO", "METRIC_STOPS_AUDIO", - "METRIC_STORE_VISITS_ADX_ONLY", "METRIC_STORE_VISIT_CONVERSIONS", "METRIC_THIRD_QUARTILE_AUDIO", "METRIC_TIMERS", @@ -2015,7 +2020,6 @@ "METRIC_TOTAL_DISPLAY_TIME", "METRIC_TOTAL_IMPRESSION_CUSTOM_VALUE", "METRIC_TOTAL_INTERACTION_TIME", - "METRIC_TOTAL_MEDIA_COST_ADVERTISER_CURRENCY_PER_STORE_VISIT_ADX_ONLY", "METRIC_TOTAL_USERS", "METRIC_TRACKED_ADS", "METRIC_TRUEVIEW_GENERAL_INVALID_TRAFFIC_GIVT_VIEWS", @@ -2074,7 +2078,18 @@ "METRIC_WIN_LOSS_DEAL_TARGETED_IMPRESSIONS", "METRIC_WIN_LOSS_LINEITEM_TARGETED_IMPRESSIONS", "METRIC_VERIFICATION_VIDEO_PLAYER_SIZE_MEASURABLE_IMPRESSIONS", - "METRIC_TRUEVIEW_ALL_AD_SEQUENCE_IMPRESSIONS" + "METRIC_TRUEVIEW_ALL_AD_SEQUENCE_IMPRESSIONS", + "METRIC_IMPRESSIONS_COVIEWED", + "METRIC_UNIQUE_REACH_IMPRESSION_REACH_COVIEWED", + "METRIC_UNIQUE_REACH_TOTAL_REACH_COVIEWED", + "METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY_COVIEWED", + "METRIC_GRP_CORRECTED_IMPRESSIONS_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_BY_DEMO_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_AVERAGE_IMPRESSION_FREQUENCY_BY_DEMO_COVIEWED", + "METRIC_TARGET_RATING_POINTS_COVIEWED", + "METRIC_DEMO_COMPOSITION_IMPRESSION_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_SHARE_PERCENT_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_PERCENT_COVIEWED" ], "enumDescriptions": [ "", @@ -2545,6 +2560,13 @@ "", "", "", + "", + "", + "", + "", + "", + "", + "", "" ], "type": "string" @@ -2978,7 +3000,9 @@ "FILTER_VERIFICATION_AUDIBILITY_START", "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", "FILTER_MEDIA_TYPE", - "FILTER_AUDIO_FEED_TYPE_NAME" + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" ], "enumDescriptions": [ "", @@ -3272,6 +3296,8 @@ "", "", "", + "", + "", "" ], "type": "string" diff --git a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json index 7fb8a0a9f3..9545dfd4d3 100644 --- a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json +++ b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json @@ -159,6 +159,11 @@ "location": "query", "type": "string" }, + "customerId": { + "description": "Customer ID of a client account in the new Search Ads 360 experience.", + "location": "query", + "type": "string" + }, "endDate": { "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", "format": "int32", @@ -209,6 +214,110 @@ "https://www.googleapis.com/auth/doubleclicksearch" ] }, + "getByCustomerId": { + "description": "Retrieves a list of conversions from a DoubleClick Search engine account.", + "flatPath": "doubleclicksearch/v2/customer/{customerId}/conversion", + "httpMethod": "GET", + "id": "doubleclicksearch.conversion.getByCustomerId", + "parameterOrder": [ + "customerId", + "endDate", + "rowCount", + "startDate", + "startRow" + ], + "parameters": { + "adGroupId": { + "description": "Numeric ID of the ad group.", + "format": "int64", + "location": "query", + "type": "string" + }, + "adId": { + "description": "Numeric ID of the ad.", + "format": "int64", + "location": "query", + "type": "string" + }, + "advertiserId": { + "description": "Numeric ID of the advertiser.", + "format": "int64", + "location": "query", + "type": "string" + }, + "agencyId": { + "description": "Numeric ID of the agency.", + "format": "int64", + "location": "query", + "type": "string" + }, + "campaignId": { + "description": "Numeric ID of the campaign.", + "format": "int64", + "location": "query", + "type": "string" + }, + "criterionId": { + "description": "Numeric ID of the criterion.", + "format": "int64", + "location": "query", + "type": "string" + }, + "customerId": { + "description": "Customer ID of a client account in the new Search Ads 360 experience.", + "location": "path", + "required": true, + "type": "string" + }, + "endDate": { + "description": "Last date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "format": "int32", + "location": "query", + "maximum": "99991231", + "minimum": "20091101", + "required": true, + "type": "integer" + }, + "engineAccountId": { + "description": "Numeric ID of the engine account.", + "format": "int64", + "location": "query", + "type": "string" + }, + "rowCount": { + "description": "The number of conversions to return per call.", + "format": "int32", + "location": "query", + "maximum": "1000", + "minimum": "1", + "required": true, + "type": "integer" + }, + "startDate": { + "description": "First date (inclusive) on which to retrieve conversions. Format is yyyymmdd.", + "format": "int32", + "location": "query", + "maximum": "99991231", + "minimum": "20091101", + "required": true, + "type": "integer" + }, + "startRow": { + "description": "The 0-based starting index for retrieving conversions results.", + "format": "uint32", + "location": "query", + "required": true, + "type": "integer" + } + }, + "path": "doubleclicksearch/v2/customer/{customerId}/conversion", + "response": { + "$ref": "ConversionList" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ] + }, "insert": { "description": "Inserts a batch of new conversions into DoubleClick Search.", "flatPath": "doubleclicksearch/v2/conversion", @@ -341,6 +450,41 @@ "supportsMediaDownload": true, "useMediaDownloadService": true }, + "getIdMappingFile": { + "description": "Downloads a csv file(encoded in UTF-8) that contains ID mappings between legacy SA360 and new SA360. The file includes all children entities of the given advertiser(e.g. engine accounts, campaigns, ad groups, etc.) that exist in both legacy SA360 and new SA360.", + "flatPath": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/idmapping", + "httpMethod": "GET", + "id": "doubleclicksearch.reports.getIdMappingFile", + "parameterOrder": [ + "agencyId", + "advertiserId" + ], + "parameters": { + "advertiserId": { + "description": "Legacy SA360 advertiser ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "agencyId": { + "description": "Legacy SA360 agency ID.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "doubleclicksearch/v2/agency/{agencyId}/advertiser/{advertiserId}/idmapping", + "response": { + "$ref": "IdMappingFile" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclicksearch" + ], + "supportsMediaDownload": true, + "useMediaDownloadService": true + }, "request": { "description": "Inserts a report request into the reporting system.", "flatPath": "doubleclicksearch/v2/reports", @@ -399,7 +543,7 @@ } } }, - "revision": "20220301", + "revision": "20230118", "rootUrl": "https://doubleclicksearch.googleapis.com/", "schemas": { "Availability": { @@ -436,6 +580,10 @@ "format": "int64", "type": "string" }, + "customerId": { + "description": "Customer ID of a client account in the new Search Ads 360 experience.", + "type": "string" + }, "segmentationId": { "description": "The numeric segmentation identifier (for example, DoubleClick Search Floodlight activity ID).", "format": "int64", @@ -549,6 +697,10 @@ }, "type": "array" }, + "customerId": { + "description": "Customer ID of a client account in the new Search Ads 360 experience.", + "type": "string" + }, "deviceType": { "description": "The type of device on which the conversion occurred.", "type": "string" @@ -680,6 +832,12 @@ }, "type": "object" }, + "IdMappingFile": { + "description": "File returned to https://developers.google.com/search-ads/v2/reference/reports/getIdMappingFile.", + "id": "IdMappingFile", + "properties": {}, + "type": "object" + }, "Report": { "description": "A DoubleClick Search report. This object contains the report request, some report metadata such as currency code, and the generated report rows or report files.", "id": "Report", diff --git a/etc/api/drive/v2/drive-api.json b/etc/api/drive/v2/drive-api.json index 95229ac24a..a8aed05f73 100644 --- a/etc/api/drive/v2/drive-api.json +++ b/etc/api/drive/v2/drive-api.json @@ -38,7 +38,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/PaSrKCCNSmaLx57wbfYZy_-0zZ0\"", + "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" @@ -327,6 +327,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -430,6 +435,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -932,11 +942,23 @@ "driveId" ], "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.", + "location": "query", + "type": "boolean" + }, "driveId": { "description": "The ID of the shared drive.", "location": "path", "required": true, "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" } }, "path": "drives/{driveId}", @@ -1148,6 +1170,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1366,6 +1393,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1458,6 +1490,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -1573,6 +1610,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -1658,6 +1700,75 @@ "https://www.googleapis.com/auth/drive.readonly" ] }, + "listLabels": { + "description": "Lists the labels on a file.", + "httpMethod": "GET", + "id": "drive.files.listLabels", + "parameterOrder": [ + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of 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.", + "format": "int32", + "location": "query", + "maximum": "100", + "minimum": "1", + "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.", + "location": "query", + "type": "string" + } + }, + "path": "files/{fileId}/listLabels", + "response": { + "$ref": "LabelList" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "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" + ] + }, + "modifyLabels": { + "description": "Modifies the set of labels on a file.", + "httpMethod": "POST", + "id": "drive.files.modifyLabels", + "parameterOrder": [ + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of the file for which the labels are modified.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "files/{fileId}/modifyLabels", + "request": { + "$ref": "ModifyLabelsRequest" + }, + "response": { + "$ref": "ModifyLabelsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.metadata" + ] + }, "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.", "httpMethod": "PATCH", @@ -1689,6 +1800,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1814,6 +1930,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1858,6 +1979,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1901,6 +2027,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1977,6 +2108,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -2090,7 +2226,7 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribe to changes on a file", + "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.", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -2109,6 +2245,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -3527,7 +3668,7 @@ } } }, - "revision": "20220225", + "revision": "20230115", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -4519,6 +4660,10 @@ "description": "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.", + "type": "boolean" + }, "canShare": { "description": "Whether the current user can share files or folders in this shared drive.", "type": "boolean" @@ -4704,6 +4849,10 @@ "description": "Whether the current user can modify restrictions on content of this file.", "type": "boolean" }, + "canModifyLabels": { + "description": "Whether the current user can modify the labels on this file.", + "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.", "type": "boolean" @@ -4748,8 +4897,12 @@ "description": "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.", + "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 is not a folder, can be read.", + "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.", "type": "boolean" }, "canReadTeamDrive": { @@ -4816,7 +4969,7 @@ "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 is not populated for Docs Editors or shortcut files.", + "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.", "type": "string" }, "driveId": { @@ -4849,11 +5002,11 @@ "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 is not populated for Docs Editors or shortcut files.", + "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.", "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 is not populated for shortcut files.", + "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.", "format": "int64", "type": "string" }, @@ -4862,7 +5015,7 @@ "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 is not populated for Docs Editors or shortcut files.", + "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.", "type": "string" }, "hasAugmentedPermissions": { @@ -4874,7 +5027,7 @@ "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 is not populated for Docs Editors or shortcut files.", + "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.", "type": "string" }, "iconLink": { @@ -5003,7 +5156,7 @@ "type": "object" }, "indexableText": { - "description": "Indexable text attributes for the file (can only be written)", + "description": "Indexable text attributes for the file (can only be written). For more information, see Manage file metadata.", "properties": { "text": { "description": "The text to be indexed for this file.", @@ -5021,6 +5174,19 @@ "description": "The type of file. This is always drive#file.", "type": "string" }, + "labelInfo": { + "description": "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.", + "items": { + "$ref": "Label" + }, + "type": "array" + } + }, + "type": "object" + }, "labels": { "description": "A group of labels for the file.", "properties": { @@ -5084,7 +5250,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 is not populated for Docs Editors or shortcut files.", + "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.", "type": "string" }, "mimeType": { @@ -5171,6 +5337,14 @@ "description": "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.", + "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.", + "type": "string" + }, "shareable": { "description": "Deprecated: use capabilities/canShare.", "type": "boolean" @@ -5361,6 +5535,240 @@ }, "type": "object" }, + "Label": { + "description": "Representation of a label and its fields.", + "id": "Label", + "properties": { + "fields": { + "additionalProperties": { + "$ref": "LabelField" + }, + "description": "A map of the label's fields keyed by the field ID.", + "type": "object" + }, + "id": { + "description": "The ID of the label.", + "type": "string" + }, + "kind": { + "default": "drive#label", + "description": "This is always drive#label", + "type": "string" + }, + "revisionId": { + "description": "The revision ID of the label.", + "type": "string" + } + }, + "type": "object" + }, + "LabelField": { + "description": "Representation of a label field.", + "id": "LabelField", + "properties": { + "dateString": { + "description": "Only present if valueType is dateString. RFC 3339 formatted date: YYYY-MM-DD.", + "items": { + "format": "date", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The identifier of this field.", + "type": "string" + }, + "integer": { + "description": "Only present if valueType is integer.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "drive#labelField", + "description": "This is always drive#labelField.", + "type": "string" + }, + "selection": { + "description": "Only present if valueType is selection.", + "items": { + "type": "string" + }, + "type": "array" + }, + "text": { + "description": "Only present if valueType is text.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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", + "type": "string" + } + }, + "type": "object" + }, + "LabelFieldModification": { + "description": "A modification to a label's field.", + "id": "LabelFieldModification", + "properties": { + "fieldId": { + "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.", + "items": { + "format": "date", + "type": "string" + }, + "type": "array" + }, + "setIntegerValues": { + "description": "Replaces an integer field with these new values.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "setSelectionValues": { + "description": "Replaces a selection field with these new values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "setTextValues": { + "description": "Replaces a text field with these new values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "setUserValues": { + "description": "Replaces a user field with these new values. The values must be valid email addresses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unsetValues": { + "description": "Unsets the values for this field.", + "type": "boolean" + } + }, + "type": "object" + }, + "LabelList": { + "description": "A list of labels.", + "id": "LabelList", + "properties": { + "items": { + "description": "The list of labels.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "kind": { + "default": "drive#labelList", + "description": "This is always drive#labelList", + "type": "string" + }, + "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.", + "type": "string" + } + }, + "type": "object" + }, + "LabelModification": { + "description": "A modification to a label on a file. A LabelModification can be used to apply a label to a file, update an existing label on a file, or remove a label from a file.", + "id": "LabelModification", + "properties": { + "fieldModifications": { + "description": "The list of modifications to this label's fields.", + "items": { + "$ref": "LabelFieldModification" + }, + "type": "array" + }, + "kind": { + "default": "drive#labelModification", + "description": "This is always drive#labelModification.", + "type": "string" + }, + "labelId": { + "annotations": { + "required": [ + "drive.files.modifyLabels" + ] + }, + "description": "The ID of the label to modify.", + "type": "string" + }, + "removeLabel": { + "description": "If true, the label will be removed from the file.", + "type": "boolean" + } + }, + "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.", + "id": "ModifyLabelsRequest", + "properties": { + "kind": { + "default": "drive#modifyLabelsRequest", + "description": "This is always drive#modifyLabelsRequest", + "type": "string" + }, + "labelModifications": { + "description": "The list of modifications to apply to the labels on the file.", + "items": { + "$ref": "LabelModification" + }, + "type": "array" + } + }, + "type": "object" + }, + "ModifyLabelsResponse": { + "description": "Response to a ModifyLabels request. This contains only those labels which were added or updated by the request.", + "id": "ModifyLabelsResponse", + "properties": { + "kind": { + "default": "drive#modifyLabelsResponse", + "description": "This is always drive#modifyLabelsResponse", + "type": "string" + }, + "modifiedLabels": { + "description": "The list of labels which were added or updated by the request.", + "items": { + "$ref": "Label" + }, + "type": "array" + } + }, + "type": "object" + }, "ParentList": { "description": "A list of a file's parents.", "id": "ParentList", @@ -5453,7 +5861,7 @@ "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 \n- The date can only be set on drive.permissions.update or drive.permissions.patch requests", + "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", "format": "date-time", "type": "string" }, @@ -5927,6 +6335,10 @@ "description": "Whether the current user can rename this Team Drive.", "type": "boolean" }, + "canResetTeamDriveRestrictions": { + "description": "Whether the current user can reset the Team Drive restrictions to defaults.", + "type": "boolean" + }, "canShare": { "description": "Whether the current user can share files or folders in this Team Drive.", "type": "boolean" diff --git a/etc/api/drive/v3/drive-api.json b/etc/api/drive/v3/drive-api.json index f7cc1eb7fd..2751772418 100644 --- a/etc/api/drive/v3/drive-api.json +++ b/etc/api/drive/v3/drive-api.json @@ -35,7 +35,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"uWj2hSb4GVjzdDlAnRd2gbM1ZQ8/-mhqfu_gCvSknSoZ4b0_9VmlIiM\"", + "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" @@ -183,6 +183,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -223,7 +228,7 @@ }, "spaces": { "default": "drive", - "description": "A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.", "location": "query", "type": "string" }, @@ -285,6 +290,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -325,7 +335,7 @@ }, "spaces": { "default": "drive", - "description": "A comma-separated list of spaces to query within the user corpus. Supported values are 'drive', 'appDataFolder' and 'photos'.", + "description": "A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.", "location": "query", "type": "string" }, @@ -394,7 +404,7 @@ "comments": { "methods": { "create": { - "description": "Creates a new comment on a file.", + "description": "Creates a comment on a file.", "httpMethod": "POST", "id": "drive.comments.create", "parameterOrder": [ @@ -575,7 +585,7 @@ "drives": { "methods": { "create": { - "description": "Creates a new shared drive.", + "description": "Creates a shared drive.", "httpMethod": "POST", "id": "drive.drives.create", "parameterOrder": [ @@ -608,11 +618,23 @@ "driveId" ], "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.", + "location": "query", + "type": "boolean" + }, "driveId": { "description": "The ID of the shared drive.", "location": "path", "required": true, "type": "string" + }, + "useDomainAdminAccess": { + "default": "false", + "description": "Issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs.", + "location": "query", + "type": "boolean" } }, "path": "drives/{driveId}", @@ -798,6 +820,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -842,7 +869,7 @@ ] }, "create": { - "description": "Creates a new file.", + "description": "Creates a file.", "httpMethod": "POST", "id": "drive.files.create", "mediaUpload": { @@ -874,6 +901,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -1068,6 +1100,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1137,6 +1174,11 @@ "location": "query", "type": "boolean" }, + "includeLabels": { + "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.", "location": "query", @@ -1174,7 +1216,7 @@ }, "spaces": { "default": "drive", - "description": "A comma-separated list of spaces to query within the corpus. Supported values are 'drive' and 'appDataFolder'.", + "description": "A comma-separated list of spaces to query within the corpora. Supported values are 'drive' and 'appDataFolder'.", "location": "query", "type": "string" }, @@ -1210,6 +1252,75 @@ "https://www.googleapis.com/auth/drive.readonly" ] }, + "listLabels": { + "description": "Lists the labels on a file.", + "httpMethod": "GET", + "id": "drive.files.listLabels", + "parameterOrder": [ + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of 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.", + "format": "int32", + "location": "query", + "maximum": "100", + "minimum": "1", + "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.", + "location": "query", + "type": "string" + } + }, + "path": "files/{fileId}/listLabels", + "response": { + "$ref": "LabelList" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "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" + ] + }, + "modifyLabels": { + "description": "Modifies the set of labels on a file.", + "httpMethod": "POST", + "id": "drive.files.modifyLabels", + "parameterOrder": [ + "fileId" + ], + "parameters": { + "fileId": { + "description": "The ID of the file for which the labels are modified.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "files/{fileId}/modifyLabels", + "request": { + "$ref": "ModifyLabelsRequest" + }, + "response": { + "$ref": "ModifyLabelsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.metadata" + ] + }, "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.", "httpMethod": "PATCH", @@ -1251,6 +1362,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1308,7 +1424,7 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribes to changes to a file. While you can establish a channel forchanges 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. 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.", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -1327,6 +1443,11 @@ "required": true, "type": "string" }, + "includeLabels": { + "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.", "location": "query", @@ -1675,7 +1796,7 @@ "replies": { "methods": { "create": { - "description": "Creates a new reply to a comment.", + "description": "Creates a reply to a comment.", "httpMethod": "POST", "id": "drive.replies.create", "parameterOrder": [ @@ -2191,7 +2312,7 @@ } } }, - "revision": "20220225", + "revision": "20230115", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { @@ -2691,6 +2812,10 @@ "description": "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.", + "type": "boolean" + }, "canShare": { "description": "Whether the current user can share files or folders in this shared drive.", "type": "boolean" @@ -2867,6 +2992,10 @@ "description": "Whether the current user can modify restrictions on content of this file.", "type": "boolean" }, + "canModifyLabels": { + "description": "Whether the current user can modify the labels on this file.", + "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.", "type": "boolean" @@ -2911,8 +3040,12 @@ "description": "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.", + "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 is not a folder, can be read.", + "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.", "type": "boolean" }, "canReadTeamDrive": { @@ -2954,7 +3087,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 128KB in length and may contain HTML elements.", + "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.", "type": "string" }, "thumbnail": { @@ -3021,7 +3154,7 @@ "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 is not cleared if the new name does not contain a valid extension.", + "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.", "type": "string" }, "hasAugmentedPermissions": { @@ -3170,6 +3303,19 @@ "description": "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.", + "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.", + "items": { + "$ref": "Label" + }, + "type": "array" + } + }, + "type": "object" + }, "lastModifyingUser": { "$ref": "User", "description": "The last user to modify the file." @@ -3266,6 +3412,14 @@ "description": "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.", + "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.", + "type": "string" + }, "shared": { "description": "Whether the file has been shared. Not populated for items in shared drives.", "type": "boolean" @@ -3443,6 +3597,240 @@ }, "type": "object" }, + "Label": { + "description": "Representation of a label and its fields.", + "id": "Label", + "properties": { + "fields": { + "additionalProperties": { + "$ref": "LabelField" + }, + "description": "A map of the label's fields keyed by the field ID.", + "type": "object" + }, + "id": { + "description": "The ID of the label.", + "type": "string" + }, + "kind": { + "default": "drive#label", + "description": "This is always drive#label", + "type": "string" + }, + "revisionId": { + "description": "The revision ID of the label.", + "type": "string" + } + }, + "type": "object" + }, + "LabelField": { + "description": "Representation of a label field.", + "id": "LabelField", + "properties": { + "dateString": { + "description": "Only present if valueType is dateString. RFC 3339 formatted date: YYYY-MM-DD.", + "items": { + "format": "date", + "type": "string" + }, + "type": "array" + }, + "id": { + "description": "The identifier of this field.", + "type": "string" + }, + "integer": { + "description": "Only present if valueType is integer.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "kind": { + "default": "drive#labelField", + "description": "This is always drive#labelField.", + "type": "string" + }, + "selection": { + "description": "Only present if valueType is selection.", + "items": { + "type": "string" + }, + "type": "array" + }, + "text": { + "description": "Only present if valueType is text.", + "items": { + "type": "string" + }, + "type": "array" + }, + "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", + "type": "string" + } + }, + "type": "object" + }, + "LabelFieldModification": { + "description": "A modification to a label's field.", + "id": "LabelFieldModification", + "properties": { + "fieldId": { + "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.", + "items": { + "format": "date", + "type": "string" + }, + "type": "array" + }, + "setIntegerValues": { + "description": "Replaces an integer field with these new values.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "setSelectionValues": { + "description": "Replaces a selection field with these new values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "setTextValues": { + "description": "Replaces a text field with these new values.", + "items": { + "type": "string" + }, + "type": "array" + }, + "setUserValues": { + "description": "Replaces a user field with these new values. The values must be valid email addresses.", + "items": { + "type": "string" + }, + "type": "array" + }, + "unsetValues": { + "description": "Unsets the values for this field.", + "type": "boolean" + } + }, + "type": "object" + }, + "LabelList": { + "description": "A list of labels.", + "id": "LabelList", + "properties": { + "kind": { + "default": "drive#labelList", + "description": "This is always drive#labelList", + "type": "string" + }, + "labels": { + "description": "The list of labels.", + "items": { + "$ref": "Label" + }, + "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.", + "type": "string" + } + }, + "type": "object" + }, + "LabelModification": { + "description": "A modification to a label on a file. A LabelModification can be used to apply a label to a file, update an existing label on a file, or remove a label from a file.", + "id": "LabelModification", + "properties": { + "fieldModifications": { + "description": "The list of modifications to this label's fields.", + "items": { + "$ref": "LabelFieldModification" + }, + "type": "array" + }, + "kind": { + "default": "drive#labelModification", + "description": "This is always drive#labelModification.", + "type": "string" + }, + "labelId": { + "annotations": { + "required": [ + "drive.files.modifyLabels" + ] + }, + "description": "The ID of the label to modify.", + "type": "string" + }, + "removeLabel": { + "description": "If true, the label will be removed from the file.", + "type": "boolean" + } + }, + "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.", + "id": "ModifyLabelsRequest", + "properties": { + "kind": { + "default": "drive#modifyLabelsRequest", + "description": "This is always drive#modifyLabelsRequest", + "type": "string" + }, + "labelModifications": { + "description": "The list of modifications to apply to the labels on the file.", + "items": { + "$ref": "LabelModification" + }, + "type": "array" + } + }, + "type": "object" + }, + "ModifyLabelsResponse": { + "description": "Response to a ModifyLabels request. This contains only those labels which were added or updated by the request.", + "id": "ModifyLabelsResponse", + "properties": { + "kind": { + "default": "drive#modifyLabelsResponse", + "description": "This is always drive#modifyLabelsResponse", + "type": "string" + }, + "modifiedLabels": { + "description": "The list of labels which were added or updated by the request.", + "items": { + "$ref": "Label" + }, + "type": "array" + } + }, + "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.", "id": "Permission", @@ -3468,7 +3856,7 @@ "type": "string" }, "expirationTime": { - "description": "The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: \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: \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", "format": "date-time", "type": "string" }, @@ -3875,6 +4263,10 @@ "description": "Whether the current user can rename this Team Drive.", "type": "boolean" }, + "canResetTeamDriveRestrictions": { + "description": "Whether the current user can reset the Team Drive restrictions to defaults.", + "type": "boolean" + }, "canShare": { "description": "Whether the current user can share files or folders in this Team Drive.", "type": "boolean" diff --git a/etc/api/driveactivity/v2/driveactivity-api.json b/etc/api/driveactivity/v2/driveactivity-api.json index 6c15b6a151..69339d606e 100644 --- a/etc/api/driveactivity/v2/driveactivity-api.json +++ b/etc/api/driveactivity/v2/driveactivity-api.json @@ -132,7 +132,7 @@ } } }, - "revision": "20220301", + "revision": "20230122", "rootUrl": "https://driveactivity.googleapis.com/", "schemas": { "Action": { @@ -167,6 +167,10 @@ "description": "Data describing the type and additional information of an action.", "id": "ActionDetail", "properties": { + "appliedLabelChange": { + "$ref": "AppliedLabelChange", + "description": "Label was changed." + }, "comment": { "$ref": "Comment", "description": "A change about comments was made." @@ -280,6 +284,63 @@ }, "type": "object" }, + "AppliedLabelChange": { + "description": "Label changes that were made on the Target.", + "id": "AppliedLabelChange", + "properties": { + "changes": { + "description": "Changes that were made to the Label on the Target.", + "items": { + "$ref": "AppliedLabelChangeDetail" + }, + "type": "array" + } + }, + "type": "object" + }, + "AppliedLabelChangeDetail": { + "description": "A change made to a Label on the Target.", + "id": "AppliedLabelChangeDetail", + "properties": { + "fieldChanges": { + "description": "Field Changes. Only present if `types` contains `LABEL_FIELD_VALUE_CHANGED`.", + "items": { + "$ref": "FieldValueChange" + }, + "type": "array" + }, + "label": { + "description": "The Label name representing the Label that changed. This name always contains the revision of the Label that was used when this Action occurred. The format is `labels/id@revision`.", + "type": "string" + }, + "title": { + "description": "The human-readable title of the label that changed.", + "type": "string" + }, + "types": { + "description": "The types of changes made to the Label on the Target.", + "items": { + "enum": [ + "TYPE_UNSPECIFIED", + "LABEL_ADDED", + "LABEL_REMOVED", + "LABEL_FIELD_VALUE_CHANGED", + "LABEL_APPLIED_BY_ITEM_CREATE" + ], + "enumDescriptions": [ + "The type of change to this Label is not available.", + "The identified Label was added to the Target.", + "The identified Label was removed from the Target.", + "Field values were changed on the Target.", + "The Label was applied as a side-effect of Drive item creation." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Assignment": { "description": "A comment with an assignment.", "id": "Assignment", @@ -342,7 +403,7 @@ "type": "object" }, "ConsolidationStrategy": { - "description": "How the individual activities are consolidated. A set of activities may be consolidated into one combined activity if they are related in some way, such as one actor performing the same action on multiple targets, or multiple actors performing the same action on a single target. The strategy defines the rules for which activities are related.", + "description": "How the individual activities are consolidated. If a set of activities is related they can be consolidated into one combined activity, such as one actor performing the same action on multiple targets, or multiple actors performing the same action on a single target. The strategy defines the rules for which activities are related.", "id": "ConsolidationStrategy", "properties": { "legacy": { @@ -407,6 +468,18 @@ }, "type": "object" }, + "Date": { + "description": "Wrapper for Date Field value.", + "id": "Date", + "properties": { + "value": { + "description": "Date value.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Delete": { "description": "An object was deleted.", "id": "Delete", @@ -629,6 +702,68 @@ "properties": {}, "type": "object" }, + "FieldValue": { + "description": "Contains a value of a Field.", + "id": "FieldValue", + "properties": { + "date": { + "$ref": "Date", + "description": "Date Field value." + }, + "integer": { + "$ref": "Integer", + "description": "Integer Field value." + }, + "selection": { + "$ref": "Selection", + "description": "Selection Field value." + }, + "selectionList": { + "$ref": "SelectionList", + "description": "Selection List Field value." + }, + "text": { + "$ref": "Text", + "description": "Text Field value." + }, + "textList": { + "$ref": "TextList", + "description": "Text List Field value." + }, + "user": { + "$ref": "SingleUser", + "description": "User Field value." + }, + "userList": { + "$ref": "UserList", + "description": "User List Field value." + } + }, + "type": "object" + }, + "FieldValueChange": { + "description": "Change to a Field value.", + "id": "FieldValueChange", + "properties": { + "displayName": { + "description": "The human-readable display name for this field.", + "type": "string" + }, + "fieldId": { + "description": "The ID of this field. Field IDs are unique within a Label.", + "type": "string" + }, + "newValue": { + "$ref": "FieldValue", + "description": "The value that is now set on the field. If not present, the field was cleared. At least one of {old_value|new_value} is always set." + }, + "oldValue": { + "$ref": "FieldValue", + "description": "The value that was previously set on the field. If not present, the field was newly set. At least one of {old_value|new_value} is always set." + } + }, + "type": "object" + }, "File": { "description": "This item is deprecated; please see `DriveFile` instead.", "id": "File", @@ -707,6 +842,18 @@ }, "type": "object" }, + "Integer": { + "description": "Wrapper for Integer Field value.", + "id": "Integer", + "properties": { + "value": { + "description": "Integer value.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "KnownUser": { "description": "A known user.", "id": "KnownUser", @@ -723,7 +870,7 @@ "type": "object" }, "Legacy": { - "description": "A strategy which consolidates activities using the grouping rules from the legacy V1 Activity API. Similar actions occurring within a window of time can be grouped across multiple targets (such as moving a set of files at once) or multiple actors (such as several users editing the same item). Grouping rules for this strategy are specific to each type of action.", + "description": "A strategy that consolidates activities using the grouping rules from the legacy V1 Activity API. Similar actions occurring within a window of time can be grouped across multiple targets (such as moving a set of files at once) or multiple actors (such as several users editing the same item). Grouping rules for this strategy are specific to each type of action.", "id": "Legacy", "properties": {}, "type": "object" @@ -756,7 +903,7 @@ "type": "object" }, "NoConsolidation": { - "description": "A strategy which does no consolidation of individual activities.", + "description": "A strategy that does no consolidation of individual activities.", "id": "NoConsolidation", "properties": {}, "type": "object" @@ -890,15 +1037,15 @@ "id": "QueryDriveActivityRequest", "properties": { "ancestorName": { - "description": "Return activities for this Drive folder and all children and descendants. The format is `items/ITEM_ID`.", + "description": "Return activities for this Drive folder, plus all children and descendants. The format is `items/ITEM_ID`.", "type": "string" }, "consolidationStrategy": { "$ref": "ConsolidationStrategy", - "description": "Details on how to consolidate related actions that make up the activity. If not set, then related actions are not consolidated." + "description": "Details on how to consolidate related actions that make up the activity. If not set, then related actions aren't consolidated." }, "filter": { - "description": "The filtering for items returned from this query request. The format of the filter string is a sequence of expressions, joined by an optional \"AND\", where each expression is of the form \"field operator value\". Supported fields: - `time`: Uses numerical operators on date values either in terms of milliseconds since Jan 1, 1970 or in RFC 3339 format. Examples: - `time > 1452409200000 AND time <= 1492812924310` - `time >= \"2016-01-10T01:02:03-05:00\"` - `detail.action_detail_case`: Uses the \"has\" operator (:) and either a singular value or a list of allowed action types enclosed in parentheses. Examples: - `detail.action_detail_case: RENAME` - `detail.action_detail_case:(CREATE EDIT)` - `-detail.action_detail_case:MOVE` ", + "description": "The filtering for items returned from this query request. The format of the filter string is a sequence of expressions, joined by an optional \"AND\", where each expression is of the form \"field operator value\". Supported fields: - `time`: Uses numerical operators on date values either in terms of milliseconds since Jan 1, 1970 or in RFC 3339 format. Examples: - `time > 1452409200000 AND time <= 1492812924310` - `time >= \"2016-01-10T01:02:03-05:00\"` - `detail.action_detail_case`: Uses the \"has\" operator (:) and either a singular value or a list of allowed action types enclosed in parentheses, separated by a space. To exclude a result from the response, prepend a hyphen (`-`) to the beginning of the filter string. Examples: - `detail.action_detail_case:RENAME` - `detail.action_detail_case:(CREATE RESTORE)` - `-detail.action_detail_case:MOVE` ", "type": "string" }, "itemName": { @@ -906,12 +1053,12 @@ "type": "string" }, "pageSize": { - "description": "The miminum number of activities desired in the response; the server will attempt to return at least this quanitity. The server may also return fewer activities if it has a partial response ready before the request times out. If not set, a default value is used.", + "description": "The minimum number of activities desired in the response; the server attempts to return at least this quantity. The server may also return fewer activities if it has a partial response ready before the request times out. If not set, a default value is used.", "format": "int32", "type": "integer" }, "pageToken": { - "description": "The token identifying which page of results to return. Set this to the next_page_token value returned from a previous query to obtain the following page of results. If not set, the first page of results will be returned.", + "description": "The token identifies which page of results to return. Set this to the next_page_token value returned from a previous query to obtain the following page of results. If not set, the first page of results is returned.", "type": "string" } }, @@ -1008,6 +1155,35 @@ }, "type": "object" }, + "Selection": { + "description": "Wrapper for Selection Field value as combined value/display_name pair for selected choice.", + "id": "Selection", + "properties": { + "displayName": { + "description": "Selection value as human-readable display string.", + "type": "string" + }, + "value": { + "description": "Selection value as Field Choice ID.", + "type": "string" + } + }, + "type": "object" + }, + "SelectionList": { + "description": "Wrapper for SelectionList Field value.", + "id": "SelectionList", + "properties": { + "values": { + "description": "Selection values.", + "items": { + "$ref": "Selection" + }, + "type": "array" + } + }, + "type": "object" + }, "SettingsChange": { "description": "Information about settings changes.", "id": "SettingsChange", @@ -1022,6 +1198,17 @@ }, "type": "object" }, + "SingleUser": { + "description": "Wrapper for User Field value.", + "id": "SingleUser", + "properties": { + "value": { + "description": "User value as email.", + "type": "string" + } + }, + "type": "object" + }, "Suggestion": { "description": "A suggestion.", "id": "Suggestion", @@ -1077,7 +1264,7 @@ "type": "object" }, "Target": { - "description": "Information about the target of activity.", + "description": "Information about the target of activity. For more information on how activity history is shared with users, see [Activity history visibility](https://developers.google.com/drive/activity/v2#activityhistory).", "id": "Target", "properties": { "drive": { @@ -1152,6 +1339,31 @@ }, "type": "object" }, + "Text": { + "description": "Wrapper for Text Field value.", + "id": "Text", + "properties": { + "value": { + "description": "Value of Text Field.", + "type": "string" + } + }, + "type": "object" + }, + "TextList": { + "description": "Wrapper for Text List Field value.", + "id": "TextList", + "properties": { + "values": { + "description": "Text values.", + "items": { + "$ref": "Text" + }, + "type": "array" + } + }, + "type": "object" + }, "TimeRange": { "description": "Information about time ranges.", "id": "TimeRange", @@ -1199,6 +1411,20 @@ } }, "type": "object" + }, + "UserList": { + "description": "Wrapper for UserList Field value.", + "id": "UserList", + "properties": { + "values": { + "description": "User values.", + "items": { + "$ref": "SingleUser" + }, + "type": "array" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/essentialcontacts/v1/essentialcontacts-api.json b/etc/api/essentialcontacts/v1/essentialcontacts-api.json index 2a39aea989..465b4061bf 100644 --- a/etc/api/essentialcontacts/v1/essentialcontacts-api.json +++ b/etc/api/essentialcontacts/v1/essentialcontacts-api.json @@ -297,7 +297,7 @@ ], "parameters": { "name": { - "description": "The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", + "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", "location": "path", "pattern": "^folders/[^/]+/contacts/[^/]+$", "required": true, @@ -545,7 +545,7 @@ ], "parameters": { "name": { - "description": "The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", + "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", "location": "path", "pattern": "^organizations/[^/]+/contacts/[^/]+$", "required": true, @@ -793,7 +793,7 @@ ], "parameters": { "name": { - "description": "The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", + "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", "location": "path", "pattern": "^projects/[^/]+/contacts/[^/]+$", "required": true, @@ -850,7 +850,7 @@ } } }, - "revision": "20220227", + "revision": "20230123", "rootUrl": "https://essentialcontacts.googleapis.com/", "schemas": { "GoogleCloudEssentialcontactsV1ComputeContactsResponse": { @@ -876,19 +876,20 @@ "id": "GoogleCloudEssentialcontactsV1Contact", "properties": { "email": { - "description": "Required. The email address to send notifications to. This does not need to be a Google account.", + "description": "Required. The email address to send notifications to. The email address does not need to be a Google Account.", "type": "string" }, "languageTag": { - "description": "The preferred language for notifications, as a ISO 639-1 language code. See [Supported languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages) for a list of supported languages.", + "description": "Required. The preferred language for notifications, as a ISO 639-1 language code. See [Supported languages](https://cloud.google.com/resource-manager/docs/managing-notification-contacts#supported-languages) for a list of supported languages.", "type": "string" }, "name": { - "description": "The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", + "description": "Output only. The identifier for the contact. Format: {resource_type}/{resource_id}/contacts/{contact_id}", + "readOnly": true, "type": "string" }, "notificationCategorySubscriptions": { - "description": "The categories of notifications that the contact will receive communications for.", + "description": "Required. The categories of notifications that the contact will receive communications for.", "items": { "enum": [ "NOTIFICATION_CATEGORY_UNSPECIFIED", @@ -997,7 +998,7 @@ "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/eventarc/v1/eventarc-api.json b/etc/api/eventarc/v1/eventarc-api.json index 3a200a9477..433c75770e 100644 --- a/etc/api/eventarc/v1/eventarc-api.json +++ b/etc/api/eventarc/v1/eventarc-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://eventarc.googleapis.com/", "batchPath": "batch", "canonicalName": "Eventarc", - "description": "", + "description": "Build event-driven applications on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/eventarc", "fullyEncodeReservedExpansion": true, @@ -134,6 +134,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getGoogleChannelConfig": { + "description": "Get a GoogleChannelConfig", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/googleChannelConfig", + "httpMethod": "GET", + "id": "eventarc.projects.locations.getGoogleChannelConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the config to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/googleChannelConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleChannelConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v1/projects/{projectsId}/locations", @@ -144,7 +169,7 @@ ], "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).", + "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" }, @@ -174,11 +199,128 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateGoogleChannelConfig": { + "description": "Update a single GoogleChannelConfig", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/googleChannelConfig", + "httpMethod": "PATCH", + "id": "eventarc.projects.locations.updateGoogleChannelConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the config. Must be in the format of, `projects/{project}/locations/{location}/googleChannelConfig`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/googleChannelConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The fields to be updated; only fields explicitly provided are updated. If no field mask is provided, all provided fields in the request are updated. To update all fields, provide a field mask of \"*\".", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleChannelConfig" + }, + "response": { + "$ref": "GoogleChannelConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { "channelConnections": { "methods": { + "create": { + "description": "Create a new ChannelConnection in a particular project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channelConnections", + "httpMethod": "POST", + "id": "eventarc.projects.locations.channelConnections.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "channelConnectionId": { + "description": "Required. The user-provided ID to be assigned to the channel connection.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent collection in which to add this channel connection.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/channelConnections", + "request": { + "$ref": "ChannelConnection" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete a single ChannelConnection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channelConnections/{channelConnectionsId}", + "httpMethod": "DELETE", + "id": "eventarc.projects.locations.channelConnections.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the channel connection to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channelConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get a single ChannelConnection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channelConnections/{channelConnectionsId}", + "httpMethod": "GET", + "id": "eventarc.projects.locations.channelConnections.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the channel connection to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channelConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ChannelConnection" + }, + "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}/channelConnections/{channelConnectionsId}:getIamPolicy", @@ -195,7 +337,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channelConnections/[^/]+$", "required": true, @@ -210,6 +352,42 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "List channel connections.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channelConnections", + "httpMethod": "GET", + "id": "eventarc.projects.locations.channelConnections.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of channel connections to return on each page. Note: The service may send fewer responses.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token; provide the value from the `next_page_token` field in a previous `ListChannelConnections` call to retrieve the subsequent page. When paginating, all other parameters provided to `ListChannelConnetions` match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent collection from which to list channel connections.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/channelConnections", + "response": { + "$ref": "ListChannelConnectionsResponse" + }, + "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}/channelConnections/{channelConnectionsId}:setIamPolicy", @@ -220,7 +398,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channelConnections/[^/]+$", "required": true, @@ -248,7 +426,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channelConnections/[^/]+$", "required": true, @@ -270,6 +448,99 @@ }, "channels": { "methods": { + "create": { + "description": "Create a new channel in a particular project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels", + "httpMethod": "POST", + "id": "eventarc.projects.locations.channels.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "channelId": { + "description": "Required. The user-provided ID to be assigned to the channel.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent collection in which to add this channel.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Required. If set, validate the request and preview the review, but do not post it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/channels", + "request": { + "$ref": "Channel" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete a single channel.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}", + "httpMethod": "DELETE", + "id": "eventarc.projects.locations.channels.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the channel to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Required. If set, validate the request and preview the review, but do not post it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get a single Channel.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}", + "httpMethod": "GET", + "id": "eventarc.projects.locations.channels.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the channel to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Channel" + }, + "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}/channels/{channelsId}:getIamPolicy", @@ -286,7 +557,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channels/[^/]+$", "required": true, @@ -301,6 +572,86 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "List channels.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels", + "httpMethod": "GET", + "id": "eventarc.projects.locations.channels.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orderBy": { + "description": "The sorting order of the resources returned. Value should be a comma-separated list of fields. The default sorting order is ascending. To specify descending order for a field, append a `desc` suffix; for example: `name desc, channel_id`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of channels to return on each page. Note: The service may send fewer.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token; provide the value from the `next_page_token` field in a previous `ListChannels` call to retrieve the subsequent page. When paginating, all other parameters provided to `ListChannels` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent collection to list channels on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/channels", + "response": { + "$ref": "ListChannelsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a single channel.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/channels/{channelsId}", + "httpMethod": "PATCH", + "id": "eventarc.projects.locations.channels.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the channel. Must be unique within the location on the project and must be in `projects/{project}/locations/{location}/channels/{channel_id}` format.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/channels/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The fields to be updated; only fields explicitly provided are updated. If no field mask is provided, all provided fields in the request are updated. To update all fields, provide a field mask of \"*\".", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Required. If set, validate the request and preview the review, but do not post it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Channel" + }, + "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}/channels/{channelsId}:setIamPolicy", @@ -311,7 +662,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channels/[^/]+$", "required": true, @@ -339,7 +690,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/channels/[^/]+$", "required": true, @@ -678,7 +1029,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -793,7 +1144,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -821,7 +1172,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -846,11 +1197,11 @@ } } }, - "revision": "20220301", + "revision": "20230113", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -906,7 +1257,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -919,6 +1270,105 @@ }, "type": "object" }, + "Channel": { + "description": "A representation of the Channel resource. A Channel is a resource on which event providers publish their events. The published events are delivered through the transport associated with the channel. Note that a channel is associated with exactly one event provider.", + "id": "Channel", + "properties": { + "activationToken": { + "description": "Output only. The activation token for the channel. The token must be used by the provider to register the channel for publishing.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The creation time.", + "format": "google-datetime", + "readOnly": true, + "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/*`.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the channel. Must be unique within the location on the project and must be in `projects/{project}/locations/{location}/channels/{channel_id}` format.", + "type": "string" + }, + "provider": { + "description": "The name of the event provider (e.g. Eventarc SaaS partner) associated with the channel. This provider will be granted permissions to publish events to the channel. Format: `projects/{project}/locations/{location}/providers/{provider_id}`.", + "type": "string" + }, + "pubsubTopic": { + "description": "Output only. The name of the Pub/Sub topic created and managed by Eventarc system as a transport for the event delivery. Format: `projects/{project}/topics/{topic_id}`.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of a Channel.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The PENDING state indicates that a Channel has been created successfully and there is a new activation token available for the subscriber to use to convey the Channel to the provider in order to create a Connection.", + "The ACTIVE state indicates that a Channel has been successfully connected with the event provider. An ACTIVE Channel is ready to receive and route events from the event provider.", + "The INACTIVE state indicates that the Channel cannot receive events permanently. There are two possible cases this state can happen: 1. The SaaS provider disconnected from this Channel. 2. The Channel activation token has expired but the SaaS provider wasn't connected. To re-establish a Connection with a provider, the subscriber should create a new Channel and give it to the provider." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. Server assigned unique identifier for the channel. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ChannelConnection": { + "description": "A representation of the ChannelConnection resource. A ChannelConnection is a resource which event providers create during the activation process to establish a connection between the provider and the subscriber channel.", + "id": "ChannelConnection", + "properties": { + "activationToken": { + "description": "Input only. Activation token for the channel. The token will be used during the creation of ChannelConnection to bind the channel with the provider project. This field will not be stored in the provider resource.", + "type": "string" + }, + "channel": { + "description": "Required. The name of the connected subscriber Channel. This is a weak reference to avoid cross project and cross accounts references. This must be in `projects/{project}/location/{location}/channels/{channel_id}` format.", + "type": "string" + }, + "createTime": { + "description": "Output only. The creation time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Required. The name of the connection.", + "type": "string" + }, + "uid": { + "description": "Output only. Server assigned ID of the resource. The server guarantees uniqueness and immutability until deleted.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "CloudRun": { "description": "Represents a Cloud Run destination.", "id": "CloudRun", @@ -943,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}`", + "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.", "type": "string" }, "cloudRun": { @@ -953,12 +1403,16 @@ "gke": { "$ref": "GKE", "description": "A GKE service capable of receiving events. The service should be running in the same project as the trigger." + }, + "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" } }, "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1089,6 +1543,27 @@ }, "type": "object" }, + "GoogleChannelConfig": { + "description": "A GoogleChannelConfig is a resource that stores the custom settings respected by Eventarc first-party triggers in the matching region. Once configured, first-party event data will be protected using the specified custom managed encryption key instead of Google-managed encryption keys.", + "id": "GoogleChannelConfig", + "properties": { + "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/*`.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the config. Must be in the format of, `projects/{project}/locations/{location}/googleChannelConfig`.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleLongrunningCancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "GoogleLongrunningCancelOperationRequest", @@ -1175,6 +1650,56 @@ }, "type": "object" }, + "ListChannelConnectionsResponse": { + "description": "The response message for the `ListChannelConnections` method.", + "id": "ListChannelConnectionsResponse", + "properties": { + "channelConnections": { + "description": "The requested channel connections, up to the number specified in `page_size`.", + "items": { + "$ref": "ChannelConnection" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A page token that can be sent to `ListChannelConnections` to request the next page. If this is empty, then there are no more pages.", + "type": "string" + }, + "unreachable": { + "description": "Unreachable resources, if any.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListChannelsResponse": { + "description": "The response message for the `ListChannels` method.", + "id": "ListChannelsResponse", + "properties": { + "channels": { + "description": "The requested channels, up to the number specified in `page_size`.", + "items": { + "$ref": "Channel" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A page token that can be sent to `ListChannels` to request the next page. If this is empty, then there are no more pages.", + "type": "string" + }, + "unreachable": { + "description": "Unreachable resources, if any.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1198,7 +1723,7 @@ "id": "ListProvidersResponse", "properties": { "nextPageToken": { - "description": "A page token that can be sent to ListProviders to request the next page. If this is empty, then there are no more pages.", + "description": "A page token that can be sent to `ListProviders` to request the next page. If this is empty, then there are no more pages.", "type": "string" }, "providers": { @@ -1223,7 +1748,7 @@ "id": "ListTriggersResponse", "properties": { "nextPageToken": { - "description": "A page token that can be sent to ListTriggers to request the next page. If this is empty, then there are no more pages.", + "description": "A page token that can be sent to `ListTriggers` to request the next page. If this is empty, then there are no more pages.", "type": "string" }, "triggers": { @@ -1399,7 +1924,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1409,12 +1934,65 @@ }, "type": "object" }, + "StateCondition": { + "description": "A condition that is part of the trigger state computation.", + "id": "StateCondition", + "properties": { + "code": { + "description": "The canonical code of the condition.", + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "enumDescriptions": [ + "Not an error; returned on success. HTTP Mapping: 200 OK", + "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", + "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", + "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", + "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", + "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", + "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", + "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", + "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", + "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", + "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", + "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", + "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", + "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", + "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", + "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", + "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" + ], + "type": "string" + }, + "message": { + "description": "Human-readable message.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1452,6 +2030,18 @@ "description": "A representation of the trigger resource.", "id": "Trigger", "properties": { + "channel": { + "description": "Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.", + "type": "string" + }, + "conditions": { + "additionalProperties": { + "$ref": "StateCondition" + }, + "description": "Output only. The reason(s) why a trigger is in FAILED state.", + "readOnly": true, + "type": "object" + }, "createTime": { "description": "Output only. The creation time.", "format": "google-datetime", @@ -1468,7 +2058,7 @@ "type": "string" }, "eventFilters": { - "description": "Required. null The list of filters that applies to event attributes. Only events that match all the provided filters are sent to the destination.", + "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": { "$ref": "EventFilter" }, @@ -1491,7 +2081,7 @@ }, "transport": { "$ref": "Transport", - "description": "Optional. To deliver messages, Eventarc might use other GCP products as a transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes." + "description": "Optional. To deliver messages, Eventarc might use other Google Cloud products as a transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes." }, "uid": { "description": "Output only. Server-assigned unique identifier for the trigger. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", diff --git a/etc/api/eventarc/v1beta1/eventarc-api.json b/etc/api/eventarc/v1beta1/eventarc-api.json index 8c4c847519..44b6970f13 100644 --- a/etc/api/eventarc/v1beta1/eventarc-api.json +++ b/etc/api/eventarc/v1beta1/eventarc-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://eventarc.googleapis.com/", "batchPath": "batch", "canonicalName": "Eventarc", - "description": "", + "description": "Build event-driven applications on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/eventarc", "fullyEncodeReservedExpansion": true, @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -421,7 +421,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -531,7 +531,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -559,7 +559,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/triggers/[^/]+$", "required": true, @@ -584,11 +584,11 @@ } } }, - "revision": "20220301", + "revision": "20230113", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -644,7 +644,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -676,7 +676,7 @@ "type": "string" }, "service": { - "description": "Required. The name of the Cloud run service being addressed (see https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services). Only services located in the same project of the trigger object can be addressed.", + "description": "Required. The name of the Cloud run service being addressed. See https://cloud.google.com/run/docs/reference/rest/v1/namespaces.services. Only services located in the same project of the trigger object can be addressed.", "type": "string" } }, @@ -694,7 +694,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -964,7 +964,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1006,7 +1006,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1067,7 +1067,7 @@ "type": "object" }, "matchingCriteria": { - "description": "Required. null The criteria by which events are filtered. Only events that match with this criteria will be sent to the destination.", + "description": "Required. Unordered list. The criteria by which events are filtered. Only events that match with this criteria will be sent to the destination.", "items": { "$ref": "MatchingCriteria" }, @@ -1083,7 +1083,7 @@ }, "transport": { "$ref": "Transport", - "description": "Output only. In order to deliver messages, Eventarc may use other GCP products as transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes.", + "description": "Output only. In order to deliver messages, Eventarc may use other Google Cloud products as transport intermediary. This field contains a reference to that transport intermediary. This information can be used for debugging purposes.", "readOnly": true }, "updateTime": { diff --git a/etc/api/factchecktools/v1alpha1/factchecktools-api.json b/etc/api/factchecktools/v1alpha1/factchecktools-api.json index 485a54fd64..cd4954535a 100644 --- a/etc/api/factchecktools/v1alpha1/factchecktools-api.json +++ b/etc/api/factchecktools/v1alpha1/factchecktools-api.json @@ -304,7 +304,7 @@ } } }, - "revision": "20220305", + "revision": "20230121", "rootUrl": "https://factchecktools.googleapis.com/", "schemas": { "GoogleFactcheckingFactchecktoolsV1alpha1Claim": { @@ -566,7 +566,7 @@ "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/fcm/v1/fcm-api.json b/etc/api/fcm/v1/fcm-api.json index d31c64f75f..1218480a0a 100644 --- a/etc/api/fcm/v1/fcm-api.json +++ b/etc/api/fcm/v1/fcm-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20220228", + "revision": "20230106", "rootUrl": "https://fcm.googleapis.com/", "schemas": { "AndroidConfig": { @@ -230,6 +230,10 @@ "description": "The key to the body string in the app's string resources to use to localize the body text to the user's current localization. See [String Resources](https://goo.gl/NdFZGI) for more information.", "type": "string" }, + "bypassProxyNotification": { + "description": "If set, display notifications delivered to the device will be handled by the app instead of the proxy.", + "type": "boolean" + }, "channelId": { "description": "The [notification's channel id](https://developer.android.com/guide/topics/ui/notifiers/notifications#ManageChannels) (new in Android O). The app must create a channel with this channel ID before any notification with this channel ID is received. If you don't send this channel ID in the request, or if the channel ID provided has not yet been created by the app, FCM uses the channel ID specified in the app manifest.", "type": "string" @@ -370,7 +374,7 @@ "additionalProperties": { "type": "string" }, - "description": "HTTP request headers defined in Apple Push Notification Service. Refer to [APNs request headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) for supported headers such as `apns-expiration` and `apns-priority`.", + "description": "HTTP request headers defined in Apple Push Notification Service. Refer to [APNs request headers](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) for supported headers such as `apns-expiration` and `apns-priority`. The backend sets a default value for `apns-expiration` of 30 days and a default value for `apns-priority` of 10 if not explicitly set.", "type": "object" }, "payload": { @@ -378,7 +382,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "APNs payload as a JSON object, including both `aps` dictionary and custom payload. See [Payload Key Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification). If present, it overrides google.firebase.fcm.v1.Notification.title and google.firebase.fcm.v1.Notification.body. The backend sets a default value for `apns-expiration` of 30 days and a default value for `apns-priority` of 10 if not explicitly set.", + "description": "APNs payload as a JSON object, including both `aps` dictionary and custom payload. See [Payload Key Reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification). If present, it overrides google.firebase.fcm.v1.Notification.title and google.firebase.fcm.v1.Notification.body.", "type": "object" } }, diff --git a/etc/api/fcmdata/v1beta1/fcmdata-api.json b/etc/api/fcmdata/v1beta1/fcmdata-api.json index 503198589a..6cf9c2f5bb 100644 --- a/etc/api/fcmdata/v1beta1/fcmdata-api.json +++ b/etc/api/fcmdata/v1beta1/fcmdata-api.json @@ -154,7 +154,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://fcmdata.googleapis.com/", "schemas": { "GoogleFirebaseFcmDataV1beta1AndroidDeliveryData": { @@ -259,7 +259,7 @@ "id": "GoogleFirebaseFcmDataV1beta1MessageInsightPercents", "properties": { "priorityLowered": { - "description": "The percentage of accepted messages that had their priority lowered from high to normal due to [app standby buckets](https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message).", + "description": "The percentage of accepted messages that had their priority lowered from high to normal. See [documentation for setting message priority](https://firebase.google.com/docs/cloud-messaging/android/message-priority).", "format": "float", "type": "number" } diff --git a/etc/api/file/v1/file-api.json b/etc/api/file/v1/file-api.json index da78916555..74b42b518b 100644 --- a/etc/api/file/v1/file-api.json +++ b/etc/api/file/v1/file-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -199,7 +199,7 @@ "type": "string" }, "parent": { - "description": "Required. The backup's project and location, in the format `projects/{project_number}/locations/{location}`. In Cloud Filestore, backup locations map to GCP regions, for example **us-west1**.", + "description": "Required. The backup's project and location, in the format `projects/{project_number}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -298,7 +298,7 @@ "type": "string" }, "parent": { - "description": "Required. The project and location for which to retrieve backup information, in the format `projects/{project_number}/locations/{location}`. In Cloud Filestore, backup locations map to GCP regions, for example **us-west1**. To retrieve backup information for all locations, use \"-\" for the `{location}` value.", + "description": "Required. The project and location for which to retrieve backup information, in the format `projects/{project_number}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**. To retrieve backup information for all locations, use \"-\" for the `{location}` value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -366,7 +366,7 @@ "type": "string" }, "parent": { - "description": "Required. The instance's project and location, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to GCP zones, for example **us-west1-b**.", + "description": "Required. The instance's project and location, in the format `projects/{project_id}/locations/{location}`. In Filestore, locations map to Google Cloud zones, for example **us-west1-b**.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -470,7 +470,7 @@ "type": "string" }, "parent": { - "description": "Required. The project and location for which to retrieve instance information, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to GCP zones, for example **us-west1-b**. To retrieve instance information for all locations, use \"-\" for the `{location}` value.", + "description": "Required. The project and location for which to retrieve instance information, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to Google Cloud zones, for example **us-west1-b**. To retrieve instance information for all locations, use \"-\" for the `{location}` value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -846,11 +846,11 @@ } } }, - "revision": "20220214", + "revision": "20230103", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { - "description": "A Cloud Filestore backup.", + "description": "A Filestore backup.", "id": "Backup", "properties": { "capacityGb": { @@ -893,15 +893,15 @@ "type": "boolean" }, "sourceFileShare": { - "description": "Name of the file share in the source Cloud Filestore instance that the backup is created from.", + "description": "Name of the file share in the source Filestore instance that the backup is created from.", "type": "string" }, "sourceInstance": { - "description": "The resource name of the source Cloud Filestore instance, in the format `projects/{project_number}/locations/{location_id}/instances/{instance_id}`, used to create this backup.", + "description": "The resource name of the source Filestore instance, in the format `projects/{project_number}/locations/{location_id}/instances/{instance_id}`, used to create this backup.", "type": "string" }, "sourceInstanceTier": { - "description": "Output only. The service tier of the source Cloud Filestore instance that this backup is created from.", + "description": "Output only. The service tier of the source Filestore instance that this backup is created from.", "enum": [ "TIER_UNSPECIFIED", "STANDARD", @@ -913,8 +913,8 @@ ], "enumDescriptions": [ "Not set.", - "STANDARD tier.", - "PREMIUM tier.", + "STANDARD tier. BASIC_HDD is the preferred term for this tier.", + "PREMIUM tier. BASIC_SSD is the preferred term for this tier.", "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.", @@ -974,7 +974,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1015,7 +1015,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1025,7 +1025,7 @@ "id": "FileShareConfig", "properties": { "capacityGb": { - "description": "File share capacity in gigabytes (GB). Cloud Filestore defines 1 GB as 1024^3 bytes.", + "description": "File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes.", "format": "int64", "type": "string" }, @@ -1061,7 +1061,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -1075,7 +1075,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -1090,14 +1090,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -1215,7 +1215,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -1240,6 +1240,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -1307,7 +1321,7 @@ "type": "object" }, "Instance": { - "description": "A Cloud Filestore instance.", + "description": "A Filestore instance.", "id": "Instance", "properties": { "createTime": { @@ -1369,7 +1383,9 @@ "DELETING", "ERROR", "RESTORING", - "SUSPENDED" + "SUSPENDED", + "SUSPENDING", + "RESUMING" ], "enumDescriptions": [ "State not set.", @@ -1379,7 +1395,9 @@ "The instance is shutting down.", "The instance is experiencing an issue and might be unusable. You can get further details from the `statusMessage` field of the `Instance` resource.", "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 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." ], "readOnly": true, "type": "string" @@ -1390,7 +1408,7 @@ "type": "string" }, "suspensionReasons": { - "description": "Output only. field indicates all the reasons the instance is in \"SUSPENDED\" state.", + "description": "Output only. Field indicates all the reasons the instance is in \"SUSPENDED\" state.", "items": { "enum": [ "SUSPENSION_REASON_UNSPECIFIED", @@ -1418,8 +1436,8 @@ ], "enumDescriptions": [ "Not set.", - "STANDARD tier.", - "PREMIUM tier.", + "STANDARD tier. BASIC_HDD is the preferred term for this tier.", + "PREMIUM tier. BASIC_SSD is the preferred term for this tier.", "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.", @@ -1569,7 +1587,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -1679,7 +1697,7 @@ "type": "string" }, "reservedIpRange": { - "description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier or a /24 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/24. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.", + "description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29, 192.168.0.0/24 or 192.168.0.0/26, respectively. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Filestore instances in the selected VPC network.", "type": "string" } }, @@ -1821,7 +1839,7 @@ "id": "RestoreInstanceRequest", "properties": { "fileShare": { - "description": "Required. Name of the file share in the Cloud Filestore instance that the backup is being restored to.", + "description": "Required. Name of the file share in the Filestore instance that the backup is being restored to.", "type": "string" }, "sourceBackup": { @@ -1986,12 +2004,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, diff --git a/etc/api/file/v1beta1/file-api.json b/etc/api/file/v1beta1/file-api.json index 308833112d..d4e5e19ea2 100644 --- a/etc/api/file/v1beta1/file-api.json +++ b/etc/api/file/v1beta1/file-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -199,7 +199,7 @@ "type": "string" }, "parent": { - "description": "Required. The backup's project and location, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, backup locations map to GCP regions, for example **us-west1**.", + "description": "Required. The backup's project and location, in the format `projects/{project_id}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -298,7 +298,7 @@ "type": "string" }, "parent": { - "description": "Required. The project and location for which to retrieve backup information, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, backup locations map to GCP regions, for example **us-west1**. To retrieve backup information for all locations, use \"-\" for the `{location}` value.", + "description": "Required. The project and location for which to retrieve backup information, in the format `projects/{project_id}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**. To retrieve backup information for all locations, use \"-\" for the `{location}` value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -366,7 +366,7 @@ "type": "string" }, "parent": { - "description": "Required. The instance's project and location, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to GCP zones, for example **us-west1-b**.", + "description": "Required. The instance's project and location, in the format `projects/{project_id}/locations/{location}`. In Filestore, locations map to Google Cloud zones, for example **us-west1-b**.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -470,7 +470,7 @@ "type": "string" }, "parent": { - "description": "Required. The project and location for which to retrieve instance information, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to GCP zones, for example **us-west1-b**. To retrieve instance information for all locations, use \"-\" for the `{location}` value.", + "description": "Required. The project and location for which to retrieve instance information, in the format `projects/{project_id}/locations/{location}`. In Cloud Filestore, locations map to Google Cloud zones, for example **us-west1-b**. To retrieve instance information for all locations, use \"-\" for the `{location}` value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -577,6 +577,173 @@ } }, "resources": { + "shares": { + "methods": { + "create": { + "description": "Creates a share.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/shares", + "httpMethod": "POST", + "id": "file.projects.locations.instances.shares.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The Filestore Instance to create the share for, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + }, + "shareId": { + "description": "Required. The ID to use for the share. The ID must be unique within the specified instance. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/shares", + "request": { + "$ref": "Share" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a share.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/shares/{sharesId}", + "httpMethod": "DELETE", + "id": "file.projects.locations.instances.shares.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The share resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}/share/{share_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/shares/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a specific share.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/shares/{sharesId}", + "httpMethod": "GET", + "id": "file.projects.locations.instances.shares.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The share resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}/shares/{share_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/shares/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Share" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all shares for a specified instance.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/shares", + "httpMethod": "GET", + "id": "file.projects.locations.instances.shares.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "List filter.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Sort results. Supported values are \"name\", \"name desc\" or \"\" (unsorted).", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value to use if there are additional results to retrieve for this list request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The instance for which to retrieve share information, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/shares", + "response": { + "$ref": "ListSharesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the settings of a specific share.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/shares/{sharesId}", + "httpMethod": "PATCH", + "id": "file.projects.locations.instances.shares.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the share, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}/shares/{share_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/shares/[^/]+$", + "required": true, + "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: * \"description\" * \"capacity_gb\" * \"labels\" * \"nfs_export_options\"", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "Share" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "snapshots": { "methods": { "create": { @@ -874,11 +1041,11 @@ } } }, - "revision": "20220214", + "revision": "20230103", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { - "description": "A Cloud Filestore backup.", + "description": "A Filestore backup.", "id": "Backup", "properties": { "capacityGb": { @@ -903,6 +1070,10 @@ "readOnly": true, "type": "string" }, + "kmsKeyName": { + "description": "Immutable. KMS key name used for data encryption.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -921,15 +1092,15 @@ "type": "boolean" }, "sourceFileShare": { - "description": "Name of the file share in the source Cloud Filestore instance that the backup is created from.", + "description": "Name of the file share in the source Filestore instance that the backup is created from.", "type": "string" }, "sourceInstance": { - "description": "The resource name of the source Cloud Filestore instance, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}`, used to create this backup.", + "description": "The resource name of the source Filestore instance, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}`, used to create this backup.", "type": "string" }, "sourceInstanceTier": { - "description": "Output only. The service tier of the source Cloud Filestore instance that this backup is created from.", + "description": "Output only. The service tier of the source Filestore instance that this backup is created from.", "enum": [ "TIER_UNSPECIFIED", "STANDARD", @@ -1002,7 +1173,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1043,7 +1214,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1053,7 +1224,7 @@ "id": "FileShareConfig", "properties": { "capacityGb": { - "description": "File share capacity in gigabytes (GB). Cloud Filestore defines 1 GB as 1024^3 bytes.", + "description": "File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes.", "format": "int64", "type": "string" }, @@ -1089,7 +1260,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -1103,7 +1274,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -1118,14 +1289,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -1243,7 +1414,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -1268,6 +1439,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -1335,9 +1520,20 @@ "type": "object" }, "Instance": { - "description": "A Cloud Filestore instance.", + "description": "A Filestore instance.", "id": "Instance", "properties": { + "capacityGb": { + "description": "The storage capacity of the instance in gigabytes (GB = 1024^3 bytes). This capacity can be increased up to `max_capacity_gb` GB in multipliers of `capacity_step_size_gb` GB.", + "format": "int64", + "type": "string" + }, + "capacityStepSizeGb": { + "description": "Output only. The increase/decrease capacity step size.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "createTime": { "description": "Output only. The time when the instance was created.", "format": "google-datetime", @@ -1370,12 +1566,22 @@ "description": "Resource labels to represent user provided metadata.", "type": "object" }, + "maxCapacityGb": { + "description": "Output only. The max capacity of the instance.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "maxShareCount": { "description": "Output only. The max number of shares allowed.", "format": "int64", "readOnly": true, "type": "string" }, + "multiShareEnabled": { + "description": "Indicates whether this instance uses a multi-share configuration with which it can have more than one file-share or none at all. File-shares are added, updated and removed through the separate file-share APIs.", + "type": "boolean" + }, "name": { "description": "Output only. The resource name of the instance, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}`.", "readOnly": true, @@ -1388,6 +1594,20 @@ }, "type": "array" }, + "protocol": { + "description": "Immutable. The protocol indicates the access protocol for all shares in the instance. This field is immutable and it cannot be changed after the instance has been created. Default value: `NFS_V3`.", + "enum": [ + "FILE_PROTOCOL_UNSPECIFIED", + "NFS_V3", + "NFS_V4_1" + ], + "enumDescriptions": [ + "FILE_PROTOCOL_UNSPECIFIED serves a \"not set\" default value when a FileProtocol is a separate field in a message.", + "NFS 3.0.", + "NFS 4.1." + ], + "type": "string" + }, "satisfiesPzs": { "description": "Output only. Reserved for future use.", "readOnly": true, @@ -1404,7 +1624,9 @@ "ERROR", "RESTORING", "SUSPENDED", - "REVERTING" + "REVERTING", + "SUSPENDING", + "RESUMING" ], "enumDescriptions": [ "State not set.", @@ -1415,7 +1637,9 @@ "The instance is experiencing an issue and might be unusable. You can get further details from the `statusMessage` field of the `Instance` resource.", "The instance is restoring a snapshot or 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 reverting to a snapshot." + "The instance is reverting to a snapshot.", + "The instance is in the process of becoming suspended.", + "The instance is in the process of becoming active." ], "readOnly": true, "type": "string" @@ -1426,7 +1650,7 @@ "type": "string" }, "suspensionReasons": { - "description": "Output only. field indicates all the reasons the instance is in \"SUSPENDED\" state.", + "description": "Output only. Field indicates all the reasons the instance is in \"SUSPENDED\" state.", "items": { "enum": [ "SUSPENSION_REASON_UNSPECIFIED", @@ -1552,6 +1776,31 @@ }, "type": "object" }, + "ListSharesResponse": { + "description": "ListSharesResponse is the result of ListSharesRequest.", + "id": "ListSharesResponse", + "properties": { + "nextPageToken": { + "description": "The token you can use to retrieve the next page of results. Not returned if there are no more results in the list.", + "type": "string" + }, + "shares": { + "description": "A list of shares in the project for the specified instance.", + "items": { + "$ref": "Share" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSnapshotsResponse": { "description": "ListSnapshotsResponse is the result of ListSnapshotsRequest.", "id": "ListSnapshotsResponse", @@ -1605,7 +1854,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -1715,7 +1964,7 @@ "type": "string" }, "reservedIpRange": { - "description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier or a /24 CIDR block for High Scale or Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29 or 192.168.0.0/24. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Cloud Filestore instances in the selected VPC network.", + "description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29, 192.168.0.0/24, or 192.168.0.0/26, respectively. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Filestore instances in the selected VPC network.", "type": "string" } }, @@ -1853,11 +2102,11 @@ "type": "object" }, "RestoreInstanceRequest": { - "description": "RestoreInstanceRequest restores an existing instance's file share from a snapshot or backup.", + "description": "RestoreInstanceRequest restores an existing instance's file share from a backup.", "id": "RestoreInstanceRequest", "properties": { "fileShare": { - "description": "Required. Name of the file share in the Cloud Filestore instance that the snapshot is being restored to.", + "description": "Required. Name of the file share in the Filestore instance that the backup is being restored to.", "type": "string" }, "sourceBackup": { @@ -1922,8 +2171,70 @@ }, "type": "object" }, + "Share": { + "description": "A Filestore share.", + "id": "Share", + "properties": { + "capacityGb": { + "description": "File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes. Must be greater than 0.", + "format": "int64", + "type": "string" + }, + "createTime": { + "description": "Output only. The time when the share was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of the share with 2048 characters or less. Requests with longer descriptions will be rejected.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource labels to represent user provided metadata.", + "type": "object" + }, + "mountName": { + "description": "The mount name of the share. Must be 63 characters or less and consist of uppercase or lowercase letters, numbers, and underscores.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the share, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}/shares/{share_id}`.", + "readOnly": true, + "type": "string" + }, + "nfsExportOptions": { + "description": "Nfs Export Options. There is a limit of 10 export options per file share.", + "items": { + "$ref": "NfsExportOptions" + }, + "type": "array" + }, + "state": { + "description": "Output only. The share state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "DELETING" + ], + "enumDescriptions": [ + "State not set.", + "Share is being created.", + "Share is ready for use.", + "Share is being deleted." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Snapshot": { - "description": "A Cloud Filestore snapshot.", + "description": "A Filestore snapshot.", "id": "Snapshot", "properties": { "createTime": { @@ -2037,12 +2348,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, diff --git a/etc/api/firebase/v1beta1/firebase-api.json b/etc/api/firebase/v1beta1/firebase-api.json index 70e17611cc..dbd6bf9e7a 100644 --- a/etc/api/firebase/v1beta1/firebase-api.json +++ b/etc/api/firebase/v1beta1/firebase-api.json @@ -341,6 +341,11 @@ "description": "Token returned from a previous call to `ListFirebaseProjects` indicating where in the set of Projects to resume listing.", "location": "query", "type": "string" + }, + "showDeleted": { + "description": "Optional. Controls whether Projects in the DELETED state should be returned in the response. If not specified, only `ACTIVE` Projects will be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/projects", @@ -371,7 +376,7 @@ "type": "string" }, "updateMask": { - "description": "Specifies which fields to update. If this list is empty, then no state will be updated. Note that the fields `name`, `projectId`, and `projectNumber` are all immutable.", + "description": "Specifies which fields of the FirebaseProject to update. Note that the following fields are immutable: `name`, `project_id`, and `project_number`. To update `state`, use any of the following Google Cloud endpoints: [`projects.delete`](https://cloud.google.com/resource-manager/reference/rest/v1/projects/delete) or [`projects.undelete`](https://cloud.google.com/resource-manager/reference/rest/v1/projects/undelete)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -428,7 +433,7 @@ ], "parameters": { "filter": { - "description": "A query string compatible with Google's [AIP-160](https://google.aip.dev/160) standard. Use any of the following fields in a query: * [`app_id`](../projects.apps#FirebaseAppInfo.FIELDS.app_id) * [`namespace`](../projects.apps#FirebaseAppInfo.FIELDS.namespace) * [`platform`](../projects.apps#FirebaseAppInfo.FIELDS.platform) We also support the following \"virtual\" fields (fields which are not actually part of the returned resource object, but can be queried as if they are pre-populated with specific values): * `sha1_hash`: This field is considered to be a repeated `string` field, populated with the list of all SHA-1 certificate fingerprints registered with the app. This list is empty if the app is not an Android app. * `sha256_hash`: This field is considered to be a repeated `string` field, populated with the list of all SHA-256 certificate fingerprints registered with the app. This list is empty if the app is not an Android app. * `app_store_id`: This field is considered to be a singular `string` field, populated with the Apple App Store ID registered with the app. This field is empty if the app is not an iOS app. * `team_id`: This field is considered to be a singular `string` field, populated with the Apple team ID registered with the app. This field is empty if the app is not an iOS app.", + "description": "A query string compatible with Google's [AIP-160 standard](https://google.aip.dev/160). Use any of the following fields in a query: * [`app_id`](../projects/searchApps#FirebaseAppInfo.FIELDS.app_id) * [`namespace`](../projects/searchApps#FirebaseAppInfo.FIELDS.namespace) * [`platform`](../projects/searchApps#FirebaseAppInfo.FIELDS.platform) This query also supports the following \"virtual\" fields. These are fields which are not actually part of the returned resource object, but they can be queried as if they are pre-populated with specific values. * `sha1_hash` or `sha1_hashes`: This field is considered to be a _repeated_ `string` field, populated with the list of all SHA-1 certificate fingerprints registered with the AndroidApp. This list is empty if the App is not an `AndroidApp`. * `sha256_hash` or `sha256_hashes`: This field is considered to be a _repeated_ `string` field, populated with the list of all SHA-256 certificate fingerprints registered with the AndroidApp. This list is empty if the App is not an `AndroidApp`. * `app_store_id`: This field is considered to be a _singular_ `string` field, populated with the Apple App Store ID registered with the IosApp. This field is empty if the App is not an `IosApp`. * `team_id`: This field is considered to be a _singular_ `string` field, populated with the Apple team ID registered with the IosApp. This field is empty if the App is not an `IosApp`.", "location": "query", "type": "string" }, @@ -449,6 +454,11 @@ "pattern": "^projects/[^/]+$", "required": true, "type": "string" + }, + "showDeleted": { + "description": "Controls whether Apps in the DELETED state should be returned. If not specified, only `ACTIVE` Apps will be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/{+parent}:searchApps", @@ -577,6 +587,11 @@ "pattern": "^projects/[^/]+$", "required": true, "type": "string" + }, + "showDeleted": { + "description": "Controls whether Apps in the DELETED state should be returned in the response. If not specified, only `ACTIVE` Apps will be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/{+parent}/androidApps", @@ -607,7 +622,7 @@ "type": "string" }, "updateMask": { - "description": "Specifies which fields to update. Note that the fields `name`, `app_id`, `project_id`, and `package_name` are all immutable.", + "description": "Specifies which fields of the AndroidApp to update. Note that the following fields are immutable: `name`, `app_id`, `project_id`, and `package_name`. To update `state`, use any of the following endpoints: RemoveAndroidApp or UndeleteAndroidApp.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -624,6 +639,64 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/firebase" ] + }, + "remove": { + "description": "Removes the specified AndroidApp from the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}:remove", + "httpMethod": "POST", + "id": "firebase.projects.androidApps.remove", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the AndroidApp [name](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/androidApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:remove", + "request": { + "$ref": "RemoveAndroidAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "undelete": { + "description": "Restores the specified AndroidApp to the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}:undelete", + "httpMethod": "POST", + "id": "firebase.projects.androidApps.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the AndroidApp, in the format: projects/ PROJECT_IDENTIFIER/androidApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/androidApps/APP_ID Refer to the AndroidApp [name](../projects.androidApps#AndroidApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/androidApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:undelete", + "request": { + "$ref": "UndeleteAndroidAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] } }, "resources": { @@ -905,6 +978,11 @@ "pattern": "^projects/[^/]+$", "required": true, "type": "string" + }, + "showDeleted": { + "description": "Controls whether Apps in the DELETED state should be returned in the response. If not specified, only `ACTIVE` Apps will be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/{+parent}/iosApps", @@ -935,7 +1013,7 @@ "type": "string" }, "updateMask": { - "description": "Specifies which fields to update. Note that the fields `name`, `appId`, `projectId`, and `bundleId` are all immutable.", + "description": "Specifies which fields of the IosApp to update. Note that the following fields are immutable: `name`, `app_id`, `project_id`, and `bundle_id`. To update `state`, use any of the following endpoints: RemoveIosApp or UndeleteIosApp.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -952,6 +1030,64 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/firebase" ] + }, + "remove": { + "description": "Removes the specified IosApp from the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:remove", + "httpMethod": "POST", + "id": "firebase.projects.iosApps.remove", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the IosApp, in the format: projects/ PROJECT_IDENTIFIER/iosApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/iosApps/APP_ID Refer to the IosApp [name](../projects.iosApps#IosApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/iosApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:remove", + "request": { + "$ref": "RemoveIosAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "undelete": { + "description": "Restores the specified IosApp to the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}:undelete", + "httpMethod": "POST", + "id": "firebase.projects.iosApps.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the IosApp, in the format: projects/ PROJECT_IDENTIFIER/iosApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/iosApps/APP_ID Refer to the IosApp [name](../projects.iosApps#IosApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/iosApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:undelete", + "request": { + "$ref": "UndeleteIosAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] } } }, @@ -1068,6 +1204,11 @@ "pattern": "^projects/[^/]+$", "required": true, "type": "string" + }, + "showDeleted": { + "description": "Controls whether Apps in the DELETED state should be returned in the response. If not specified, only `ACTIVE` Apps will be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta1/{+parent}/webApps", @@ -1098,7 +1239,7 @@ "type": "string" }, "updateMask": { - "description": "Specifies which fields to update. Note that the fields `name`, `appId`, and `projectId` are all immutable.", + "description": "Specifies which fields of the WebApp to update. Note that the following fields are immutable: `name`, `app_id`, and `project_id`. To update `state`, use any of the following endpoints: RemoveWebApp or UndeleteWebApp.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1115,13 +1256,71 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/firebase" ] + }, + "remove": { + "description": "Removes the specified WebApp from the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}:remove", + "httpMethod": "POST", + "id": "firebase.projects.webApps.remove", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the WebApp, in the format: projects/ PROJECT_IDENTIFIER/webApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/webApps/APP_ID Refer to the WebApp [name](../projects.webApps#WebApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/webApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:remove", + "request": { + "$ref": "RemoveWebAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "undelete": { + "description": "Restores the specified WebApp to the FirebaseProject.", + "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}:undelete", + "httpMethod": "POST", + "id": "firebase.projects.webApps.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the WebApp, in the format: projects/ PROJECT_IDENTIFIER/webApps/APP_ID Since an APP_ID is a unique identifier, the Unique Resource from Sub-Collection access pattern may be used here, in the format: projects/-/webApps/APP_ID Refer to the WebApp [name](../projects.webApps#WebApp.FIELDS.name) field for details about PROJECT_IDENTIFIER and APP_ID values.", + "location": "path", + "pattern": "^projects/[^/]+/webApps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:undelete", + "request": { + "$ref": "UndeleteWebAppRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] } } } } } }, - "revision": "20220304", + "revision": "20230123", "rootUrl": "https://firebase.googleapis.com/", "schemas": { "AddFirebaseRequest": { @@ -1213,17 +1412,22 @@ "id": "AndroidApp", "properties": { "apiKeyId": { - "description": "The key_id of the GCP ApiKey associated with this App. If set must have no restrictions, or only have restrictions that are valid for the associated Firebase App. Cannot be set in create requests, instead an existing valid API Key will be chosen, or if no valid API Keys exist, one will be provisioned for you. Cannot be set to an empty value in update requests.", + "description": "The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `AndroidApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.androidApps/getConfig). If `api_key_id` is not set in requests to [`androidApps.Create`](../../rest/v1beta1/projects.androidApps/create), then Firebase automatically associates an `api_key_id` with the `AndroidApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `AndroidApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", "type": "string" }, "appId": { - "description": "Immutable. The globally unique, Firebase-assigned identifier for the `AndroidApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "description": "Output only. Immutable. The globally unique, Firebase-assigned identifier for the `AndroidApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "readOnly": true, "type": "string" }, "displayName": { "description": "The user-assigned display name for the `AndroidApp`.", "type": "string" }, + "etag": { + "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" + }, "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" @@ -1233,7 +1437,37 @@ "type": "string" }, "projectId": { - "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`.", + "description": "Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `AndroidApp`.", + "readOnly": true, + "type": "string" + }, + "sha1Hashes": { + "description": "The SHA1 certificate hashes for the AndroidApp.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sha256Hashes": { + "description": "The SHA256 certificate hashes for the AndroidApp.", + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "description": "Output only. The lifecycle state of the App.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The App is active.", + "The App has been soft-deleted. After an App has been in the `DELETED` state for more than 30 days, it is considered expired and will be permanently deleted. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete))." + ], + "readOnly": true, "type": "string" } }, @@ -1260,26 +1494,30 @@ "id": "DefaultResources", "properties": { "hostingSite": { - "description": "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`", + "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`", + "readOnly": true, "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.", + "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.", + "readOnly": true, "type": "string" }, "realtimeDatabaseInstance": { - "description": "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`", + "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`", + "readOnly": true, "type": "string" }, "storageBucket": { - "description": "The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com", + "description": "Output only. The default Cloud Storage for Firebase storage bucket, in the format: PROJECT_ID.appspot.com", + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1298,6 +1536,10 @@ "description": "A high-level summary of an App.", "id": "FirebaseAppInfo", "properties": { + "apiKeyId": { + "description": "The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the App. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's configuration artifact ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/getConfig) | [`IosApp`](../../rest/v1beta1/projects.iosApps/getConfig) | [`WebApp`](../../rest/v1beta1/projects.webApps/getConfig)). If `api_key_id` is not set in requests to create the App ([`AndroidApp`](../../rest/v1beta1/projects.androidApps/create) | [`IosApp`](../../rest/v1beta1/projects.iosApps/create) | [`WebApp`](../../rest/v1beta1/projects.webApps/create)), then Firebase automatically associates an `api_key_id` with the App. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned.", + "type": "string" + }, "appId": { "description": "Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified.", "readOnly": true, @@ -1331,6 +1573,21 @@ "The Firebase App is associated with web." ], "type": "string" + }, + "state": { + "description": "Output only. The lifecycle state of the App.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The App is active.", + "The App has been soft-deleted. After an App has been in the `DELETED` state for more than 30 days, it is considered expired and will be permanently deleted. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete))." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1339,29 +1596,43 @@ "description": "A `FirebaseProject` is the top-level Firebase entity. It is the container for Firebase Apps, Firebase Hosting sites, storage systems (Firebase Realtime Database, Cloud Firestore, Cloud Storage buckets), and other Firebase and Google Cloud Platform (GCP) resources. You create a `FirebaseProject` by calling AddFirebase and specifying an *existing* [GCP `Project`](https://cloud.google.com/resource-manager/reference/rest/v1/projects). This adds Firebase resources to the existing GCP `Project`. Since a FirebaseProject is actually also a GCP `Project`, a `FirebaseProject` has the same underlying GCP identifiers (`projectNumber` and `projectId`). This allows for easy interop with Google APIs.", "id": "FirebaseProject", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "A set of user-defined annotations for the FirebaseProject. Learn more about annotations in Google's [AIP-128 standard](https://google.aip.dev/128#annotations). These annotations are intended solely for developers and client-side tools. Firebase services will not mutate this annotations set.", + "type": "object" + }, "displayName": { "description": "The user-assigned display name of the Project.", "type": "string" }, + "etag": { + "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" + }, "name": { "description": "The resource name of the Project, in the format: projects/PROJECT_IDENTIFIER PROJECT_IDENTIFIER: the 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`.", "type": "string" }, "projectId": { - "description": "Immutable. A user-assigned unique identifier for the Project. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project.", + "description": "Output only. Immutable. A user-assigned unique identifier for the Project. This identifier may appear in URLs or names for some Firebase resources associated with the Project, but it should generally be treated as a convenience alias to reference the Project.", + "readOnly": true, "type": "string" }, "projectNumber": { - "description": "Immutable. The globally unique, Google-assigned canonical identifier for the Project. Use this identifier when configuring integrations and/or making API calls to Firebase or third-party services.", + "description": "Output only. Immutable. The globally unique, Google-assigned canonical identifier for the Project. Use this identifier when configuring integrations and/or making API calls to Firebase or third-party services.", "format": "int64", + "readOnly": true, "type": "string" }, "resources": { "$ref": "DefaultResources", - "description": "The default Firebase resources associated with the Project." + "description": "Output only. The default Firebase resources associated with the Project.", + "readOnly": true }, "state": { - "description": "Output only. The lifecycle state of the Project. Updates to the state must be performed via com.google.cloudresourcemanager.v1.Projects.DeleteProject and com.google.cloudresourcemanager.v1.Projects.UndeleteProject", + "description": "Output only. The lifecycle state of the Project.", "enum": [ "STATE_UNSPECIFIED", "ACTIVE", @@ -1369,8 +1640,8 @@ ], "enumDescriptions": [ "Unspecified state.", - "The normal and active state.", - "The Project has been marked for deletion by the user." + "The Project is active.", + "The Project has been soft-deleted." ], "readOnly": true, "type": "string" @@ -1383,11 +1654,12 @@ "id": "IosApp", "properties": { "apiKeyId": { - "description": "The key_id of the GCP ApiKey associated with this App. If set must have no restrictions, or only have restrictions that are valid for the associated Firebase App. Cannot be set in create requests, instead an existing valid API Key will be chosen, or if no valid API Keys exist, one will be provisioned for you. Cannot be set to an empty value in update requests.", + "description": "The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `IosApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.iosApps/getConfig). If `api_key_id` is not set in requests to [`iosApps.Create`](../../rest/v1beta1/projects.iosApps/create), then Firebase automatically associates an `api_key_id` with the `IosApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `IosApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", "type": "string" }, "appId": { - "description": "Immutable. The globally unique, Firebase-assigned identifier for the `IosApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "description": "Output only. Immutable. The globally unique, Firebase-assigned identifier for the `IosApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "readOnly": true, "type": "string" }, "appStoreId": { @@ -1402,12 +1674,32 @@ "description": "The user-assigned display name for the `IosApp`.", "type": "string" }, + "etag": { + "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" + }, "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" }, "projectId": { - "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`.", + "description": "Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `IosApp`.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The lifecycle state of the App.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The App is active.", + "The App has been soft-deleted. After an App has been in the `DELETED` state for more than 30 days, it is considered expired and will be permanently deleted. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete))." + ], + "readOnly": true, "type": "string" }, "teamId": { @@ -1633,6 +1925,20 @@ }, "type": "object" }, + "ProductMetadata": { + "description": "Metadata about a long-running Product operation.", + "id": "ProductMetadata", + "properties": { + "warningMessages": { + "description": "List of warnings related to the associated operation.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ProjectInfo": { "description": "A reference to a Google Cloud Platform (GCP) `Project`.", "id": "ProjectInfo", @@ -1662,6 +1968,72 @@ }, "type": "object" }, + "RemoveAndroidAppRequest": { + "id": "RemoveAndroidAppRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the App is not found, the request will succeed but no action will be taken on the server.", + "type": "boolean" + }, + "etag": { + "description": "Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "immediate": { + "description": "Determines whether to _immediately_ delete the AndroidApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteAndroidApp.", + "type": "boolean" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be removed.", + "type": "boolean" + } + }, + "type": "object" + }, + "RemoveIosAppRequest": { + "id": "RemoveIosAppRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the App is not found, the request will succeed but no action will be taken on the server.", + "type": "boolean" + }, + "etag": { + "description": "Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "immediate": { + "description": "Determines whether to _immediately_ delete the IosApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteIosApp", + "type": "boolean" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be removed.", + "type": "boolean" + } + }, + "type": "object" + }, + "RemoveWebAppRequest": { + "id": "RemoveWebAppRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the App is not found, the request will succeed but no action will be taken on the server.", + "type": "boolean" + }, + "etag": { + "description": "Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "immediate": { + "description": "Determines whether to _immediately_ delete the WebApp. If set to true, the App is immediately deleted from the Project and cannot be restored to the Project. If not set, defaults to false, which means the App will be set to expire in 30 days. Within the 30 days, the App may be restored to the Project using UndeleteWebApp", + "type": "boolean" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be removed.", + "type": "boolean" + } + }, + "type": "object" + }, "SearchFirebaseAppsResponse": { "id": "SearchFirebaseAppsResponse", "properties": { @@ -1784,16 +2156,59 @@ }, "type": "object" }, + "UndeleteAndroidAppRequest": { + "id": "UndeleteAndroidAppRequest", + "properties": { + "etag": { + "description": "Checksum provided in the AndroidApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be undeleted.", + "type": "boolean" + } + }, + "type": "object" + }, + "UndeleteIosAppRequest": { + "id": "UndeleteIosAppRequest", + "properties": { + "etag": { + "description": "Checksum provided in the IosApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be undeleted.", + "type": "boolean" + } + }, + "type": "object" + }, + "UndeleteWebAppRequest": { + "id": "UndeleteWebAppRequest", + "properties": { + "etag": { + "description": "Checksum provided in the WebApp resource. If provided, this checksum ensures that the client has an up-to-date value before proceeding.", + "type": "string" + }, + "validateOnly": { + "description": "If set to true, the request is only validated. The App will _not_ be undeleted.", + "type": "boolean" + } + }, + "type": "object" + }, "WebApp": { "description": "Details of a Firebase App for the web.", "id": "WebApp", "properties": { "apiKeyId": { - "description": "The key_id of the GCP ApiKey associated with this App. If set must have no restrictions, or only have restrictions that are valid for the associated Firebase App. Cannot be set in create requests, instead an existing valid API Key will be chosen, or if no valid API Keys exist, one will be provisioned for you. Cannot be set to an empty value in update requests.", + "description": "The globally unique, Google-assigned identifier (UID) for the Firebase API key associated with the `WebApp`. Be aware that this value is the UID of the API key, _not_ the [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key. The `keyString` is the value that can be found in the App's [configuration artifact](../../rest/v1beta1/projects.webApps/getConfig). If `api_key_id` is not set in requests to [`webApps.Create`](../../rest/v1beta1/projects.webApps/create), then Firebase automatically associates an `api_key_id` with the `WebApp`. This auto-associated key may be an existing valid key or, if no valid key exists, a new one will be provisioned. In patch requests, `api_key_id` cannot be set to an empty value, and the new UID must have no restrictions or only have restrictions that are valid for the associated `WebApp`. We recommend using the [Google Cloud Console](https://console.cloud.google.com/apis/credentials) to manage API keys.", "type": "string" }, "appId": { - "description": "Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "description": "Output only. Immutable. The globally unique, Firebase-assigned identifier for the `WebApp`. This identifier should be treated as an opaque token, as the data format is not specified.", + "readOnly": true, "type": "string" }, "appUrls": { @@ -1807,12 +2222,32 @@ "description": "The user-assigned display name for the `WebApp`.", "type": "string" }, + "etag": { + "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" + }, "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" }, "projectId": { - "description": "Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`.", + "description": "Output only. Immutable. A user-assigned unique identifier of the parent FirebaseProject for the `WebApp`.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The lifecycle state of the App.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The App is active.", + "The App has been soft-deleted. After an App has been in the `DELETED` state for more than 30 days, it is considered expired and will be permanently deleted. Up until this time, you can restore the App by calling `Undelete` ([Android](projects.androidApps/undelete) | [iOS](projects.iosApps/undelete) | [web](projects.webApps/undelete))." + ], + "readOnly": true, "type": "string" }, "webId": { @@ -1828,7 +2263,7 @@ "id": "WebAppConfig", "properties": { "apiKey": { - "description": "The API key associated with the `WebApp`.", + "description": "The [`keyString`](https://cloud.google.com/api-keys/docs/reference/rest/v2/projects.locations.keys#Key.FIELDS.key_string) of the API key associated with the `WebApp`. Note that this value is _not_ the [`apiKeyId`](../projects.webApps#WebApp.FIELDS.api_key_id) (the UID) of the API key associated with the `WebApp`.", "type": "string" }, "appId": { diff --git a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json index bb361fd63d..7d11f0d219 100644 --- a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json +++ b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json @@ -143,7 +143,7 @@ "apps": { "methods": { "exchangeAppAttestAssertion": { - "description": "Accepts an App Attest assertion and an artifact previously obtained from ExchangeAppAttestAttestation and verifies those with Apple. If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "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/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAssertion", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeAppAttestAssertion", @@ -164,7 +164,7 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAssertionRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -172,7 +172,7 @@ ] }, "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 AttestationTokenResponse using ExchangeAppAttestAssertion. For convenience and performance, this method's response object will also contain an App Check token encapsulated in an AttestationTokenResponse (if the verification is successful).", + "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/projects/{projectsId}/apps/{appsId}:exchangeAppAttestAttestation", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeAppAttestAttestation", @@ -201,7 +201,7 @@ ] }, "exchangeCustomToken": { - "description": "Validates a custom token signed using your project's Admin SDK service account credentials. If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "description": "Validates a custom token signed using your project's Admin SDK service account credentials. If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeCustomToken", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeCustomToken", @@ -222,7 +222,7 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeCustomTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -230,7 +230,7 @@ ] }, "exchangeDebugToken": { - "description": "Validates a debug token secret that you have previously created using CreateDebugToken. If valid, returns an App Check token encapsulated in an AttestationTokenResponse. Note that a restrictive quota is enforced on this method to prevent accidental exposure of the app to abuse.", + "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/projects/{projectsId}/apps/{appsId}:exchangeDebugToken", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeDebugToken", @@ -251,7 +251,7 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeDebugTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -259,7 +259,7 @@ ] }, "exchangeDeviceCheckToken": { - "description": "Accepts a [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) issued by DeviceCheck, and attempts to validate it with Apple. If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "description": "Accepts a [`device_token`](https://developer.apple.com/documentation/devicecheck/dcdevice) issued by DeviceCheck, and attempts to validate it with Apple. If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeDeviceCheckToken", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeDeviceCheckToken", @@ -280,7 +280,36 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeDeviceCheckTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "exchangePlayIntegrityToken": { + "description": "Validates an [integrity verdict response token from Play Integrity](https://developer.android.com/google/play/integrity/verdict#decrypt-verify). If valid, returns an AppCheckToken.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangePlayIntegrityToken", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.apps.exchangePlayIntegrityToken", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the Android 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": "^projects/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:exchangePlayIntegrityToken", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -288,7 +317,7 @@ ] }, "exchangeRecaptchaEnterpriseToken": { - "description": "Validates a [reCAPTCHA Enterprise response token](https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#retrieve_token). If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "description": "Validates a [reCAPTCHA Enterprise response token](https://cloud.google.com/recaptcha-enterprise/docs/create-assessment#retrieve_token). If valid, returns an App Check token AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaEnterpriseToken", "httpMethod": "POST", "id": "firebaseappcheck.projects.apps.exchangeRecaptchaEnterpriseToken", @@ -309,7 +338,7 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -317,7 +346,7 @@ ] }, "exchangeRecaptchaToken": { - "description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "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", "id": "firebaseappcheck.projects.apps.exchangeRecaptchaToken", @@ -338,7 +367,36 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "exchangeRecaptchaV3Token": { + "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}:exchangeRecaptchaV3Token", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.apps.exchangeRecaptchaV3Token", + "parameterOrder": [ + "app" + ], + "parameters": { + "app": { + "description": "Required. The relative resource name of the web 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": "^projects/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:exchangeRecaptchaV3Token", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -346,7 +404,7 @@ ] }, "exchangeSafetyNetToken": { - "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an App Check token encapsulated in an AttestationTokenResponse.", + "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", "id": "firebaseappcheck.projects.apps.exchangeSafetyNetToken", @@ -367,7 +425,7 @@ "$ref": "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse" + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -396,7 +454,36 @@ "$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeRequest" }, "response": { - "$ref": "GoogleFirebaseAppcheckV1betaAppAttestChallengeResponse" + "$ref": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "generatePlayIntegrityChallenge": { + "description": "Generates a challenge that protects the integrity of an immediately following integrity verdict request to the Play Integrity API. The next call to ExchangePlayIntegrityToken using the resulting integrity token will verify the presence and validity of the challenge. A challenge should not be reused for multiple calls.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:generatePlayIntegrityChallenge", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.apps.generatePlayIntegrityChallenge", + "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": "^projects/[^/]+/apps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+app}:generatePlayIntegrityChallenge", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -756,6 +843,103 @@ } } }, + "playIntegrityConfig": { + "methods": { + "batchGet": { + "description": "Atomically gets the PlayIntegrityConfigs for the specified list of apps.", + "flatPath": "v1beta/projects/{projectsId}/apps/-/playIntegrityConfig:batchGet", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.apps.playIntegrityConfig.batchGet", + "parameterOrder": [ + "parent" + ], + "parameters": { + "names": { + "description": "Required. The relative resource names of the PlayIntegrityConfigs to retrieve, in the format ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ``` A maximum of 100 objects can be retrieved in a batch.", + "location": "query", + "repeated": true, + "type": "string" + }, + "parent": { + "description": "Required. The parent project name shared by all PlayIntegrityConfigs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/apps/-/playIntegrityConfig:batchGet", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "get": { + "description": "Gets the PlayIntegrityConfig for the specified app.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/playIntegrityConfig", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.apps.playIntegrityConfig.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the PlayIntegrityConfig, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```", + "location": "path", + "pattern": "^projects/[^/]+/apps/[^/]+/playIntegrityConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "patch": { + "description": "Updates the PlayIntegrityConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange Play Integrity tokens for App Check tokens.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/playIntegrityConfig", + "httpMethod": "PATCH", + "id": "firebaseappcheck.projects.apps.playIntegrityConfig.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the Play Integrity configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```", + "location": "path", + "pattern": "^projects/[^/]+/apps/[^/]+/playIntegrityConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. A comma-separated list of names of fields in the PlayIntegrityConfig Gets to update. Example: `token_ttl`.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + } + }, "recaptchaConfig": { "methods": { "batchGet": { @@ -950,6 +1134,103 @@ } } }, + "recaptchaV3Config": { + "methods": { + "batchGet": { + "description": "Atomically gets the RecaptchaV3Configs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.", + "flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaV3Config:batchGet", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.apps.recaptchaV3Config.batchGet", + "parameterOrder": [ + "parent" + ], + "parameters": { + "names": { + "description": "Required. The relative resource names of the RecaptchaV3Configs to retrieve, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ``` A maximum of 100 objects can be retrieved in a batch.", + "location": "query", + "repeated": true, + "type": "string" + }, + "parent": { + "description": "Required. The parent project name shared by all RecaptchaV3Configs being retrieved, in the format ``` projects/{project_number} ``` The parent collection in the `name` field of any resource being retrieved must match this field, or the entire batch fails.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/apps/-/recaptchaV3Config:batchGet", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "get": { + "description": "Gets the RecaptchaV3Config for the specified app. For security reasons, the `site_secret` field is never populated in the response.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaV3Config", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.apps.recaptchaV3Config.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the RecaptchaV3Config, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```", + "location": "path", + "pattern": "^projects/[^/]+/apps/[^/]+/recaptchaV3Config$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "patch": { + "description": "Updates the RecaptchaV3Config for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA V3 tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.", + "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaV3Config", + "httpMethod": "PATCH", + "id": "firebaseappcheck.projects.apps.recaptchaV3Config.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```", + "location": "path", + "pattern": "^projects/[^/]+/apps/[^/]+/recaptchaV3Config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. A comma-separated list of names of fields in the RecaptchaV3Config to update. Example: `site_secret`.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + } + }, "safetyNetConfig": { "methods": { "batchGet": { @@ -1183,28 +1464,11 @@ } } }, - "revision": "20220225", + "revision": "20230116", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { - "GoogleFirebaseAppcheckV1betaAppAttestChallengeResponse": { - "description": "Response message for the GenerateAppAttestChallenge method.", - "id": "GoogleFirebaseAppcheckV1betaAppAttestChallengeResponse", - "properties": { - "challenge": { - "description": "A one-time use challenge for the client to pass to the App Attest API.", - "format": "byte", - "type": "string" - }, - "ttl": { - "description": "The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.", - "format": "google-duration", - "type": "string" - } - }, - "type": "object" - }, "GoogleFirebaseAppcheckV1betaAppAttestConfig": { - "description": "An app's App Attest configuration object. This configuration controls certain properties of the App Check token returned by ExchangeAppAttestAttestation and ExchangeAppAttestAssertion, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).", + "description": "An app's App Attest configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeAppAttestAttestation and ExchangeAppAttestAssertion, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).", "id": "GoogleFirebaseAppcheckV1betaAppAttestConfig", "properties": { "name": { @@ -1219,6 +1483,26 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaAppCheckToken": { + "description": "Encapsulates an *App Check token*, which are used to access Firebase services protected by App Check.", + "id": "GoogleFirebaseAppcheckV1betaAppCheckToken", + "properties": { + "attestationToken": { + "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" + }, + "token": { + "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" + }, + "ttl": { + "description": "The duration from the time this token is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaAttestationTokenResponse": { "description": "Encapsulates an *App Check token*, which are used to access Firebase services protected by App Check.", "id": "GoogleFirebaseAppcheckV1betaAttestationTokenResponse", @@ -1263,6 +1547,20 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse": { + "description": "Response message for the BatchGetPlayIntegrityConfigs method.", + "id": "GoogleFirebaseAppcheckV1betaBatchGetPlayIntegrityConfigsResponse", + "properties": { + "configs": { + "description": "PlayIntegrityConfigs retrieved.", + "items": { + "$ref": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse": { "description": "Response message for the BatchGetRecaptchaConfigs method.", "id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaConfigsResponse", @@ -1291,6 +1589,20 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse": { + "description": "Response message for the BatchGetRecaptchaV3Configs method.", + "id": "GoogleFirebaseAppcheckV1betaBatchGetRecaptchaV3ConfigsResponse", + "properties": { + "configs": { + "description": "RecaptchaV3Configs retrieved.", + "items": { + "$ref": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse": { "description": "Response message for the BatchGetSafetyNetConfigs method.", "id": "GoogleFirebaseAppcheckV1betaBatchGetSafetyNetConfigsResponse", @@ -1358,7 +1670,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaDeviceCheckConfig": { - "description": "An app's DeviceCheck configuration object. This configuration is used by ExchangeDeviceCheckToken to validate device tokens issued to apps by DeviceCheck. It also controls certain properties of the returned App Check token, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).", + "description": "An app's DeviceCheck configuration object. This configuration is used by ExchangeDeviceCheckToken to validate device tokens issued to apps by DeviceCheck. It also controls certain properties of the returned `AppCheckToken`, such as its ttl. Note that the Team ID registered with your app is used as part of the validation process. Please register it via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.iosApps/patch).", "id": "GoogleFirebaseAppcheckV1betaDeviceCheckConfig", "properties": { "keyId": { @@ -1434,6 +1746,10 @@ "description": "Response message for the ExchangeAppAttestAttestation method.", "id": "GoogleFirebaseAppcheckV1betaExchangeAppAttestAttestationResponse", "properties": { + "appCheckToken": { + "$ref": "GoogleFirebaseAppcheckV1betaAppCheckToken", + "description": "Encapsulates an App Check token." + }, "artifact": { "description": "An artifact that can be used in future calls to ExchangeAppAttestAssertion.", "format": "byte", @@ -1479,6 +1795,17 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest": { + "description": "Request message for the ExchangePlayIntegrityToken method.", + "id": "GoogleFirebaseAppcheckV1betaExchangePlayIntegrityTokenRequest", + "properties": { + "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" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest": { "description": "Request message for the ExchangeRecaptchaEnterpriseToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaEnterpriseTokenRequest", @@ -1501,6 +1828,17 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest": { + "description": "Request message for the ExchangeRecaptchaV3Token method.", + "id": "GoogleFirebaseAppcheckV1betaExchangeRecaptchaV3TokenRequest", + "properties": { + "recaptchaV3Token": { + "description": "Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](https://developers.google.com/recaptcha/docs/v3).", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest": { "description": "Request message for the ExchangeSafetyNetToken method.", "id": "GoogleFirebaseAppcheckV1betaExchangeSafetyNetTokenRequest", @@ -1518,6 +1856,45 @@ "properties": {}, "type": "object" }, + "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse": { + "description": "Response message for the GenerateAppAttestChallenge method.", + "id": "GoogleFirebaseAppcheckV1betaGenerateAppAttestChallengeResponse", + "properties": { + "challenge": { + "description": "A one-time use challenge for the client to pass to the App Attest API.", + "format": "byte", + "type": "string" + }, + "ttl": { + "description": "The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest": { + "description": "Request message for the GeneratePlayIntegrityChallenge method.", + "id": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeRequest", + "properties": {}, + "type": "object" + }, + "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse": { + "description": "Response message for the GeneratePlayIntegrityChallenge method.", + "id": "GoogleFirebaseAppcheckV1betaGeneratePlayIntegrityChallengeResponse", + "properties": { + "challenge": { + "description": "A one-time use [challenge](https://developer.android.com/google/play/integrity/verdict#protect-against-replay-attacks) for the client to pass to the Play Integrity API.", + "type": "string" + }, + "ttl": { + "description": "The duration from the time this challenge is minted until its expiration. This field is intended to ease client-side token management, since the client may have clock skew, but is still able to accurately measure a duration.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaListDebugTokensResponse": { "description": "Response message for the ListDebugTokens method.", "id": "GoogleFirebaseAppcheckV1betaListDebugTokensResponse", @@ -1554,6 +1931,22 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig": { + "description": "An app's Play Integrity configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangePlayIntegrityToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by the Play Integrity API; 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": "GoogleFirebaseAppcheckV1betaPlayIntegrityConfig", + "properties": { + "name": { + "description": "Required. The relative resource name of the Play Integrity configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/playIntegrityConfig ```", + "type": "string" + }, + "tokenTtl": { + "description": "Specifies the duration for which App Check tokens exchanged from Play Integrity tokens will be valid. If unset, a default value of 1 hour is assumed. Must be between 30 minutes and 7 days, inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaPublicJwk": { "description": "A JWK as specified by [section 4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4) and [section 6.3.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-6.3.1).", "id": "GoogleFirebaseAppcheckV1betaPublicJwk", @@ -1600,7 +1993,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaRecaptchaConfig": { - "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 App Check token, such as its ttl.", + "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": { "name": { @@ -1625,7 +2018,7 @@ "type": "object" }, "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig": { - "description": "An app's reCAPTCHA Enterprise configuration object. This configuration is used by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA Enterprise. It also controls certain properties of the returned App Check token, such as its ttl.", + "description": "An app's reCAPTCHA Enterprise configuration object. This configuration is used by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens issued to apps by reCAPTCHA Enterprise. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.", "id": "GoogleFirebaseAppcheckV1betaRecaptchaEnterpriseConfig", "properties": { "name": { @@ -1644,8 +2037,33 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaRecaptchaV3Config": { + "description": "An app's reCAPTCHA v3 configuration object. This configuration is used by ExchangeRecaptchaV3Token to validate reCAPTCHA tokens issued to apps by reCAPTCHA v3. It also controls certain properties of the returned `AppCheckToken`, such as its ttl.", + "id": "GoogleFirebaseAppcheckV1betaRecaptchaV3Config", + "properties": { + "name": { + "description": "Required. The relative resource name of the reCAPTCHA v3 configuration object, in the format: ``` projects/{project_number}/apps/{app_id}/recaptchaV3Config ```", + "type": "string" + }, + "siteSecret": { + "description": "Required. Input only. The site secret used to identify your service for reCAPTCHA v3 verification. For security reasons, this field will never be populated in any response.", + "type": "string" + }, + "siteSecretSet": { + "description": "Output only. Whether the `site_secret` field was previously set. Since we will never return the `site_secret` field, this field is the only way to find out whether it was previously set.", + "readOnly": true, + "type": "boolean" + }, + "tokenTtl": { + "description": "Specifies the duration for which App Check tokens exchanged from reCAPTCHA tokens will be valid. If unset, a default value of 1 day is assumed. Must be between 30 minutes and 7 days, inclusive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaSafetyNetConfig": { - "description": "An app's SafetyNet configuration object. This configuration controls certain properties of the App Check token 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).", + "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": { "name": { @@ -1702,7 +2120,7 @@ "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/firebasedatabase/v1beta/firebasedatabase-api.json b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json index 8759c6b1bb..97b499af8a 100644 --- a/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json +++ b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json @@ -21,7 +21,7 @@ "baseUrl": "https://firebasedatabase.googleapis.com/", "batchPath": "batch", "canonicalName": "Firebase Realtime Database", - "description": "The Firebase Realtime Database Management API enables programmatic provisioning and management of Realtime Database instances.", + "description": "The Firebase Realtime Database API enables programmatic provisioning and management of Realtime Database instances.", "discoveryVersion": "v1", "documentationLink": "https://firebase.google.com/docs/reference/rest/database/database-management/rest/", "fullyEncodeReservedExpansion": true, @@ -135,7 +135,7 @@ "type": "string" }, "parent": { - "description": "The parent project for which to create a database instance, in the form: `projects/{project-number}/locations/{location-id}`.", + "description": "Required. The parent project for which to create a database instance, in the form: `projects/{project-number}/locations/{location-id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -160,7 +160,7 @@ ] }, "delete": { - "description": "Marks a DatabaseInstance to be deleted. The DatabaseInstance will be purged within 30 days. The default database cannot be deleted. IDs for deleted database instances may never be recovered or re-used. The Database may only be deleted if it is already in a DISABLED state.", + "description": "Marks a DatabaseInstance to be deleted. The DatabaseInstance will be set to the DELETED state for 20 days, and will be purged within 30 days. The default database cannot be deleted. IDs for deleted database instances may never be recovered or re-used. The Database may only be deleted if it is already in a DISABLED state.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", "httpMethod": "DELETE", "id": "firebasedatabase.projects.locations.instances.delete", @@ -169,7 +169,7 @@ ], "parameters": { "name": { - "description": "The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", + "description": "Required. The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, @@ -195,7 +195,7 @@ ], "parameters": { "name": { - "description": "The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", + "description": "Required. The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, @@ -224,7 +224,7 @@ ], "parameters": { "name": { - "description": "The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`. `database-id` is a globally unique identifier across all parent collections. For convenience, this method allows you to supply `-` as a wildcard character in place of specific collections under `projects` and `locations`. The resulting wildcarding form of the method is: `projects/-/locations/-/instances/{database-id}`.", + "description": "Required. The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`. `database-id` is a globally unique identifier across all parent collections. For convenience, this method allows you to supply `-` as a wildcard character in place of specific collections under `projects` and `locations`. The resulting wildcarding form of the method is: `projects/-/locations/-/instances/{database-id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, @@ -263,11 +263,16 @@ "type": "string" }, "parent": { - "description": "The parent project for which to list database instances, in the form: `projects/{project-number}/locations/{location-id}` To list across all locations, use a parent in the form: `projects/{project-number}/locations/-`", + "description": "Required. The parent project for which to list database instances, in the form: `projects/{project-number}/locations/{location-id}` To list across all locations, use a parent in the form: `projects/{project-number}/locations/-`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" + }, + "showDeleted": { + "description": "Indicate that DatabaseInstances in the `DELETED` state should also be returned.", + "location": "query", + "type": "boolean" } }, "path": "v1beta/{+parent}/instances", @@ -291,7 +296,7 @@ ], "parameters": { "name": { - "description": "The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", + "description": "Required. The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, @@ -309,6 +314,35 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/firebase" ] + }, + "undelete": { + "description": "Restores a DatabaseInstance that was previously marked to be deleted. After the delete method is used, DatabaseInstances are set to the DELETED state for 20 days, and will be purged within 30 days. Databases in the DELETED state can be undeleted without losing any data. This method may only be used on a DatabaseInstance in the DELETED state. Purged DatabaseInstances may not be recovered.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:undelete", + "httpMethod": "POST", + "id": "firebasedatabase.projects.locations.instances.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully qualified resource name of the database instance, in the form: `projects/{project-number}/locations/{location-id}/instances/{database-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}:undelete", + "request": { + "$ref": "UndeleteDatabaseInstanceRequest" + }, + "response": { + "$ref": "DatabaseInstance" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] } } } @@ -317,7 +351,7 @@ } } }, - "revision": "20220304", + "revision": "20230123", "rootUrl": "https://firebasedatabase.googleapis.com/", "schemas": { "DatabaseInstance": { @@ -325,7 +359,8 @@ "id": "DatabaseInstance", "properties": { "databaseUrl": { - "description": "Immutable. The globally unique hostname of the database.", + "description": "Output only. Output Only. The globally unique hostname of the database.", + "readOnly": true, "type": "string" }, "name": { @@ -333,11 +368,12 @@ "type": "string" }, "project": { - "description": "The resource name of the project this instance belongs to. For example: `projects/{project-number}`.", + "description": "Output only. The resource name of the project this instance belongs to. For example: `projects/{project-number}`.", + "readOnly": true, "type": "string" }, "state": { - "description": "The database's lifecycle state. Read-only.", + "description": "Output only. The database's lifecycle state. Read-only.", "enum": [ "LIFECYCLE_STATE_UNSPECIFIED", "ACTIVE", @@ -350,10 +386,11 @@ "The database is in a disabled state. It can be re-enabled later.", "The database is in a deleted state." ], + "readOnly": true, "type": "string" }, "type": { - "description": "The database instance type. On creation only USER_DATABASE is allowed, which is also the default when omitted.", + "description": "Immutable. The database instance type. On creation only USER_DATABASE is allowed, which is also the default when omitted.", "enum": [ "DATABASE_INSTANCE_TYPE_UNSPECIFIED", "DEFAULT_DATABASE", @@ -398,10 +435,16 @@ "id": "ReenableDatabaseInstanceRequest", "properties": {}, "type": "object" + }, + "UndeleteDatabaseInstanceRequest": { + "description": "The request sent to UndeleteDatabaseInstance method.", + "id": "UndeleteDatabaseInstanceRequest", + "properties": {}, + "type": "object" } }, "servicePath": "", - "title": "Firebase Realtime Database Management API", + "title": "Firebase Realtime Database API", "version": "v1beta", "version_module": true } \ No newline at end of file diff --git a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json index a6442cdf0f..924729f642 100644 --- a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json +++ b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json @@ -224,7 +224,7 @@ } } }, - "revision": "20220228", + "revision": "20230123", "rootUrl": "https://firebasedynamiclinks.googleapis.com/", "schemas": { "AnalyticsInfo": { diff --git a/etc/api/firebasehosting/v1/firebasehosting-api.json b/etc/api/firebasehosting/v1/firebasehosting-api.json index a7a4b43e34..f65fa73758 100644 --- a/etc/api/firebasehosting/v1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1/firebasehosting-api.json @@ -186,7 +186,7 @@ } } }, - "revision": "20220212", + "revision": "20230123", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -196,7 +196,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/firebasehosting/v1beta1/firebasehosting-api.json b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json index 55db95a019..1286f77009 100644 --- a/etc/api/firebasehosting/v1beta1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json @@ -315,7 +315,7 @@ ], "parameters": { "name": { - "description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", + "description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", "location": "path", "pattern": "^projects/[^/]+/sites/[^/]+$", "required": true, @@ -1939,7 +1939,7 @@ } } }, - "revision": "20220212", + "revision": "20230123", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "ActingUser": { @@ -2232,7 +2232,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2532,6 +2532,10 @@ "description": "The function to proxy requests to. Must match the exported function name exactly.", "type": "string" }, + "functionRegion": { + "description": "Optional. Specify a Cloud region for rewritten Functions invocations. If not provided, defaults to us-central1.", + "type": "string" + }, "glob": { "description": "The user-supplied [glob](https://firebase.google.com/docs/hosting/full-config#glob_pattern_matching) to match against the request URL path.", "type": "string" @@ -2618,7 +2622,7 @@ "id": "Site", "properties": { "appId": { - "description": "Optional. The [ID of a Web App](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) associated with the Hosting site.", + "description": "Optional. The [ID of a Web App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) associated with the Hosting site.", "type": "string" }, "defaultUrl": { @@ -2634,7 +2638,7 @@ "type": "object" }, "name": { - "description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", + "description": "Output only. The fully-qualified resource name of the Hosting site, in the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).", "readOnly": true, "type": "string" }, diff --git a/etc/api/firebaseml/v1/firebaseml-api.json b/etc/api/firebaseml/v1/firebaseml-api.json index 7507265819..d6624707b7 100644 --- a/etc/api/firebaseml/v1/firebaseml-api.json +++ b/etc/api/firebaseml/v1/firebaseml-api.json @@ -204,7 +204,7 @@ } } }, - "revision": "20220302", + "revision": "20230123", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -214,7 +214,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/firebaseml/v1beta2/firebaseml-api.json b/etc/api/firebaseml/v1beta2/firebaseml-api.json index f635749680..2c109aa3ea 100644 --- a/etc/api/firebaseml/v1beta2/firebaseml-api.json +++ b/etc/api/firebaseml/v1beta2/firebaseml-api.json @@ -318,7 +318,7 @@ } } }, - "revision": "20220302", + "revision": "20230123", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "DownloadModelResponse": { @@ -359,7 +359,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/firebaserules/v1/firebaserules-api.json b/etc/api/firebaserules/v1/firebaserules-api.json index 49ed6b662c..1af0429494 100644 --- a/etc/api/firebaserules/v1/firebaserules-api.json +++ b/etc/api/firebaserules/v1/firebaserules-api.json @@ -477,7 +477,7 @@ } } }, - "revision": "20220127", + "revision": "20221228", "rootUrl": "https://firebaserules.googleapis.com/", "schemas": { "Arg": { @@ -496,7 +496,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -736,7 +736,7 @@ "type": "string" }, "rulesetName": { - "description": "Required. Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must exist the `Release` to be created.", + "description": "Required. Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must exist for the `Release` to be created.", "type": "string" }, "updateTime": { diff --git a/etc/api/firebasestorage/v1beta/firebasestorage-api.json b/etc/api/firebasestorage/v1beta/firebasestorage-api.json index 1b161c53bc..18f771361d 100644 --- a/etc/api/firebasestorage/v1beta/firebasestorage-api.json +++ b/etc/api/firebasestorage/v1beta/firebasestorage-api.json @@ -238,7 +238,7 @@ } } }, - "revision": "20220218", + "revision": "20230106", "rootUrl": "https://firebasestorage.googleapis.com/", "schemas": { "AddFirebaseRequest": { @@ -251,25 +251,15 @@ "description": "A storage bucket and its relation to a parent Firebase project.", "id": "Bucket", "properties": { - "location": { - "description": "Output only. Location of the storage bucket.", - "readOnly": true, - "type": "string" - }, "name": { "description": "Resource name of the bucket.", "type": "string" - }, - "reconciling": { - "description": "Output only. Represents whether a bucket is being moved to a new location, in which case reconciling is set to true.", - "readOnly": true, - "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/firestore/v1/firestore-api.json b/etc/api/firestore/v1/firestore-api.json index 04991aed36..9e17e21dd8 100644 --- a/etc/api/firestore/v1/firestore-api.json +++ b/etc/api/firestore/v1/firestore-api.json @@ -112,6 +112,86 @@ "resources": { "databases": { "methods": { + "create": { + "description": "Create a database.", + "flatPath": "v1/projects/{projectsId}/databases", + "httpMethod": "POST", + "id": "firestore.projects.databases.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "databaseId": { + "description": "Required. The ID to use for the database, which will become the final component of the database's resource name. 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.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. A parent name of the form `projects/{project_id}`", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/databases", + "request": { + "$ref": "GoogleFirestoreAdminV1Database" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, + "delete": { + "description": "Deletes a database.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}", + "httpMethod": "DELETE", + "id": "firestore.projects.databases.delete", + "parameterOrder": [ + "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}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "exportDocuments": { "description": "Exports a copy of all or a subset of documents from Google Cloud Firestore to another storage system, such as Google Cloud Storage. Recent updates to documents may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage. For more details on export behavior and output format, refer to: https://cloud.google.com/firestore/docs/manage-data/export-import", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}:exportDocuments", @@ -754,7 +834,7 @@ ], "parameters": { "collectionId": { - "description": "Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`.", + "description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", "location": "path", "required": true, "type": "string" @@ -766,18 +846,18 @@ "type": "string" }, "orderBy": { - "description": "The order to sort results by. For example: `priority desc, name`.", + "description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of documents to return.", + "description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The `next_page_token` value returned from a previous List request, if any.", + "description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", "location": "query", "type": "string" }, @@ -789,18 +869,18 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This may not be older than 270 seconds.", "format": "google-datetime", "location": "query", "type": "string" }, "showMissing": { - "description": "If the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key but will not have fields, Document.create_time, or Document.update_time set. Requests with `show_missing` may not specify `where` or `order_by`.", + "description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", "location": "query", "type": "boolean" }, "transaction": { - "description": "Reads documents in a transaction.", + "description": "Perform the read as part of an already active transaction.", "format": "byte", "location": "query", "type": "string" @@ -844,6 +924,78 @@ "https://www.googleapis.com/auth/datastore" ] }, + "listDocuments": { + "description": "Lists documents.", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{collectionId}", + "httpMethod": "GET", + "id": "firestore.projects.databases.documents.listDocuments", + "parameterOrder": [ + "parent", + "collectionId" + ], + "parameters": { + "collectionId": { + "description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", + "location": "path", + "required": true, + "type": "string" + }, + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", + "location": "query", + "repeated": true, + "type": "string" + }, + "orderBy": { + "description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/documents$", + "required": true, + "type": "string" + }, + "readTime": { + "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "showMissing": { + "description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", + "location": "query", + "type": "boolean" + }, + "transaction": { + "description": "Perform the read as part of an already active transaction.", + "format": "byte", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/{collectionId}", + "response": { + "$ref": "ListDocumentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "listen": { "description": "Listens to changes.", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents:listen", @@ -983,6 +1135,35 @@ "https://www.googleapis.com/auth/datastore" ] }, + "runAggregationQuery": { + "description": "Runs an aggregation query. Rather than producing Document results like Firestore.RunQuery, this API allows running an aggregation to produce a series of AggregationResult server-side. High-Level Example: ``` -- Return the number of documents in table given a filter. SELECT COUNT(*) FROM ( SELECT * FROM k where a = true ); ```", + "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runAggregationQuery", + "httpMethod": "POST", + "id": "firestore.projects.databases.documents.runAggregationQuery", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:runAggregationQuery", + "request": { + "$ref": "RunAggregationQueryRequest" + }, + "response": { + "$ref": "RunAggregationQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "runQuery": { "description": "Runs a query.", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", @@ -1210,7 +1391,7 @@ ], "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).", + "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" }, @@ -1247,9 +1428,38 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://firestore.googleapis.com/", "schemas": { + "Aggregation": { + "description": "Defines a 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.", + "type": "string" + }, + "count": { + "$ref": "Count", + "description": "Count aggregator." + } + }, + "type": "object" + }, + "AggregationResult": { + "description": "The result of a single bucket from a Firestore aggregation query. The keys of `aggregate_fields` are the same for all results in an aggregation query, unlike document queries which can have different fields present for each result.", + "id": "AggregationResult", + "properties": { + "aggregateFields": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The result of the aggregation functions, ex: `COUNT(*) AS total_docs`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", + "type": "object" + } + }, + "type": "object" + }, "ArrayValue": { "description": "An array value.", "id": "ArrayValue", @@ -1444,7 +1654,7 @@ "id": "CompositeFilter", "properties": { "filters": { - "description": "The list of filters to combine. Must contain at least one filter.", + "description": "The list of filters to combine. Requires: * At least one filter is present.", "items": { "$ref": "Filter" }, @@ -1458,13 +1668,25 @@ ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." + "Documents are required to satisfy all of the combined filters." ], "type": "string" } }, "type": "object" }, + "Count": { + "description": "Count of documents that match the query. The `COUNT(*)` aggregation function operates on the entire document so it does not require a field reference.", + "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.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Cursor": { "description": "A position in a query result set.", "id": "Cursor", @@ -1633,7 +1855,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1701,10 +1923,11 @@ "type": "object" }, "FieldReference": { - "description": "A reference to a field, such as `max(messages.time) as max_time`.", + "description": "A reference to a field in a document, ex: `stats.operations`.", "id": "FieldReference", "properties": { "fieldPath": { + "description": "The relative path of the document being referenced. Requires: * Conform to document field name limitations.", "type": "string" } }, @@ -1776,6 +1999,20 @@ "description": "A Cloud Firestore Database. Currently only one database is allowed per cloud project; this database must have a `database_id` of '(default)'.", "id": "GoogleFirestoreAdminV1Database", "properties": { + "appEngineIntegrationMode": { + "description": "The App Engine integration mode to use for this database.", + "enum": [ + "APP_ENGINE_INTEGRATION_MODE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "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." + ], + "type": "string" + }, "concurrencyMode": { "description": "The concurrency control mode to use for this database.", "enum": [ @@ -1786,9 +2023,9 @@ ], "enumDescriptions": [ "Not used.", - "Use optimistic concurrency control by default. This setting is available for Cloud Firestore customers.", - "Use pessimistic concurrency control by default. This setting is available for Cloud Firestore customers. This is the default setting for Cloud Firestore.", - "Use optimistic concurrency control with entity groups by default. This is the only available setting for Cloud Datastore customers. This is the default setting for Cloud Datastore." + "Use optimistic concurrency control by default. This mode is available for Cloud Firestore databases.", + "Use pessimistic concurrency control by default. This mode is available for Cloud Firestore databases. This is the default setting for Cloud Firestore.", + "Use optimistic concurrency control with entity groups by default. This is the only available mode for Cloud Datastore. This mode is also available for Cloud Firestore with Datastore Mode but is not recommended." ], "type": "string" }, @@ -1796,6 +2033,11 @@ "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" }, + "keyPrefix": { + "description": "Output only. The key_prefix for this database. This key_prefix is used, in combination with the project id (\"~\") to construct the application id that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. This value may be empty in which case the appid to use for URL-encoded keys is the project_id (eg: foo instead of v~foo).", + "readOnly": true, + "type": "string" + }, "locationId": { "description": "The location of the database. Available databases are listed at https://cloud.google.com/firestore/docs/locations.", "type": "string" @@ -1837,6 +2079,13 @@ "format": "google-datetime", "type": "string" }, + "namespaceIds": { + "description": "Which namespace ids are being exported.", + "items": { + "type": "string" + }, + "type": "array" + }, "operationState": { "description": "The state of the export operation.", "enum": [ @@ -1862,7 +2111,7 @@ "type": "string" }, "outputUriPrefix": { - "description": "Where the entities are being exported to.", + "description": "Where the documents are being exported to.", "type": "string" }, "progressBytes": { @@ -1892,6 +2141,13 @@ }, "type": "array" }, + "namespaceIds": { + "description": "An empty list represents all namespaces. This is the preferred usage for databases that don't use namespaces. An empty string element represents the default namespace. This should be used if the database has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", + "items": { + "type": "string" + }, + "type": "array" + }, "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" @@ -1921,6 +2177,10 @@ "name": { "description": "Required. A field name of the form `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/fields/{field_path}` A field path may be a simple field name, e.g. `address` or a path to fields within map_value , e.g. `address.city`, or a special field path. The only valid special field is `*`, which represents any field. Field paths may be quoted using ` (backtick). The only character that needs to be escaped within a quoted field path is the backtick character itself, escaped using a backslash. Special characters in field paths that must be quoted include: `*`, `.`, ``` (backtick), `[`, `]`, as well as any ascii symbolic characters. Examples: (Note: Comments here are written in markdown syntax, so there is an additional layer of backticks to represent a code block) `\\`address.city\\`` represents a field named `address.city`, not the map key `city` in the field `address`. `\\`*\\`` represents a field named `*`, not any field. A special `Field` contains the default indexing settings for all fields. This field's resource name is: `projects/{project_id}/databases/{database_id}/collectionGroups/__default__/fields/*` Indexes defined on this `Field` will be applied to all fields which do not have their own `Field` index configuration.", "type": "string" + }, + "ttlConfig": { + "$ref": "GoogleFirestoreAdminV1TtlConfig", + "description": "The TTL configuration for this `Field`. Setting or unsetting this will enable or disable the TTL for documents that have this `Field`." } }, "type": "object" @@ -1981,6 +2241,10 @@ "Request has finished being cancelled after user called google.longrunning.Operations.CancelOperation." ], "type": "string" + }, + "ttlConfigDelta": { + "$ref": "GoogleFirestoreAdminV1TtlConfigDelta", + "description": "Describes the deltas of TTL configuration." } }, "type": "object" @@ -2005,6 +2269,13 @@ "description": "The location of the documents being imported.", "type": "string" }, + "namespaceIds": { + "description": "Which namespace ids are being imported.", + "items": { + "type": "string" + }, + "type": "array" + }, "operationState": { "description": "The state of the import operation.", "enum": [ @@ -2059,6 +2330,13 @@ "inputUriPrefix": { "description": "Location of the exported files. This must match the output_uri_prefix of an ExportDocumentsResponse from an export that has completed successfully. See: google.firestore.admin.v1.ExportDocumentsResponse.output_uri_prefix.", "type": "string" + }, + "namespaceIds": { + "description": "An empty list represents all namespaces. This is the preferred usage for databases that don't use namespaces. An empty string element represents the default namespace. This should be used if the database has data in non-default namespaces, but doesn't want to include them. Each namespace in this list must be unique.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2067,8 +2345,20 @@ "description": "Cloud Firestore indexes enable simple and complex queries against documents in a database.", "id": "GoogleFirestoreAdminV1Index", "properties": { + "apiScope": { + "description": "The API scope supported by this index.", + "enum": [ + "ANY_API", + "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 in Datastore Mode query API." + ], + "type": "string" + }, "fields": { - "description": "The fields supported by this index. For composite indexes, this is always 2 or more fields. The last field entry is always for the field path `__name__`. If, on creation, `__name__` was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the `__name__` will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field.", + "description": "The fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path `__name__`. If, on creation, `__name__` was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the `__name__` will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field.", "items": { "$ref": "GoogleFirestoreAdminV1IndexField" }, @@ -2083,12 +2373,14 @@ "enum": [ "QUERY_SCOPE_UNSPECIFIED", "COLLECTION", - "COLLECTION_GROUP" + "COLLECTION_GROUP", + "COLLECTION_RECURSIVE" ], "enumDescriptions": [ "The query scope is unspecified. Not a valid option.", "Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the collection id specified by the index.", - "Indexes with a collection group query scope specified allow queries against all collections that has the collection id specified by the index." + "Indexes with a collection group query scope specified allow queries against all collections that has the collection id specified by the index.", + "Include all the collections's ancestor in the index. Only available for Datastore Mode databases." ], "type": "string" }, @@ -2325,6 +2617,51 @@ }, "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", + "properties": { + "state": { + "description": "Output only. The state of the TTL configuration.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "NEEDS_REPAIR" + ], + "enumDescriptions": [ + "The state is unspecified or unknown.", + "The TTL is being applied. There is an active long-running operation to track the change. Newly written documents will have TTLs applied as requested. Requested TTLs on existing documents are still being processed. When TTLs on all existing documents have been processed, the state will move to 'ACTIVE'.", + "The TTL is active for all documents.", + "The TTL configuration could not be enabled for all existing documents. Newly written documents will continue to have their TTL applied. The LRO returned when last attempting to enable TTL for this `Field` has failed, and may have more details." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirestoreAdminV1TtlConfigDelta": { + "description": "Information about an TTL configuration change.", + "id": "GoogleFirestoreAdminV1TtlConfigDelta", + "properties": { + "changeType": { + "description": "Specifies how the TTL configuration is changing.", + "enum": [ + "CHANGE_TYPE_UNSPECIFIED", + "ADD", + "REMOVE" + ], + "enumDescriptions": [ + "The type of change is not specified or known.", + "The TTL config is being added.", + "The TTL config is being removed." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1UpdateDatabaseMetadata": { "description": "Metadata related to the update database operation.", "id": "GoogleFirestoreAdminV1UpdateDatabaseMetadata", @@ -2419,6 +2756,11 @@ "pageToken": { "description": "A page token. Must be a value from ListCollectionIdsResponse.", "type": "string" + }, + "readTime": { + "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -2453,7 +2795,7 @@ "type": "array" }, "nextPageToken": { - "description": "The next page token.", + "description": "A token to retrieve the next page of documents. If this field is omitted, there are no subsequent pages.", "type": "string" } }, @@ -2618,6 +2960,11 @@ "format": "int64", "type": "string" }, + "readTime": { + "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "format": "google-datetime", + "type": "string" + }, "structuredQuery": { "$ref": "StructuredQuery", "description": "A structured query. Query must specify collection with all descendants and be ordered by name ascending. Other filters, order bys, limits, offsets, and start/end cursors are not supported." @@ -2724,6 +3071,52 @@ }, "type": "object" }, + "RunAggregationQueryRequest": { + "description": "The request for Firestore.RunAggregationQuery.", + "id": "RunAggregationQueryRequest", + "properties": { + "newTransaction": { + "$ref": "TransactionOptions", + "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.", + "format": "google-datetime", + "type": "string" + }, + "structuredAggregationQuery": { + "$ref": "StructuredAggregationQuery", + "description": "An aggregation query." + }, + "transaction": { + "description": "Run the aggregation within an already active transaction. The value here is the opaque transaction ID to execute the query in.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "RunAggregationQueryResponse": { + "description": "The response for Firestore.RunAggregationQuery.", + "id": "RunAggregationQueryResponse", + "properties": { + "readTime": { + "description": "The time at which the aggregate value is valid for.", + "format": "google-datetime", + "type": "string" + }, + "result": { + "$ref": "AggregationResult", + "description": "A single aggregation result. Not present when reporting partial progress." + }, + "transaction": { + "description": "The transaction that was started as part of this request. Only present on the first response when the request requested to start a new transaction.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "RunQueryRequest": { "description": "The request for Firestore.RunQuery.", "id": "RunQueryRequest", @@ -2757,6 +3150,10 @@ "$ref": "Document", "description": "A query result, not set when reporting partial progress." }, + "done": { + "description": "If present, Firestore has completely finished the request and no more documents will be returned.", + "type": "boolean" + }, "readTime": { "description": "The time at which the document was read. This may be monotonically increasing; in this case, the previous documents 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 `document` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -2802,13 +3199,31 @@ }, "type": "object" }, + "StructuredAggregationQuery": { + "description": "Firestore query for running an aggregation over a StructuredQuery.", + "id": "StructuredAggregationQuery", + "properties": { + "aggregations": { + "description": "Optional. Series of aggregations to apply over the results of the `structured_query`. Requires: * A minimum of one and maximum of five aggregations per query.", + "items": { + "$ref": "Aggregation" + }, + "type": "array" + }, + "structuredQuery": { + "$ref": "StructuredQuery", + "description": "Nested structured query." + } + }, + "type": "object" + }, "StructuredQuery": { "description": "A Firestore query.", "id": "StructuredQuery", "properties": { "endAt": { "$ref": "Cursor", - "description": "A end point for the query results." + "description": "A potential prefix of a position in the result set to end the query at. This is similar to `START_AT` but with it controlling the end position rather than the start position. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, "from": { "description": "The collections to query.", @@ -2818,17 +3233,17 @@ "type": "array" }, "limit": { - "description": "The maximum number of results to return. Applies after all other constraints. Must be >= 0 if specified.", + "description": "The maximum number of results to return. Applies after all other constraints. Requires: * The value must be greater than or equal to zero if specified.", "format": "int32", "type": "integer" }, "offset": { - "description": "The number of results to skip. Applies before limit, but after all other constraints. Must be >= 0 if specified.", + "description": "The number of documents to skip before returning the first result. This applies after the constraints specified by the `WHERE`, `START AT`, & `END AT` but before the `LIMIT` clause. Requires: * The value must be greater than or equal to zero if specified.", "format": "int32", "type": "integer" }, "orderBy": { - "description": "The order to apply to the query results. Firestore guarantees a stable ordering through the following rules: * Any field required to appear in `order_by`, that is not already specified in `order_by`, is appended to the order in field name order by default. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `SELECT * FROM Foo ORDER BY A` becomes `SELECT * FROM Foo ORDER BY A, __name__` * `SELECT * FROM Foo ORDER BY A DESC` becomes `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` * `SELECT * FROM Foo WHERE A > 1` becomes `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`", + "description": "The order to apply to the query results. Firestore allows callers to provide a full ordering, a partial ordering, or no ordering at all. In all cases, Firestore guarantees a stable ordering through the following rules: * The `order_by` is required to reference all fields used with an inequality filter. * All fields that are required to be in the `order_by` but are not already present are appended in lexicographical ordering of the field name. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `ORDER BY a` becomes `ORDER BY a ASC, __name__ ASC` * `ORDER BY a DESC` becomes `ORDER BY a DESC, __name__ DESC` * `WHERE a > 1` becomes `WHERE a > 1 ORDER BY a ASC, __name__ ASC` * `WHERE __name__ > ... AND a > 1` becomes `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC`", "items": { "$ref": "Order" }, @@ -2840,7 +3255,7 @@ }, "startAt": { "$ref": "Cursor", - "description": "A starting point for the query results." + "description": "A potential prefix of a position in the result set to start the query at. The ordering of the result set is based on the `ORDER BY` clause of the original query. ``` SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC; ``` This query's results are ordered by `(b ASC, __name__ ASC)`. Cursors can reference either the full ordering or a prefix of the location, though it cannot reference more fields than what are in the provided `ORDER BY`. Continuing off the example above, attaching the following start cursors will have varying impact: - `START BEFORE (2, /k/123)`: start the query right before `a = 1 AND b > 2 AND __name__ > /k/123`. - `START AFTER (10)`: start the query right after `a = 1 AND b > 10`. Unlike `OFFSET` which requires scanning over the first N results to skip, a start cursor allows the query to begin at a logical position. This position is not required to match an actual result, it will scan forward from this position to find the next document. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, "where": { "$ref": "Filter", diff --git a/etc/api/firestore/v1beta1/firestore-api.json b/etc/api/firestore/v1beta1/firestore-api.json index dca8d303b0..12a3393f69 100644 --- a/etc/api/firestore/v1beta1/firestore-api.json +++ b/etc/api/firestore/v1beta1/firestore-api.json @@ -429,7 +429,7 @@ ], "parameters": { "collectionId": { - "description": "Required. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`.", + "description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", "location": "path", "required": true, "type": "string" @@ -441,18 +441,18 @@ "type": "string" }, "orderBy": { - "description": "The order to sort results by. For example: `priority desc, name`.", + "description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of documents to return.", + "description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The `next_page_token` value returned from a previous List request, if any.", + "description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", "location": "query", "type": "string" }, @@ -464,18 +464,18 @@ "type": "string" }, "readTime": { - "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "description": "Perform the read at the provided time. This may not be older than 270 seconds.", "format": "google-datetime", "location": "query", "type": "string" }, "showMissing": { - "description": "If the list should show missing documents. A missing document is a document that does not exist but has sub-documents. These documents will be returned with a key but will not have fields, Document.create_time, or Document.update_time set. Requests with `show_missing` may not specify `where` or `order_by`.", + "description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", "location": "query", "type": "boolean" }, "transaction": { - "description": "Reads documents in a transaction.", + "description": "Perform the read as part of an already active transaction.", "format": "byte", "location": "query", "type": "string" @@ -519,6 +519,78 @@ "https://www.googleapis.com/auth/datastore" ] }, + "listDocuments": { + "description": "Lists documents.", + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{collectionId}", + "httpMethod": "GET", + "id": "firestore.projects.databases.documents.listDocuments", + "parameterOrder": [ + "parent", + "collectionId" + ], + "parameters": { + "collectionId": { + "description": "Optional. The collection ID, relative to `parent`, to list. For example: `chatrooms` or `messages`. This is optional, and when not provided, Firestore will list documents from all collections under the provided `parent`.", + "location": "path", + "required": true, + "type": "string" + }, + "mask.fieldPaths": { + "description": "The list of field paths in the mask. See Document.fields for a field path syntax reference.", + "location": "query", + "repeated": true, + "type": "string" + }, + "orderBy": { + "description": "Optional. The optional ordering of the documents to return. For example: `priority desc, __name__ desc`. This mirrors the `ORDER BY` used in Firestore queries but in a string representation. When absent, documents are ordered based on `__name__ ASC`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of documents to return in a single response. Firestore may return fewer than this value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListDocuments` response. Provide this to retrieve the subsequent page. When paginating, all other parameters (with the exception of `page_size`) must match the values set in the request that generated the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/documents$", + "required": true, + "type": "string" + }, + "readTime": { + "description": "Perform the read at the provided time. This may not be older than 270 seconds.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "showMissing": { + "description": "If the list should show missing documents. A document is missing if it does not exist, but there are sub-documents nested underneath it. When true, such missing documents will be returned with a key but will not have fields, `create_time`, or `update_time` set. Requests with `show_missing` may not specify `where` or `order_by`.", + "location": "query", + "type": "boolean" + }, + "transaction": { + "description": "Perform the read as part of an already active transaction.", + "format": "byte", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/{collectionId}", + "response": { + "$ref": "ListDocumentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "listen": { "description": "Listens to changes.", "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:listen", @@ -658,6 +730,35 @@ "https://www.googleapis.com/auth/datastore" ] }, + "runAggregationQuery": { + "description": "Runs an aggregation query. Rather than producing Document results like Firestore.RunQuery, this API allows running an aggregation to produce a series of AggregationResult server-side. High-Level Example: ``` -- Return the number of documents in table given a filter. SELECT COUNT(*) FROM ( SELECT * FROM k where a = true ); ```", + "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runAggregationQuery", + "httpMethod": "POST", + "id": "firestore.projects.databases.documents.runAggregationQuery", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name. In the format: `projects/{project_id}/databases/{database_id}/documents` or `projects/{project_id}/databases/{database_id}/documents/{document_path}`. For example: `projects/my-project/databases/my-database/documents` or `projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", + "location": "path", + "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}:runAggregationQuery", + "request": { + "$ref": "RunAggregationQueryRequest" + }, + "response": { + "$ref": "RunAggregationQueryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore" + ] + }, "runQuery": { "description": "Runs a query.", "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", @@ -849,9 +950,38 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://firestore.googleapis.com/", "schemas": { + "Aggregation": { + "description": "Defines a 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.", + "type": "string" + }, + "count": { + "$ref": "Count", + "description": "Count aggregator." + } + }, + "type": "object" + }, + "AggregationResult": { + "description": "The result of a single bucket from a Firestore aggregation query. The keys of `aggregate_fields` are the same for all results in an aggregation query, unlike document queries which can have different fields present for each result.", + "id": "AggregationResult", + "properties": { + "aggregateFields": { + "additionalProperties": { + "$ref": "Value" + }, + "description": "The result of the aggregation functions, ex: `COUNT(*) AS total_docs`. The key is the alias assigned to the aggregation function on input and the size of this map equals the number of aggregation functions in the query.", + "type": "object" + } + }, + "type": "object" + }, "ArrayValue": { "description": "An array value.", "id": "ArrayValue", @@ -1046,7 +1176,7 @@ "id": "CompositeFilter", "properties": { "filters": { - "description": "The list of filters to combine. Must contain at least one filter.", + "description": "The list of filters to combine. Requires: * At least one filter is present.", "items": { "$ref": "Filter" }, @@ -1060,13 +1190,25 @@ ], "enumDescriptions": [ "Unspecified. This value must not be used.", - "The results are required to satisfy each of the combined filters." + "Documents are required to satisfy all of the combined filters." ], "type": "string" } }, "type": "object" }, + "Count": { + "description": "Count of documents that match the query. The `COUNT(*)` aggregation function operates on the entire document so it does not require a field reference.", + "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.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Cursor": { "description": "A position in a query result set.", "id": "Cursor", @@ -1235,7 +1377,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1303,10 +1445,11 @@ "type": "object" }, "FieldReference": { - "description": "A reference to a field, such as `max(messages.time) as max_time`.", + "description": "A reference to a field in a document, ex: `stats.operations`.", "id": "FieldReference", "properties": { "fieldPath": { + "description": "The relative path of the document being referenced. Requires: * Conform to document field name limitations.", "type": "string" } }, @@ -1758,6 +1901,11 @@ "pageToken": { "description": "A page token. Must be a value from ListCollectionIdsResponse.", "type": "string" + }, + "readTime": { + "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -1792,7 +1940,7 @@ "type": "array" }, "nextPageToken": { - "description": "The next page token.", + "description": "A token to retrieve the next page of documents. If this field is omitted, there are no subsequent pages.", "type": "string" } }, @@ -1905,6 +2053,11 @@ "format": "int64", "type": "string" }, + "readTime": { + "description": "Reads documents as they were at the given time. This may not be older than 270 seconds.", + "format": "google-datetime", + "type": "string" + }, "structuredQuery": { "$ref": "StructuredQuery", "description": "A structured query. Query must specify collection with all descendants and be ordered by name ascending. Other filters, order bys, limits, offsets, and start/end cursors are not supported." @@ -2011,6 +2164,52 @@ }, "type": "object" }, + "RunAggregationQueryRequest": { + "description": "The request for Firestore.RunAggregationQuery.", + "id": "RunAggregationQueryRequest", + "properties": { + "newTransaction": { + "$ref": "TransactionOptions", + "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.", + "format": "google-datetime", + "type": "string" + }, + "structuredAggregationQuery": { + "$ref": "StructuredAggregationQuery", + "description": "An aggregation query." + }, + "transaction": { + "description": "Run the aggregation within an already active transaction. The value here is the opaque transaction ID to execute the query in.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "RunAggregationQueryResponse": { + "description": "The response for Firestore.RunAggregationQuery.", + "id": "RunAggregationQueryResponse", + "properties": { + "readTime": { + "description": "The time at which the aggregate value is valid for.", + "format": "google-datetime", + "type": "string" + }, + "result": { + "$ref": "AggregationResult", + "description": "A single aggregation result. Not present when reporting partial progress." + }, + "transaction": { + "description": "The transaction that was started as part of this request. Only present on the first response when the request requested to start a new transaction.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "RunQueryRequest": { "description": "The request for Firestore.RunQuery.", "id": "RunQueryRequest", @@ -2044,6 +2243,10 @@ "$ref": "Document", "description": "A query result, not set when reporting partial progress." }, + "done": { + "description": "If present, Firestore has completely finished the request and no more documents will be returned.", + "type": "boolean" + }, "readTime": { "description": "The time at which the document was read. This may be monotonically increasing; in this case, the previous documents 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 `document` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -2089,13 +2292,31 @@ }, "type": "object" }, + "StructuredAggregationQuery": { + "description": "Firestore query for running an aggregation over a StructuredQuery.", + "id": "StructuredAggregationQuery", + "properties": { + "aggregations": { + "description": "Optional. Series of aggregations to apply over the results of the `structured_query`. Requires: * A minimum of one and maximum of five aggregations per query.", + "items": { + "$ref": "Aggregation" + }, + "type": "array" + }, + "structuredQuery": { + "$ref": "StructuredQuery", + "description": "Nested structured query." + } + }, + "type": "object" + }, "StructuredQuery": { "description": "A Firestore query.", "id": "StructuredQuery", "properties": { "endAt": { "$ref": "Cursor", - "description": "A end point for the query results." + "description": "A potential prefix of a position in the result set to end the query at. This is similar to `START_AT` but with it controlling the end position rather than the start position. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, "from": { "description": "The collections to query.", @@ -2105,17 +2326,17 @@ "type": "array" }, "limit": { - "description": "The maximum number of results to return. Applies after all other constraints. Must be >= 0 if specified.", + "description": "The maximum number of results to return. Applies after all other constraints. Requires: * The value must be greater than or equal to zero if specified.", "format": "int32", "type": "integer" }, "offset": { - "description": "The number of results to skip. Applies before limit, but after all other constraints. Must be >= 0 if specified.", + "description": "The number of documents to skip before returning the first result. This applies after the constraints specified by the `WHERE`, `START AT`, & `END AT` but before the `LIMIT` clause. Requires: * The value must be greater than or equal to zero if specified.", "format": "int32", "type": "integer" }, "orderBy": { - "description": "The order to apply to the query results. Firestore guarantees a stable ordering through the following rules: * Any field required to appear in `order_by`, that is not already specified in `order_by`, is appended to the order in field name order by default. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `SELECT * FROM Foo ORDER BY A` becomes `SELECT * FROM Foo ORDER BY A, __name__` * `SELECT * FROM Foo ORDER BY A DESC` becomes `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` * `SELECT * FROM Foo WHERE A > 1` becomes `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`", + "description": "The order to apply to the query results. Firestore allows callers to provide a full ordering, a partial ordering, or no ordering at all. In all cases, Firestore guarantees a stable ordering through the following rules: * The `order_by` is required to reference all fields used with an inequality filter. * All fields that are required to be in the `order_by` but are not already present are appended in lexicographical ordering of the field name. * If an order on `__name__` is not specified, it is appended by default. Fields are appended with the same sort direction as the last order specified, or 'ASCENDING' if no order was specified. For example: * `ORDER BY a` becomes `ORDER BY a ASC, __name__ ASC` * `ORDER BY a DESC` becomes `ORDER BY a DESC, __name__ DESC` * `WHERE a > 1` becomes `WHERE a > 1 ORDER BY a ASC, __name__ ASC` * `WHERE __name__ > ... AND a > 1` becomes `WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC`", "items": { "$ref": "Order" }, @@ -2127,7 +2348,7 @@ }, "startAt": { "$ref": "Cursor", - "description": "A starting point for the query results." + "description": "A potential prefix of a position in the result set to start the query at. The ordering of the result set is based on the `ORDER BY` clause of the original query. ``` SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC; ``` This query's results are ordered by `(b ASC, __name__ ASC)`. Cursors can reference either the full ordering or a prefix of the location, though it cannot reference more fields than what are in the provided `ORDER BY`. Continuing off the example above, attaching the following start cursors will have varying impact: - `START BEFORE (2, /k/123)`: start the query right before `a = 1 AND b > 2 AND __name__ > /k/123`. - `START AFTER (10)`: start the query right after `a = 1 AND b > 10`. Unlike `OFFSET` which requires scanning over the first N results to skip, a start cursor allows the query to begin at a logical position. This position is not required to match an actual result, it will scan forward from this position to find the next document. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, "where": { "$ref": "Filter", diff --git a/etc/api/firestore/v1beta2/firestore-api.json b/etc/api/firestore/v1beta2/firestore-api.json index ee478b5f2e..36cbe816ee 100644 --- a/etc/api/firestore/v1beta2/firestore-api.json +++ b/etc/api/firestore/v1beta2/firestore-api.json @@ -415,11 +415,11 @@ } } }, - "revision": "20220221", + "revision": "20230118", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/fitness/v1/fitness-api.json b/etc/api/fitness/v1/fitness-api.json index 8a08392f6a..3b960227c0 100644 --- a/etc/api/fitness/v1/fitness-api.json +++ b/etc/api/fitness/v1/fitness-api.json @@ -831,7 +831,7 @@ } } }, - "revision": "20220302", + "revision": "20230120", "rootUrl": "https://fitness.googleapis.com/", "schemas": { "AggregateBucket": { diff --git a/etc/api/games/v1/games-api.json b/etc/api/games/v1/games-api.json index 9766662cb2..995a8068a4 100644 --- a/etc/api/games/v1/games-api.json +++ b/etc/api/games/v1/games-api.json @@ -714,6 +714,11 @@ "location": "path", "required": true, "type": "string" + }, + "playerIdConsistencyToken": { + "description": "Consistency token of the player id. The call returns a 'not found' result when the token is present and invalid. Empty value is ignored. See also GlobalPlayerIdConsistencyTokenProto", + "location": "query", + "type": "string" } }, "path": "games/v1/players/{playerId}", @@ -724,6 +729,21 @@ "https://www.googleapis.com/auth/games" ] }, + "getScopedPlayerIds": { + "description": "Retrieves scoped player identifiers for currently authenticated user.", + "flatPath": "games/v1/players/me/scopedIds", + "httpMethod": "GET", + "id": "games.players.getScopedPlayerIds", + "parameterOrder": [], + "parameters": {}, + "path": "games/v1/players/me/scopedIds", + "response": { + "$ref": "ScopedPlayerIds" + }, + "scopes": [ + "https://www.googleapis.com/auth/games" + ] + }, "list": { "description": "Get the collection of players for the currently authenticated user.", "flatPath": "games/v1/players/me/players/{collection}", @@ -1224,7 +1244,7 @@ } } }, - "revision": "20220217", + "revision": "20230112", "rootUrl": "https://games.googleapis.com/", "schemas": { "AchievementDefinition": { @@ -2425,6 +2445,10 @@ ], "type": "string" }, + "gamePlayerId": { + "description": "Per-application unique player identifier.", + "type": "string" + }, "kind": { "description": "Uniquely identifies the type of this resource. Value is always the fixed string `games#player`", "type": "string" @@ -2934,6 +2958,21 @@ }, "type": "object" }, + "ScopedPlayerIds": { + "description": "Scoped player identifiers.", + "id": "ScopedPlayerIds", + "properties": { + "developerPlayerKey": { + "description": "Identifier of the player across all games of the given developer. Every player has the same developer_player_key in all games of one developer. Developer player key changes for the game if the game is transferred to another developer. Note that game_player_id will stay unchanged.", + "type": "string" + }, + "gamePlayerId": { + "description": "Game-scoped player identifier. This is the same id that is returned in GetPlayer game_player_id field.", + "type": "string" + } + }, + "type": "object" + }, "ScoreSubmission": { "description": "A request to submit a score to leaderboards.", "id": "ScoreSubmission", diff --git a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json index 772c5801e3..4ae629cb98 100644 --- a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json +++ b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json @@ -242,64 +242,6 @@ } } }, - "imageConfigurations": { - "methods": { - "upload": { - "description": "Uploads an image for a resource with the given ID and image type.", - "flatPath": "games/v1configuration/images/{resourceId}/imageType/{imageType}", - "httpMethod": "POST", - "id": "gamesConfiguration.imageConfigurations.upload", - "mediaUpload": { - "accept": [ - "image/*" - ], - "maxSize": "15728640", - "protocols": { - "simple": { - "multipart": true, - "path": "/upload/games/v1configuration/images/{resourceId}/imageType/{imageType}" - } - } - }, - "parameterOrder": [ - "resourceId", - "imageType" - ], - "parameters": { - "imageType": { - "description": "Selects which image in a resource for this method.", - "enum": [ - "IMAGE_TYPE_UNSPECIFIED", - "ACHIEVEMENT_ICON", - "LEADERBOARD_ICON" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "The icon image for an achievement resource.", - "The icon image for a leaderboard resource." - ], - "location": "path", - "required": true, - "type": "string" - }, - "resourceId": { - "description": "The ID of the resource used by this method.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "games/v1configuration/images/{resourceId}/imageType/{imageType}", - "response": { - "$ref": "ImageConfiguration" - }, - "scopes": [ - "https://www.googleapis.com/auth/androidpublisher" - ], - "supportsMediaUpload": true - } - } - }, "leaderboardConfigurations": { "methods": { "delete": { @@ -439,7 +381,7 @@ } } }, - "revision": "20220217", + "revision": "20230112", "rootUrl": "https://gamesconfiguration.googleapis.com/", "schemas": { "AchievementConfiguration": { @@ -624,39 +566,6 @@ }, "type": "object" }, - "ImageConfiguration": { - "description": "An image configuration resource.", - "id": "ImageConfiguration", - "properties": { - "imageType": { - "description": "The image type for the image.", - "enum": [ - "IMAGE_TYPE_UNSPECIFIED", - "ACHIEVEMENT_ICON", - "LEADERBOARD_ICON" - ], - "enumDescriptions": [ - "Default value. This value is unused.", - "The icon image for an achievement resource.", - "The icon image for a leaderboard resource." - ], - "type": "string" - }, - "kind": { - "description": "Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#imageConfiguration`.", - "type": "string" - }, - "resourceId": { - "description": "The resource ID of resource which the image belongs to.", - "type": "string" - }, - "url": { - "description": "The url for this image.", - "type": "string" - } - }, - "type": "object" - }, "LeaderboardConfiguration": { "description": "An leaderboard configuration resource.", "id": "LeaderboardConfiguration", diff --git a/etc/api/gameservices/v1/gameservices-api.json b/etc/api/gameservices/v1/gameservices-api.json index 1dcc947a90..a652769185 100644 --- a/etc/api/gameservices/v1/gameservices-api.json +++ b/etc/api/gameservices/v1/gameservices-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -184,117 +184,6 @@ "resources": { "gameServerDeployments": { "methods": { - "create": { - "description": "Creates a new game server deployment in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "deploymentId": { - "description": "Required. The ID of the game server deployment resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/gameServerDeployments", - "request": { - "$ref": "GameServerDeployment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server deployment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.gameServerDeployments.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "fetchDeploymentState": { - "description": "Retrieves information about the current state of the game server deployment. Gathers all the Agones fleets and Agones autoscalers, including fleets running an older version of the game server deployment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}:fetchDeploymentState", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.fetchDeploymentState", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}:fetchDeploymentState", - "request": { - "$ref": "FetchDeploymentStateRequest" - }, - "response": { - "$ref": "FetchDeploymentStateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets details of a single game server deployment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "GameServerDeployment" - }, - "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}/gameServerDeployments/{gameServerDeploymentsId}:getIamPolicy", @@ -311,7 +200,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -326,151 +215,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "getRollout": { - "description": "Gets details of a single game server deployment rollout.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.getRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment rollout to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}/rollout", - "response": { - "$ref": "GameServerDeploymentRollout" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server deployments in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on the response's next_page_token to determine if there are more GameServerDeployments left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/gameServerDeployments", - "response": { - "$ref": "ListGameServerDeploymentsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a game server deployment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "request": { - "$ref": "GameServerDeployment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewRollout": { - "description": "Previews the game server deployment rollout. This API does not mutate the rollout resource.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout:preview", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.previewRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview. Defaults to the immediately after the proposed rollout completes.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Optional. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}/rollout:preview", - "request": { - "$ref": "GameServerDeploymentRollout" - }, - "response": { - "$ref": "PreviewGameServerDeploymentRolloutResponse" - }, - "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}/gameServerDeployments/{gameServerDeploymentsId}:setIamPolicy", @@ -481,7 +225,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -509,7 +253,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -526,175 +270,6 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "updateRollout": { - "description": "Patches a single game server deployment rollout. The method will not return an error if the update does not affect any existing realms. For example, the following cases will not return an error: * The default_game_server_config is changed but all existing realms use the override. * A non-existing realm is explicitly called out in the game_server_config_overrides field.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.updateRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}/rollout", - "request": { - "$ref": "GameServerDeploymentRollout" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "configs": { - "methods": { - "create": { - "description": "Creates a new game server config in a given project, location, and game server deployment. Game server configs are immutable, and are not applied until referenced in the game server deployment rollout resource.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.configs.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "configId": { - "description": "Required. The ID of the game server config resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/configs", - "request": { - "$ref": "GameServerConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server config. The deletion fails if the game server config is referenced in a game server deployment rollout.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs/{configsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.gameServerDeployments.configs.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server config to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+/configs/[^/]+$", - "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 game server config.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs/{configsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.configs.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server config to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+/configs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "GameServerConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server configs in a given project, location, and game server deployment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.configs.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more GameServerConfigs left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/configs", - "response": { - "$ref": "ListGameServerConfigsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } } } }, @@ -820,548 +395,17 @@ ] } } - }, - "realms": { - "methods": { - "create": { - "description": "Creates a new realm in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - }, - "realmId": { - "description": "Required. The ID of the realm resource to create.", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/realms", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single realm.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the realm to delete, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "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 realm.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the realm to retrieve, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Realm" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists realms in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on the response's next_page_token to determine if there are more realms left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/realms", - "response": { - "$ref": "ListRealmsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a single realm.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewUpdate": { - "description": "Previews patches to a single realm.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}:previewUpdate", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.previewUpdate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}:previewUpdate", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "PreviewRealmUpdateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "gameServerClusters": { - "methods": { - "create": { - "description": "Creates a new game server cluster in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.gameServerClusters.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "gameServerClusterId": { - "description": "Required. The ID of the game server cluster resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/gameServerClusters", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server cluster.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.gameServerClusters.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "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 game server cluster.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.gameServerClusters.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to retrieve, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Optional. View for the returned GameServerCluster objects. When `FULL` is specified, the `cluster_state` field is also returned in the GameServerCluster object, which includes the state of the referenced Kubernetes cluster such as versions and provider info. The default/unset value is `GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED`, the same as `BASIC`, which does not return the `cluster_state` field.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "GameServerCluster" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server clusters in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.gameServerClusters.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more GameServerClusters left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Optional. View for the returned GameServerCluster objects. When `FULL` is specified, the `cluster_state` field is also returned in the GameServerCluster object, which includes the state of the referenced Kubernetes cluster such as versions and provider info. The default/unset value is `GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED`, the same as `BASIC`, which does not return the `cluster_state` field.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/gameServerClusters", - "response": { - "$ref": "ListGameServerClustersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a single game server cluster.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.gameServerClusters.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewCreate": { - "description": "Previews creation of a new game server cluster in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters:previewCreate", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewCreate", - "parameterOrder": [ - "parent" - ], - "parameters": { - "gameServerClusterId": { - "description": "Required. The ID of the game server cluster resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "view": { - "description": "Optional. This field is deprecated. Preview will always return KubernetesClusterState.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/gameServerClusters:previewCreate", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "PreviewCreateGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewDelete": { - "description": "Previews deletion of a single game server cluster.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}:previewDelete", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewDelete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}:previewDelete", - "response": { - "$ref": "PreviewDeleteGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewUpdate": { - "description": "Previews updating a GameServerCluster.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}:previewUpdate", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewUpdate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. Mask of fields to update. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}:previewUpdate", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "PreviewUpdateGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } } } } } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://gameservices.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1448,7 +492,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1512,7 +556,7 @@ "Default non-attribute.", "Either principal or (if present) authority selector.", "The principal (even if an authority selector is present), which must only be used for attribution, not authorization.", - "Any of the security realms in the IAMContext (go/security-realms). When used with IN, the condition indicates \"any of the request's realms match one of the given values; with NOT_IN, \"none of the realms match any of the given values\". Note that a value can be: - 'self' (i.e., allow connections from clients that are in the same security realm, which is currently but not guaranteed to be campus-sized) - 'self:metro' (i.e., clients that are in the same metro) - 'self:cloud-region' (i.e., allow connections from clients that are in the same cloud region) - 'self:prod-region' (i.e., allow connections from clients that are in the same prod region) - 'guardians' (i.e., allow connections from its guardian realms. See go/security-realms-glossary#guardian for more information.) - a realm (e.g., 'campus-abc') - a realm group (e.g., 'realms-for-borg-cell-xx', see: go/realm-groups) A match is determined by a realm group membership check performed by a RealmAclRep object (go/realm-acl-howto). It is not permitted to grant access based on the *absence* of a realm, so realm conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", + "Any of the security realms in the IAMContext (go/security-realms). When used with IN, the condition indicates \"any of the request's realms match one of the given values; with NOT_IN, \"none of the realms match any of the given values\". Note that a value can be: - 'self:campus' (i.e., clients that are in the same campus) - 'self:metro' (i.e., clients that are in the same metro) - 'self:cloud-region' (i.e., allow connections from clients that are in the same cloud region) - 'self:prod-region' (i.e., allow connections from clients that are in the same prod region) - 'guardians' (i.e., allow connections from its guardian realms. See go/security-realms-glossary#guardian for more information.) - 'self' [DEPRECATED] (i.e., allow connections from clients that are in the same security realm, which is currently but not guaranteed to be campus-sized) - a realm (e.g., 'campus-abc') - a realm group (e.g., 'realms-for-borg-cell-xx', see: go/realm-groups) A match is determined by a realm group membership check performed by a RealmAclRep object (go/realm-acl-howto). It is not permitted to grant access based on the *absence* of a realm, so realm conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", "An approver (distinct from the requester) that has authorized this request. When used with IN, the condition indicates that one of the approvers associated with the request matches the specified principal, or is a member of the specified group. Approvers can only grant additional access, and are thus only used in a strictly positive context (e.g. ALLOW/IN or DENY/NOT_IN).", "What types of justifications have been supplied with this request. String values should match enum names from security.credentials.JustificationType, e.g. \"MANUAL_STRING\". It is not permitted to grant access based on the *absence* of a justification, so justification conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN). Multiple justifications, e.g., a Buganizer ID and a manually-entered reason, are normal and supported.", "What type of credentials have been supplied with this request. String values should match enum names from security_loas_l2.CredentialsType - currently, only CREDS_TYPE_EMERGENCY is supported. It is not permitted to grant access based on the *absence* of a credentials type, so the conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", @@ -1627,110 +671,8 @@ }, "type": "object" }, - "DeployedClusterState": { - "description": "The game server cluster changes made by the game server deployment.", - "id": "DeployedClusterState", - "properties": { - "cluster": { - "description": "The name of the cluster.", - "type": "string" - }, - "fleetDetails": { - "description": "The details about the Agones fleets and autoscalers created in the game server cluster.", - "items": { - "$ref": "DeployedFleetDetails" - }, - "type": "array" - } - }, - "type": "object" - }, - "DeployedFleet": { - "description": "Agones fleet specification and details.", - "id": "DeployedFleet", - "properties": { - "fleet": { - "description": "The name of the Agones fleet.", - "type": "string" - }, - "fleetSpec": { - "description": "The fleet spec retrieved from the Agones fleet.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "The source spec that is used to create the Agones fleet. The GameServerConfig resource may no longer exist in the system." - }, - "status": { - "$ref": "DeployedFleetStatus", - "description": "The current status of the Agones fleet. Includes count of game servers in various states." - } - }, - "type": "object" - }, - "DeployedFleetAutoscaler": { - "description": "Details about the Agones autoscaler.", - "id": "DeployedFleetAutoscaler", - "properties": { - "autoscaler": { - "description": "The name of the Agones autoscaler.", - "type": "string" - }, - "fleetAutoscalerSpec": { - "description": "The autoscaler spec retrieved from Agones.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "The source spec that is used to create the autoscaler. The GameServerConfig resource may no longer exist in the system." - } - }, - "type": "object" - }, - "DeployedFleetDetails": { - "description": "Details of the deployed Agones fleet.", - "id": "DeployedFleetDetails", - "properties": { - "deployedAutoscaler": { - "$ref": "DeployedFleetAutoscaler", - "description": "Information about the Agones autoscaler for that fleet." - }, - "deployedFleet": { - "$ref": "DeployedFleet", - "description": "Information about the Agones fleet." - } - }, - "type": "object" - }, - "DeployedFleetStatus": { - "description": "DeployedFleetStatus has details about the Agones fleets, such as how many are running, how many are allocated, and so on.", - "id": "DeployedFleetStatus", - "properties": { - "allocatedReplicas": { - "description": "The number of GameServer replicas in the ALLOCATED state in this fleet.", - "format": "int64", - "type": "string" - }, - "readyReplicas": { - "description": "The number of GameServer replicas in the READY state in this fleet.", - "format": "int64", - "type": "string" - }, - "replicas": { - "description": "The total number of current GameServer replicas in this fleet.", - "format": "int64", - "type": "string" - }, - "reservedReplicas": { - "description": "The number of GameServer replicas in the RESERVED state in this fleet. Reserved instances won't be deleted on scale down, but won't cause an autoscaler to scale up.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" @@ -1758,406 +700,6 @@ }, "type": "object" }, - "FetchDeploymentStateRequest": { - "description": "Request message for GameServerDeploymentsService.FetchDeploymentState.", - "id": "FetchDeploymentStateRequest", - "properties": {}, - "type": "object" - }, - "FetchDeploymentStateResponse": { - "description": "Response message for GameServerDeploymentsService.FetchDeploymentState.", - "id": "FetchDeploymentStateResponse", - "properties": { - "clusterState": { - "description": "The state of the game server deployment in each game server cluster.", - "items": { - "$ref": "DeployedClusterState" - }, - "type": "array" - }, - "unavailable": { - "description": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "FleetConfig": { - "description": "Fleet configs for Agones.", - "id": "FleetConfig", - "properties": { - "fleetSpec": { - "description": "Agones fleet spec (see [example spec](https://agones.dev/site/docs/reference/fleet/)).", - "type": "string" - }, - "name": { - "description": "The name of the FleetConfig.", - "type": "string" - } - }, - "type": "object" - }, - "GameServerCluster": { - "description": "A game server cluster resource.", - "id": "GameServerCluster", - "properties": { - "clusterState": { - "$ref": "KubernetesClusterState", - "description": "Output only. The state of the Kubernetes cluster in preview. This will be available if view is set to FULL in the relevant list/get/preview request.", - "readOnly": true - }, - "connectionInfo": { - "$ref": "GameServerClusterConnectionInfo", - "description": "The game server cluster connection information. This information is used to manage game server clusters." - }, - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the cluster.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server cluster. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerClusterConnectionInfo": { - "description": "The game server cluster connection information.", - "id": "GameServerClusterConnectionInfo", - "properties": { - "gkeClusterReference": { - "$ref": "GkeClusterReference", - "description": "Reference to the GKE cluster where the game servers are installed." - }, - "namespace": { - "description": "Namespace designated on the game server cluster where the Agones game server instances will be created. Existence of the namespace will be validated during creation.", - "type": "string" - } - }, - "type": "object" - }, - "GameServerConfig": { - "description": "A game server config resource.", - "id": "GameServerConfig", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the game server config.", - "type": "string" - }, - "fleetConfigs": { - "description": "FleetConfig contains a list of Agones fleet specs. Only one FleetConfig is allowed.", - "items": { - "$ref": "FleetConfig" - }, - "type": "array" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server config. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the game server config, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`.", - "type": "string" - }, - "scalingConfigs": { - "description": "The autoscaling settings.", - "items": { - "$ref": "ScalingConfig" - }, - "type": "array" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerConfigOverride": { - "description": "A game server config override.", - "id": "GameServerConfigOverride", - "properties": { - "configVersion": { - "description": "The game server config for this override.", - "type": "string" - }, - "realmsSelector": { - "$ref": "RealmSelector", - "description": "Selector for choosing applicable realms." - } - }, - "type": "object" - }, - "GameServerDeployment": { - "description": "A game server deployment resource.", - "id": "GameServerDeployment", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the game server deployment.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server deployment. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerDeploymentRollout": { - "description": "The game server deployment rollout which represents the desired rollout state.", - "id": "GameServerDeploymentRollout", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "defaultGameServerConfig": { - "description": "The default game server config is applied to all realms unless overridden in the rollout. For example, `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`.", - "type": "string" - }, - "etag": { - "description": "ETag of the resource.", - "type": "string" - }, - "gameServerConfigOverrides": { - "description": "Contains the game server config rollout overrides. Overrides are processed in the order they are listed. Once a match is found for a realm, the rest of the list is not processed.", - "items": { - "$ref": "GameServerConfigOverride" - }, - "type": "array" - }, - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GkeClusterReference": { - "description": "A reference to a GKE cluster.", - "id": "GkeClusterReference", - "properties": { - "cluster": { - "description": "The full or partial name of a GKE cluster, using one of the following forms: * `projects/{project}/locations/{locationId}/clusters/{cluster}` * `locations/{locationId}/clusters/{cluster}` * `{cluster}` If project and location are not specified, the project and location of the GameServerCluster resource are used to generate the full name of the GKE cluster.", - "type": "string" - } - }, - "type": "object" - }, - "KubernetesClusterState": { - "description": "The state of the Kubernetes cluster.", - "id": "KubernetesClusterState", - "properties": { - "agonesVersionInstalled": { - "description": "Output only. The version of Agones currently installed in the registered Kubernetes cluster.", - "readOnly": true, - "type": "string" - }, - "agonesVersionTargeted": { - "description": "Output only. The version of Agones that is targeted to be installed in the cluster.", - "readOnly": true, - "type": "string" - }, - "installationState": { - "description": "Output only. The state for the installed versions of Agones/Kubernetes.", - "enum": [ - "INSTALLATION_STATE_UNSPECIFIED", - "AGONES_KUBERNETES_VERSION_SUPPORTED", - "AGONES_VERSION_UNSUPPORTED", - "AGONES_KUBERNETES_VERSION_UNSUPPORTED", - "AGONES_VERSION_UNRECOGNIZED", - "KUBERNETES_VERSION_UNRECOGNIZED", - "VERSION_VERIFICATION_FAILED", - "AGONES_NOT_INSTALLED" - ], - "enumDescriptions": [ - "The default installation state. This value is used if the state is omitted.", - "Both the Agones and Kubernetes versions are supported by Google Cloud Game Servers and Agones and Kubernetes versions are compatible.", - "The installed version of Agones is not supported by Google Cloud Game Servers.", - "The installed version of Agones is supported by Google Cloud Game Servers, but the installed version of Kubernetes is not recommended or supported by the version of Agones.", - "The installed version of Agones is not recognized because the Agones controller's image name does not have a version string reported as {major}.{minor}(.{patch}).", - "The server version of Kubernetes cluster is not recognized because the API server didn't return parsable version info on path/version.", - "Failed to read or verify the version of Agones or Kubernetes. See `version_installed_error_message` for details.", - "Agones is not installed." - ], - "readOnly": true, - "type": "string" - }, - "kubernetesVersionInstalled": { - "description": "Output only. The version of Kubernetes that is currently used in the registered Kubernetes cluster (as detected by the Cloud Game Servers service).", - "readOnly": true, - "type": "string" - }, - "provider": { - "description": "Output only. The cloud provider type reported by the first node's `providerID` in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the provider type will be empty.", - "readOnly": true, - "type": "string" - }, - "versionInstalledErrorMessage": { - "description": "Output only. The detailed error message for the installed versions of Agones/Kubernetes.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "LabelSelector": { - "description": "The label selector, used to group labels on the resources.", - "id": "LabelSelector", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource labels for this selector.", - "type": "object" - } - }, - "type": "object" - }, - "ListGameServerClustersResponse": { - "description": "Response message for GameServerClustersService.ListGameServerClusters.", - "id": "ListGameServerClustersResponse", - "properties": { - "gameServerClusters": { - "description": "The list of game server clusters.", - "items": { - "$ref": "GameServerCluster" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListGameServerConfigsResponse": { - "description": "Response message for GameServerConfigsService.ListGameServerConfigs.", - "id": "ListGameServerConfigsResponse", - "properties": { - "gameServerConfigs": { - "description": "The list of game server configs.", - "items": { - "$ref": "GameServerConfig" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListGameServerDeploymentsResponse": { - "description": "Response message for GameServerDeploymentsService.ListGameServerDeployments.", - "id": "ListGameServerDeploymentsResponse", - "properties": { - "gameServerDeployments": { - "description": "The list of game server deployments.", - "items": { - "$ref": "GameServerDeployment" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2194,31 +736,6 @@ }, "type": "object" }, - "ListRealmsResponse": { - "description": "Response message for RealmsService.ListRealms.", - "id": "ListRealmsResponse", - "properties": { - "nextPageToken": { - "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", - "type": "string" - }, - "realms": { - "description": "The list of realms.", - "items": { - "$ref": "Realm" - }, - "type": "array" - }, - "unreachable": { - "description": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "id": "Location", @@ -2307,97 +824,6 @@ }, "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" - }, - "operationStatus": { - "additionalProperties": { - "$ref": "OperationStatus" - }, - "description": "Output only. Operation status for Game Services API operations. Operation status is in the form of key-value pairs where keys are resource IDs and the values show the status of the operation. In case of failures, the value includes an error code and error message.", - "readOnly": true, - "type": "object" - }, - "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" - }, - "unreachable": { - "description": "Output only. List of Locations that could not be reached.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "verb": { - "description": "Output only. Name of the verb executed by the operation.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "OperationStatus": { - "id": "OperationStatus", - "properties": { - "done": { - "description": "Output only. Whether the operation is done or still in progress.", - "readOnly": true, - "type": "boolean" - }, - "errorCode": { - "description": "The error code in case of failures.", - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "INTERNAL_ERROR", - "PERMISSION_DENIED", - "CLUSTER_CONNECTION" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "errorMessage": { - "description": "The human-readable error message.", - "type": "string" - } - }, - "type": "object" - }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -2436,149 +862,6 @@ }, "type": "object" }, - "PreviewCreateGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewCreateGameServerCluster.", - "id": "PreviewCreateGameServerClusterResponse", - "properties": { - "clusterState": { - "$ref": "KubernetesClusterState", - "description": "Output only. The state of the Kubernetes cluster in preview. This will be available if view is set to FULL in the relevant list/get/preview request.", - "readOnly": true - }, - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewDeleteGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewDeleteGameServerCluster.", - "id": "PreviewDeleteGameServerClusterResponse", - "properties": { - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewGameServerDeploymentRolloutResponse": { - "description": "Response message for PreviewGameServerDeploymentRollout. This has details about the Agones fleet and autoscaler to be actuated.", - "id": "PreviewGameServerDeploymentRolloutResponse", - "properties": { - "etag": { - "description": "ETag of the game server deployment.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - }, - "unavailable": { - "description": "Locations that could not be reached on this request.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "PreviewRealmUpdateResponse": { - "description": "Response message for RealmsService.PreviewRealmUpdate.", - "id": "PreviewRealmUpdateResponse", - "properties": { - "etag": { - "description": "ETag of the realm.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewUpdateGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewUpdateGameServerCluster", - "id": "PreviewUpdateGameServerClusterResponse", - "properties": { - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "Realm": { - "description": "A realm resource.", - "id": "Realm", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the realm.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this realm. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "type": "string" - }, - "timeZone": { - "description": "Required. Time zone where all policies targeting this realm are evaluated. The value of this field must be from the [IANA time zone database](https://www.iana.org/time-zones).", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "RealmSelector": { - "description": "The realm selector, used to match realm resources.", - "id": "RealmSelector", - "properties": { - "realms": { - "description": "List of realms to match.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "Rule": { "description": "A rule to be applied in a Policy.", "id": "Rule", @@ -2645,68 +928,13 @@ }, "type": "object" }, - "ScalingConfig": { - "description": "Autoscaling config for an Agones fleet.", - "id": "ScalingConfig", - "properties": { - "fleetAutoscalerSpec": { - "description": "Required. Agones fleet autoscaler spec (see [example spec](https://agones.dev/site/docs/reference/fleetautoscaler/)).", - "type": "string" - }, - "name": { - "description": "Required. The name of the scaling config.", - "type": "string" - }, - "schedules": { - "description": "The schedules to which this scaling config applies.", - "items": { - "$ref": "Schedule" - }, - "type": "array" - }, - "selectors": { - "description": "Labels used to identify the game server clusters to which this Agones scaling config applies. A game server cluster is subject to this Agones scaling config if its labels match any of the selector entries.", - "items": { - "$ref": "LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "Schedule": { - "description": "The schedule of a recurring or one time event. The event's time span is specified by start_time and end_time. If the scheduled event's timespan is larger than cron_spec added with cron_job_duration, the event is recurring. If only cron_spec and cron_job_duration are specified, the event starts at the local time specified by cron_spec, and is recurring. ``` start_time|-------[cron job]-------[cron job]-------[cron job]---|end_time cron job: cron spec start time + duration ```", - "id": "Schedule", - "properties": { - "cronJobDuration": { - "description": "The duration for the cron job event. The duration of the event is effective after the cron job's start time.", - "format": "google-duration", - "type": "string" - }, - "cronSpec": { - "description": "The cron definition of the scheduled event. See https://en.wikipedia.org/wiki/Cron. The cron spec specifies the local time as defined by the realm.", - "type": "string" - }, - "endTime": { - "description": "The end time of the event.", - "format": "google-datetime", - "type": "string" - }, - "startTime": { - "description": "The start time of the event.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2716,21 +944,6 @@ }, "type": "object" }, - "SpecSource": { - "description": "Encapsulates Agones fleet spec and Agones autoscaler spec sources.", - "id": "SpecSource", - "properties": { - "gameServerConfigName": { - "description": "The game server config resource. Uses the form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "type": "string" - }, - "name": { - "description": "The name of the Agones fleet config or Agones scaling config used to derive the Agones fleet or Agones autoscaler spec.", - "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", @@ -2758,93 +971,12 @@ }, "type": "object" }, - "TargetDetails": { - "description": "Details about the Agones resources.", - "id": "TargetDetails", - "properties": { - "fleetDetails": { - "description": "Agones fleet details for game server clusters and game server deployments.", - "items": { - "$ref": "TargetFleetDetails" - }, - "type": "array" - }, - "gameServerClusterName": { - "description": "The game server cluster name. Uses the form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`.", - "type": "string" - }, - "gameServerDeploymentName": { - "description": "The game server deployment name. Uses the form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "type": "string" - } - }, - "type": "object" - }, - "TargetFleet": { - "description": "Target Agones fleet specification.", - "id": "TargetFleet", - "properties": { - "name": { - "description": "The name of the Agones fleet.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "Encapsulates the source of the Agones fleet spec. The Agones fleet spec source." - } - }, - "type": "object" - }, - "TargetFleetAutoscaler": { - "description": "Target Agones autoscaler policy reference.", - "id": "TargetFleetAutoscaler", - "properties": { - "name": { - "description": "The name of the Agones autoscaler.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "Encapsulates the source of the Agones fleet spec. Details about the Agones autoscaler spec." - } - }, - "type": "object" - }, - "TargetFleetDetails": { - "description": "Details of the target Agones fleet.", - "id": "TargetFleetDetails", - "properties": { - "autoscaler": { - "$ref": "TargetFleetAutoscaler", - "description": "Reference to target Agones fleet autoscaling policy." - }, - "fleet": { - "$ref": "TargetFleet", - "description": "Reference to target Agones fleet." - } - }, - "type": "object" - }, - "TargetState": { - "description": "Encapsulates the Target state.", - "id": "TargetState", - "properties": { - "details": { - "description": "Details about Agones fleets.", - "items": { - "$ref": "TargetDetails" - }, - "type": "array" - } - }, - "type": "object" - }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gameservices/v1beta/gameservices-api.json b/etc/api/gameservices/v1beta/gameservices-api.json index 2818869765..c222a74d33 100644 --- a/etc/api/gameservices/v1beta/gameservices-api.json +++ b/etc/api/gameservices/v1beta/gameservices-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -184,117 +184,6 @@ "resources": { "gameServerDeployments": { "methods": { - "create": { - "description": "Creates a new game server deployment in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "deploymentId": { - "description": "Required. The ID of the game server deployment resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/gameServerDeployments", - "request": { - "$ref": "GameServerDeployment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server deployment.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.gameServerDeployments.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "fetchDeploymentState": { - "description": "Retrieves information about the current state of the game server deployment. Gathers all the Agones fleets and Agones autoscalers, including fleets running an older version of the game server deployment.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}:fetchDeploymentState", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.fetchDeploymentState", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}:fetchDeploymentState", - "request": { - "$ref": "FetchDeploymentStateRequest" - }, - "response": { - "$ref": "FetchDeploymentStateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets details of a single game server deployment.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "GameServerDeployment" - }, - "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}/gameServerDeployments/{gameServerDeploymentsId}:getIamPolicy", @@ -311,7 +200,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -326,151 +215,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "getRollout": { - "description": "Gets details of a single game server deployment rollout.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.getRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server deployment rollout to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}/rollout", - "response": { - "$ref": "GameServerDeploymentRollout" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server deployments in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on the response's next_page_token to determine if there are more GameServerDeployments left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/gameServerDeployments", - "response": { - "$ref": "ListGameServerDeploymentsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a game server deployment.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}", - "request": { - "$ref": "GameServerDeployment" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewRollout": { - "description": "Previews the game server deployment rollout. This API does not mutate the rollout resource.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout:preview", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.previewRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview. Defaults to the immediately after the proposed rollout completes.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Optional. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}/rollout:preview", - "request": { - "$ref": "GameServerDeploymentRollout" - }, - "response": { - "$ref": "PreviewGameServerDeploymentRolloutResponse" - }, - "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}/gameServerDeployments/{gameServerDeploymentsId}:setIamPolicy", @@ -481,7 +225,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -509,7 +253,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/gameServerDeployments/[^/]+$", "required": true, @@ -526,175 +270,6 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "updateRollout": { - "description": "Patches a single game server deployment rollout. The method will not return an error if the update does not affect any existing realms. For example, the following cases will not return an error: * The default_game_server_config is changed but all existing realms use the override. * A non-existing realm is explicitly called out in the game_server_config_overrides field.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/rollout", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.gameServerDeployments.updateRollout", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}/rollout", - "request": { - "$ref": "GameServerDeploymentRollout" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "configs": { - "methods": { - "create": { - "description": "Creates a new game server config in a given project, location, and game server deployment. Game server configs are immutable, and are not applied until referenced in the game server deployment rollout resource.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs", - "httpMethod": "POST", - "id": "gameservices.projects.locations.gameServerDeployments.configs.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "configId": { - "description": "Required. The ID of the game server config resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/configs", - "request": { - "$ref": "GameServerConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server config. The deletion fails if the game server config is referenced in a game server deployment rollout.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs/{configsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.gameServerDeployments.configs.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server config to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+/configs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets details of a single game server config.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs/{configsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.configs.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server config to retrieve, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+/configs/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "GameServerConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server configs in a given project, location, and game server deployment.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/gameServerDeployments/{gameServerDeploymentsId}/configs", - "httpMethod": "GET", - "id": "gameservices.projects.locations.gameServerDeployments.configs.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more GameServerConfigs left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/gameServerDeployments/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/configs", - "response": { - "$ref": "ListGameServerConfigsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } } } }, @@ -820,548 +395,17 @@ ] } } - }, - "realms": { - "methods": { - "create": { - "description": "Creates a new realm in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - }, - "realmId": { - "description": "Required. The ID of the realm resource to create.", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+parent}/realms", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single realm.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the realm to delete, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets details of a single realm.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the realm to retrieve, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "Realm" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists realms in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on the response's next_page_token to determine if there are more realms left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/realms", - "response": { - "$ref": "ListRealmsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a single realm.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewUpdate": { - "description": "Previews patches to a single realm.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}:previewUpdate", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.previewUpdate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}:previewUpdate", - "request": { - "$ref": "Realm" - }, - "response": { - "$ref": "PreviewRealmUpdateResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - }, - "resources": { - "gameServerClusters": { - "methods": { - "create": { - "description": "Creates a new game server cluster in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.gameServerClusters.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "gameServerClusterId": { - "description": "Required. The ID of the game server cluster resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+parent}/gameServerClusters", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a single game server cluster.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.gameServerClusters.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "Gets details of a single game server cluster.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.gameServerClusters.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to retrieve, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Optional. View for the returned GameServerCluster objects. When `FULL` is specified, the `cluster_state` field is also returned in the GameServerCluster object, which includes the state of the referenced Kubernetes cluster such as versions and provider info. The default/unset value is `GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED`, the same as `BASIC`, which does not return the `cluster_state` field.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}", - "response": { - "$ref": "GameServerCluster" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists game server clusters in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters", - "httpMethod": "GET", - "id": "gameservices.projects.locations.realms.gameServerClusters.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Optional. The filter to apply to list results (see [Filtering](https://google.aip.dev/160)).", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Optional. Specifies the ordering of results following [Cloud API syntax](https://cloud.google.com/apis/design/design_patterns#sorting_order).", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Optional. The maximum number of items to return. If unspecified, the server picks an appropriate default. The server may return fewer items than requested. A caller should only rely on response's next_page_token to determine if there are more GameServerClusters left to be queried.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Optional. The next_page_token value returned from a previous list request, if any.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "view": { - "description": "Optional. View for the returned GameServerCluster objects. When `FULL` is specified, the `cluster_state` field is also returned in the GameServerCluster object, which includes the state of the referenced Kubernetes cluster such as versions and provider info. The default/unset value is `GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED`, the same as `BASIC`, which does not return the `cluster_state` field.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+parent}/gameServerClusters", - "response": { - "$ref": "ListGameServerClustersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Patches a single game server cluster.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.gameServerClusters.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The update mask to apply to the resource. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewCreate": { - "description": "Previews creation of a new game server cluster in a given project and location.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters:previewCreate", - "httpMethod": "POST", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewCreate", - "parameterOrder": [ - "parent" - ], - "parameters": { - "gameServerClusterId": { - "description": "Required. The ID of the game server cluster resource to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The parent resource name, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "view": { - "description": "Optional. This field is deprecated. Preview will always return KubernetesClusterState.", - "enum": [ - "GAME_SERVER_CLUSTER_VIEW_UNSPECIFIED", - "BASIC", - "FULL" - ], - "enumDescriptions": [ - "If the value is not set, Google Cloud Game Servers defaults to the `BASIC` view.", - "Includes basic information of a GameServerCluster resource and omits `cluster_state`. This is the default value (for methods ListGameServerClusters, GetGameServerCluster, and PreviewCreateGameServerCluster).", - "Include basic information of a GameServerCluster resource as well as `cluster_state`." - ], - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+parent}/gameServerClusters:previewCreate", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "PreviewCreateGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewDelete": { - "description": "Previews deletion of a single game server cluster.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}:previewDelete", - "httpMethod": "DELETE", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewDelete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the game server cluster to delete, in the following form: `projects/{project}/locations/{locationId}/gameServerClusters/{gameServerClusterId}`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}:previewDelete", - "response": { - "$ref": "PreviewDeleteGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "previewUpdate": { - "description": "Previews updating a GameServerCluster.", - "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/realms/{realmsId}/gameServerClusters/{gameServerClustersId}:previewUpdate", - "httpMethod": "PATCH", - "id": "gameservices.projects.locations.realms.gameServerClusters.previewUpdate", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/realms/[^/]+/gameServerClusters/[^/]+$", - "required": true, - "type": "string" - }, - "previewTime": { - "description": "Optional. The target timestamp to compute the preview.", - "format": "google-datetime", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. Mask of fields to update. At least one path must be supplied in this field. For more information, see the [`FieldMask` definition](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask).", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1beta/{+name}:previewUpdate", - "request": { - "$ref": "GameServerCluster" - }, - "response": { - "$ref": "PreviewUpdateGameServerClusterResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } } } } } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://gameservices.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1448,7 +492,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1512,7 +556,7 @@ "Default non-attribute.", "Either principal or (if present) authority selector.", "The principal (even if an authority selector is present), which must only be used for attribution, not authorization.", - "Any of the security realms in the IAMContext (go/security-realms). When used with IN, the condition indicates \"any of the request's realms match one of the given values; with NOT_IN, \"none of the realms match any of the given values\". Note that a value can be: - 'self' (i.e., allow connections from clients that are in the same security realm, which is currently but not guaranteed to be campus-sized) - 'self:metro' (i.e., clients that are in the same metro) - 'self:cloud-region' (i.e., allow connections from clients that are in the same cloud region) - 'self:prod-region' (i.e., allow connections from clients that are in the same prod region) - 'guardians' (i.e., allow connections from its guardian realms. See go/security-realms-glossary#guardian for more information.) - a realm (e.g., 'campus-abc') - a realm group (e.g., 'realms-for-borg-cell-xx', see: go/realm-groups) A match is determined by a realm group membership check performed by a RealmAclRep object (go/realm-acl-howto). It is not permitted to grant access based on the *absence* of a realm, so realm conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", + "Any of the security realms in the IAMContext (go/security-realms). When used with IN, the condition indicates \"any of the request's realms match one of the given values; with NOT_IN, \"none of the realms match any of the given values\". Note that a value can be: - 'self:campus' (i.e., clients that are in the same campus) - 'self:metro' (i.e., clients that are in the same metro) - 'self:cloud-region' (i.e., allow connections from clients that are in the same cloud region) - 'self:prod-region' (i.e., allow connections from clients that are in the same prod region) - 'guardians' (i.e., allow connections from its guardian realms. See go/security-realms-glossary#guardian for more information.) - 'self' [DEPRECATED] (i.e., allow connections from clients that are in the same security realm, which is currently but not guaranteed to be campus-sized) - a realm (e.g., 'campus-abc') - a realm group (e.g., 'realms-for-borg-cell-xx', see: go/realm-groups) A match is determined by a realm group membership check performed by a RealmAclRep object (go/realm-acl-howto). It is not permitted to grant access based on the *absence* of a realm, so realm conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", "An approver (distinct from the requester) that has authorized this request. When used with IN, the condition indicates that one of the approvers associated with the request matches the specified principal, or is a member of the specified group. Approvers can only grant additional access, and are thus only used in a strictly positive context (e.g. ALLOW/IN or DENY/NOT_IN).", "What types of justifications have been supplied with this request. String values should match enum names from security.credentials.JustificationType, e.g. \"MANUAL_STRING\". It is not permitted to grant access based on the *absence* of a justification, so justification conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN). Multiple justifications, e.g., a Buganizer ID and a manually-entered reason, are normal and supported.", "What type of credentials have been supplied with this request. String values should match enum names from security_loas_l2.CredentialsType - currently, only CREDS_TYPE_EMERGENCY is supported. It is not permitted to grant access based on the *absence* of a credentials type, so the conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", @@ -1627,110 +671,8 @@ }, "type": "object" }, - "DeployedClusterState": { - "description": "The game server cluster changes made by the game server deployment.", - "id": "DeployedClusterState", - "properties": { - "cluster": { - "description": "The name of the cluster.", - "type": "string" - }, - "fleetDetails": { - "description": "The details about the Agones fleets and autoscalers created in the game server cluster.", - "items": { - "$ref": "DeployedFleetDetails" - }, - "type": "array" - } - }, - "type": "object" - }, - "DeployedFleet": { - "description": "Agones fleet specification and details.", - "id": "DeployedFleet", - "properties": { - "fleet": { - "description": "The name of the Agones fleet.", - "type": "string" - }, - "fleetSpec": { - "description": "The fleet spec retrieved from the Agones fleet.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "The source spec that is used to create the Agones fleet. The GameServerConfig resource may no longer exist in the system." - }, - "status": { - "$ref": "DeployedFleetStatus", - "description": "The current status of the Agones fleet. Includes count of game servers in various states." - } - }, - "type": "object" - }, - "DeployedFleetAutoscaler": { - "description": "Details about the Agones autoscaler.", - "id": "DeployedFleetAutoscaler", - "properties": { - "autoscaler": { - "description": "The name of the Agones autoscaler.", - "type": "string" - }, - "fleetAutoscalerSpec": { - "description": "The autoscaler spec retrieved from Agones.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "The source spec that is used to create the autoscaler. The GameServerConfig resource may no longer exist in the system." - } - }, - "type": "object" - }, - "DeployedFleetDetails": { - "description": "Details of the deployed Agones fleet.", - "id": "DeployedFleetDetails", - "properties": { - "deployedAutoscaler": { - "$ref": "DeployedFleetAutoscaler", - "description": "Information about the Agones autoscaler for that fleet." - }, - "deployedFleet": { - "$ref": "DeployedFleet", - "description": "Information about the Agones fleet." - } - }, - "type": "object" - }, - "DeployedFleetStatus": { - "description": "DeployedFleetStatus has details about the Agones fleets, such as how many are running, how many are allocated, and so on.", - "id": "DeployedFleetStatus", - "properties": { - "allocatedReplicas": { - "description": "The number of GameServer replicas in the ALLOCATED state in this fleet.", - "format": "int64", - "type": "string" - }, - "readyReplicas": { - "description": "The number of GameServer replicas in the READY state in this fleet.", - "format": "int64", - "type": "string" - }, - "replicas": { - "description": "The total number of current GameServer replicas in this fleet.", - "format": "int64", - "type": "string" - }, - "reservedReplicas": { - "description": "The number of GameServer replicas in the RESERVED state in this fleet. Reserved instances won't be deleted on scale down, but won't cause an autoscaler to scale up.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" @@ -1758,406 +700,6 @@ }, "type": "object" }, - "FetchDeploymentStateRequest": { - "description": "Request message for GameServerDeploymentsService.FetchDeploymentState.", - "id": "FetchDeploymentStateRequest", - "properties": {}, - "type": "object" - }, - "FetchDeploymentStateResponse": { - "description": "Response message for GameServerDeploymentsService.FetchDeploymentState.", - "id": "FetchDeploymentStateResponse", - "properties": { - "clusterState": { - "description": "The state of the game server deployment in each game server cluster.", - "items": { - "$ref": "DeployedClusterState" - }, - "type": "array" - }, - "unavailable": { - "description": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "FleetConfig": { - "description": "Fleet configs for Agones.", - "id": "FleetConfig", - "properties": { - "fleetSpec": { - "description": "Agones fleet spec (see [example spec](https://agones.dev/site/docs/reference/fleet/)).", - "type": "string" - }, - "name": { - "description": "The name of the FleetConfig.", - "type": "string" - } - }, - "type": "object" - }, - "GameServerCluster": { - "description": "A game server cluster resource.", - "id": "GameServerCluster", - "properties": { - "clusterState": { - "$ref": "KubernetesClusterState", - "description": "Output only. The state of the Kubernetes cluster in preview. This will be available if view is set to FULL in the relevant list/get/preview request.", - "readOnly": true - }, - "connectionInfo": { - "$ref": "GameServerClusterConnectionInfo", - "description": "The game server cluster connection information. This information is used to manage game server clusters." - }, - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the cluster.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server cluster. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "Required. The resource name of the game server cluster, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`. For example, `projects/my-project/locations/global/realms/zanzibar/gameServerClusters/my-gke-cluster`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerClusterConnectionInfo": { - "description": "The game server cluster connection information.", - "id": "GameServerClusterConnectionInfo", - "properties": { - "gkeClusterReference": { - "$ref": "GkeClusterReference", - "description": "Reference to the GKE cluster where the game servers are installed." - }, - "namespace": { - "description": "Namespace designated on the game server cluster where the Agones game server instances will be created. Existence of the namespace will be validated during creation.", - "type": "string" - } - }, - "type": "object" - }, - "GameServerConfig": { - "description": "A game server config resource.", - "id": "GameServerConfig", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "The description of the game server config.", - "type": "string" - }, - "fleetConfigs": { - "description": "FleetConfig contains a list of Agones fleet specs. Only one FleetConfig is allowed.", - "items": { - "$ref": "FleetConfig" - }, - "type": "array" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server config. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the game server config, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`.", - "type": "string" - }, - "scalingConfigs": { - "description": "The autoscaling settings.", - "items": { - "$ref": "ScalingConfig" - }, - "type": "array" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerConfigOverride": { - "description": "A game server config override.", - "id": "GameServerConfigOverride", - "properties": { - "configVersion": { - "description": "The game server config for this override.", - "type": "string" - }, - "realmsSelector": { - "$ref": "RealmSelector", - "description": "Selector for choosing applicable realms." - } - }, - "type": "object" - }, - "GameServerDeployment": { - "description": "A game server deployment resource.", - "id": "GameServerDeployment", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the game server deployment.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this game server deployment. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the game server deployment, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GameServerDeploymentRollout": { - "description": "The game server deployment rollout which represents the desired rollout state.", - "id": "GameServerDeploymentRollout", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "defaultGameServerConfig": { - "description": "The default game server config is applied to all realms unless overridden in the rollout. For example, `projects/my-project/locations/global/gameServerDeployments/my-game/configs/my-config`.", - "type": "string" - }, - "etag": { - "description": "ETag of the resource.", - "type": "string" - }, - "gameServerConfigOverrides": { - "description": "Contains the game server config rollout overrides. Overrides are processed in the order they are listed. Once a match is found for a realm, the rest of the list is not processed.", - "items": { - "$ref": "GameServerConfigOverride" - }, - "type": "array" - }, - "name": { - "description": "The resource name of the game server deployment rollout, in the following form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/rollout`. For example, `projects/my-project/locations/global/gameServerDeployments/my-deployment/rollout`.", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GkeClusterReference": { - "description": "A reference to a GKE cluster.", - "id": "GkeClusterReference", - "properties": { - "cluster": { - "description": "The full or partial name of a GKE cluster, using one of the following forms: * `projects/{project}/locations/{locationId}/clusters/{cluster}` * `locations/{locationId}/clusters/{cluster}` * `{cluster}` If project and location are not specified, the project and location of the GameServerCluster resource are used to generate the full name of the GKE cluster.", - "type": "string" - } - }, - "type": "object" - }, - "KubernetesClusterState": { - "description": "The state of the Kubernetes cluster.", - "id": "KubernetesClusterState", - "properties": { - "agonesVersionInstalled": { - "description": "Output only. The version of Agones currently installed in the registered Kubernetes cluster.", - "readOnly": true, - "type": "string" - }, - "agonesVersionTargeted": { - "description": "Output only. The version of Agones that is targeted to be installed in the cluster.", - "readOnly": true, - "type": "string" - }, - "installationState": { - "description": "Output only. The state for the installed versions of Agones/Kubernetes.", - "enum": [ - "INSTALLATION_STATE_UNSPECIFIED", - "AGONES_KUBERNETES_VERSION_SUPPORTED", - "AGONES_VERSION_UNSUPPORTED", - "AGONES_KUBERNETES_VERSION_UNSUPPORTED", - "AGONES_VERSION_UNRECOGNIZED", - "KUBERNETES_VERSION_UNRECOGNIZED", - "VERSION_VERIFICATION_FAILED", - "AGONES_NOT_INSTALLED" - ], - "enumDescriptions": [ - "The default installation state. This value is used if the state is omitted.", - "Both the Agones and Kubernetes versions are supported by Google Cloud Game Servers and Agones and Kubernetes versions are compatible.", - "The installed version of Agones is not supported by Google Cloud Game Servers.", - "The installed version of Agones is supported by Google Cloud Game Servers, but the installed version of Kubernetes is not recommended or supported by the version of Agones.", - "The installed version of Agones is not recognized because the Agones controller's image name does not have a version string reported as {major}.{minor}(.{patch}).", - "The server version of Kubernetes cluster is not recognized because the API server didn't return parsable version info on path/version.", - "Failed to read or verify the version of Agones or Kubernetes. See `version_installed_error_message` for details.", - "Agones is not installed." - ], - "readOnly": true, - "type": "string" - }, - "kubernetesVersionInstalled": { - "description": "Output only. The version of Kubernetes that is currently used in the registered Kubernetes cluster (as detected by the Cloud Game Servers service).", - "readOnly": true, - "type": "string" - }, - "provider": { - "description": "Output only. The cloud provider type reported by the first node's `providerID` in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the provider type will be empty.", - "readOnly": true, - "type": "string" - }, - "versionInstalledErrorMessage": { - "description": "Output only. The detailed error message for the installed versions of Agones/Kubernetes.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "LabelSelector": { - "description": "The label selector, used to group labels on the resources.", - "id": "LabelSelector", - "properties": { - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Resource labels for this selector.", - "type": "object" - } - }, - "type": "object" - }, - "ListGameServerClustersResponse": { - "description": "Response message for GameServerClustersService.ListGameServerClusters.", - "id": "ListGameServerClustersResponse", - "properties": { - "gameServerClusters": { - "description": "The list of game server clusters.", - "items": { - "$ref": "GameServerCluster" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListGameServerConfigsResponse": { - "description": "Response message for GameServerConfigsService.ListGameServerConfigs.", - "id": "ListGameServerConfigsResponse", - "properties": { - "gameServerConfigs": { - "description": "The list of game server configs.", - "items": { - "$ref": "GameServerConfig" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListGameServerDeploymentsResponse": { - "description": "Response message for GameServerDeploymentsService.ListGameServerDeployments.", - "id": "ListGameServerDeploymentsResponse", - "properties": { - "gameServerDeployments": { - "description": "The list of game server deployments.", - "items": { - "$ref": "GameServerDeployment" - }, - "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": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -2194,31 +736,6 @@ }, "type": "object" }, - "ListRealmsResponse": { - "description": "Response message for RealmsService.ListRealms.", - "id": "ListRealmsResponse", - "properties": { - "nextPageToken": { - "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", - "type": "string" - }, - "realms": { - "description": "The list of realms.", - "items": { - "$ref": "Realm" - }, - "type": "array" - }, - "unreachable": { - "description": "List of locations that could not be reached.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "id": "Location", @@ -2307,97 +824,6 @@ }, "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" - }, - "operationStatus": { - "additionalProperties": { - "$ref": "OperationStatus" - }, - "description": "Output only. Operation status for Game Services API operations. Operation status is in the form of key-value pairs where keys are resource IDs and the values show the status of the operation. In case of failures, the value includes an error code and error message.", - "readOnly": true, - "type": "object" - }, - "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" - }, - "unreachable": { - "description": "Output only. List of Locations that could not be reached.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "verb": { - "description": "Output only. Name of the verb executed by the operation.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "OperationStatus": { - "id": "OperationStatus", - "properties": { - "done": { - "description": "Output only. Whether the operation is done or still in progress.", - "readOnly": true, - "type": "boolean" - }, - "errorCode": { - "description": "The error code in case of failures.", - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "INTERNAL_ERROR", - "PERMISSION_DENIED", - "CLUSTER_CONNECTION" - ], - "enumDescriptions": [ - "", - "", - "", - "" - ], - "type": "string" - }, - "errorMessage": { - "description": "The human-readable error message.", - "type": "string" - } - }, - "type": "object" - }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -2436,149 +862,6 @@ }, "type": "object" }, - "PreviewCreateGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewCreateGameServerCluster.", - "id": "PreviewCreateGameServerClusterResponse", - "properties": { - "clusterState": { - "$ref": "KubernetesClusterState", - "description": "Output only. The state of the Kubernetes cluster in preview. This will be available if view is set to FULL in the relevant list/get/preview request.", - "readOnly": true - }, - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewDeleteGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewDeleteGameServerCluster.", - "id": "PreviewDeleteGameServerClusterResponse", - "properties": { - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewGameServerDeploymentRolloutResponse": { - "description": "Response message for PreviewGameServerDeploymentRollout. This has details about the Agones fleet and autoscaler to be actuated.", - "id": "PreviewGameServerDeploymentRolloutResponse", - "properties": { - "etag": { - "description": "ETag of the game server deployment.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - }, - "unavailable": { - "description": "Locations that could not be reached on this request.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "PreviewRealmUpdateResponse": { - "description": "Response message for RealmsService.PreviewRealmUpdate.", - "id": "PreviewRealmUpdateResponse", - "properties": { - "etag": { - "description": "ETag of the realm.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "PreviewUpdateGameServerClusterResponse": { - "description": "Response message for GameServerClustersService.PreviewUpdateGameServerCluster", - "id": "PreviewUpdateGameServerClusterResponse", - "properties": { - "etag": { - "description": "The ETag of the game server cluster.", - "type": "string" - }, - "targetState": { - "$ref": "TargetState", - "description": "The target state." - } - }, - "type": "object" - }, - "Realm": { - "description": "A realm resource.", - "id": "Realm", - "properties": { - "createTime": { - "description": "Output only. The creation time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Human readable description of the realm.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels associated with this realm. Each label is a key-value pair.", - "type": "object" - }, - "name": { - "description": "The resource name of the realm, in the following form: `projects/{project}/locations/{locationId}/realms/{realmId}`. For example, `projects/my-project/locations/global/realms/my-realm`.", - "type": "string" - }, - "timeZone": { - "description": "Required. Time zone where all policies targeting this realm are evaluated. The value of this field must be from the [IANA time zone database](https://www.iana.org/time-zones).", - "type": "string" - }, - "updateTime": { - "description": "Output only. The last-modified time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "RealmSelector": { - "description": "The realm selector, used to match realm resources.", - "id": "RealmSelector", - "properties": { - "realms": { - "description": "List of realms to match.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, "Rule": { "description": "A rule to be applied in a Policy.", "id": "Rule", @@ -2645,68 +928,13 @@ }, "type": "object" }, - "ScalingConfig": { - "description": "Autoscaling config for an Agones fleet.", - "id": "ScalingConfig", - "properties": { - "fleetAutoscalerSpec": { - "description": "Required. Agones fleet autoscaler spec (see [example spec](https://agones.dev/site/docs/reference/fleetautoscaler/)).", - "type": "string" - }, - "name": { - "description": "Required. The name of the scaling config.", - "type": "string" - }, - "schedules": { - "description": "The schedules to which this scaling config applies.", - "items": { - "$ref": "Schedule" - }, - "type": "array" - }, - "selectors": { - "description": "Labels used to identify the game server clusters to which this Agones scaling config applies. A game server cluster is subject to this Agones scaling config if its labels match any of the selector entries.", - "items": { - "$ref": "LabelSelector" - }, - "type": "array" - } - }, - "type": "object" - }, - "Schedule": { - "description": "The schedule of a recurring or one time event. The event's time span is specified by start_time and end_time. If the scheduled event's timespan is larger than cron_spec added with cron_job_duration, the event is recurring. If only cron_spec and cron_job_duration are specified, the event starts at the local time specified by cron_spec, and is recurring. ``` start_time|-------[cron job]-------[cron job]-------[cron job]---|end_time cron job: cron spec start time + duration ```", - "id": "Schedule", - "properties": { - "cronJobDuration": { - "description": "The duration for the cron job event. The duration of the event is effective after the cron job's start time.", - "format": "google-duration", - "type": "string" - }, - "cronSpec": { - "description": "The cron definition of the scheduled event. See https://en.wikipedia.org/wiki/Cron. The cron spec specifies the local time as defined by the realm.", - "type": "string" - }, - "endTime": { - "description": "The end time of the event.", - "format": "google-datetime", - "type": "string" - }, - "startTime": { - "description": "The start time of the event.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2716,21 +944,6 @@ }, "type": "object" }, - "SpecSource": { - "description": "Encapsulates Agones fleet spec and Agones autoscaler spec sources.", - "id": "SpecSource", - "properties": { - "gameServerConfigName": { - "description": "The game server config resource. Uses the form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}/configs/{configId}`.", - "type": "string" - }, - "name": { - "description": "The name of the Agones fleet config or Agones scaling config used to derive the Agones fleet or Agones autoscaler spec.", - "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", @@ -2758,93 +971,12 @@ }, "type": "object" }, - "TargetDetails": { - "description": "Details about the Agones resources.", - "id": "TargetDetails", - "properties": { - "fleetDetails": { - "description": "Agones fleet details for game server clusters and game server deployments.", - "items": { - "$ref": "TargetFleetDetails" - }, - "type": "array" - }, - "gameServerClusterName": { - "description": "The game server cluster name. Uses the form: `projects/{project}/locations/{locationId}/realms/{realmId}/gameServerClusters/{gameServerClusterId}`.", - "type": "string" - }, - "gameServerDeploymentName": { - "description": "The game server deployment name. Uses the form: `projects/{project}/locations/{locationId}/gameServerDeployments/{deploymentId}`.", - "type": "string" - } - }, - "type": "object" - }, - "TargetFleet": { - "description": "Target Agones fleet specification.", - "id": "TargetFleet", - "properties": { - "name": { - "description": "The name of the Agones fleet.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "Encapsulates the source of the Agones fleet spec. The Agones fleet spec source." - } - }, - "type": "object" - }, - "TargetFleetAutoscaler": { - "description": "Target Agones autoscaler policy reference.", - "id": "TargetFleetAutoscaler", - "properties": { - "name": { - "description": "The name of the Agones autoscaler.", - "type": "string" - }, - "specSource": { - "$ref": "SpecSource", - "description": "Encapsulates the source of the Agones fleet spec. Details about the Agones autoscaler spec." - } - }, - "type": "object" - }, - "TargetFleetDetails": { - "description": "Details of the target Agones fleet.", - "id": "TargetFleetDetails", - "properties": { - "autoscaler": { - "$ref": "TargetFleetAutoscaler", - "description": "Reference to target Agones fleet autoscaling policy." - }, - "fleet": { - "$ref": "TargetFleet", - "description": "Reference to target Agones fleet." - } - }, - "type": "object" - }, - "TargetState": { - "description": "Encapsulates the Target state.", - "id": "TargetState", - "properties": { - "details": { - "description": "Details about Agones fleets.", - "items": { - "$ref": "TargetDetails" - }, - "type": "array" - } - }, - "type": "object" - }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json index 48ee9100cf..4733563e33 100644 --- a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json +++ b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json @@ -471,7 +471,7 @@ } } }, - "revision": "20220217", + "revision": "20230112", "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 e50d0566e3..4c86437bc2 100644 --- a/etc/api/genomics/v2alpha1/genomics-api.json +++ b/etc/api/genomics/v2alpha1/genomics-api.json @@ -301,7 +301,7 @@ } } }, - "revision": "20220302", + "revision": "20230122", "rootUrl": "https://genomics.googleapis.com/", "schemas": { "Accelerator": { @@ -611,7 +611,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -681,7 +681,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", diff --git a/etc/api/gkehub/v1/gkehub-api.json b/etc/api/gkehub/v1/gkehub-api.json index 9bdc22062c..f0d241c19d 100644 --- a/etc/api/gkehub/v1/gkehub-api.json +++ b/etc/api/gkehub/v1/gkehub-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -293,7 +293,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -403,7 +403,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -431,7 +431,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -619,7 +619,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -729,7 +729,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -757,7 +757,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -905,7 +905,7 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AppDevExperienceFeatureSpec": { @@ -925,8 +925,19 @@ }, "type": "object" }, + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "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", + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1008,7 +1019,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1035,6 +1046,10 @@ "$ref": "AppDevExperienceFeatureSpec", "description": "Appdevexperience specific spec." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureSpec", + "description": "FleetObservability feature spec." + }, "multiclusteringress": { "$ref": "MultiClusterIngressFeatureSpec", "description": "Multicluster Ingress-specific spec." @@ -1050,6 +1065,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureState", + "description": "FleetObservability feature state." + }, "state": { "$ref": "FeatureState", "description": "Output only. The \"running state\" of the Feature in this Hub.", @@ -1062,6 +1081,10 @@ "description": "Configuration for Config Sync", "id": "ConfigManagementConfigSync", "properties": { + "allowVerticalScale": { + "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.", "type": "boolean" @@ -1070,12 +1093,16 @@ "$ref": "ConfigManagementGitConfig", "description": "Git repo configuration for the cluster." }, + "oci": { + "$ref": "ConfigManagementOciConfig", + "description": "OCI repo configuration for the cluster" + }, "preventDrift": { "description": "Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.", "type": "boolean" }, "sourceFormat": { - "description": "Specifies whether the Config Sync Repo is in \u201chierarchical\u201d or \u201cunstructured\u201d mode.", + "description": "Specifies whether the Config Sync Repo is in \"hierarchical\" or \"unstructured\" mode.", "type": "string" } }, @@ -1312,6 +1339,22 @@ "Deployment was attempted to be installed, but has errors" ], "type": "string" + }, + "gatekeeperMutation": { + "description": "Status of the pod serving the mutation webhook.", + "enum": [ + "DEPLOYMENT_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLED", + "ERROR" + ], + "enumDescriptions": [ + "Deployment's state cannot be determined", + "Deployment is not installed", + "Deployment is installed", + "Deployment was attempted to be installed, but has errors" + ], + "type": "string" } }, "type": "object" @@ -1528,6 +1571,34 @@ }, "type": "object" }, + "ConfigManagementOciConfig": { + "description": "OCI repo configuration for a single cluster", + "id": "ConfigManagementOciConfig", + "properties": { + "gcpServiceAccountEmail": { + "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "type": "string" + }, + "policyDir": { + "description": "The absolute path of the directory that contains the local resources. Default: the root directory of the image.", + "type": "string" + }, + "secretType": { + "description": "Type of secret configured for access to the Git repo.", + "type": "string" + }, + "syncRepo": { + "description": "The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.", + "type": "string" + }, + "syncWaitSecs": { + "description": "Period in seconds between consecutive syncs. Default: 15.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementOperatorState": { "description": "State information for an ACM's Operator", "id": "ConfigManagementOperatorState", @@ -1586,6 +1657,14 @@ "description": "Logs all denies and dry run failures.", "type": "boolean" }, + "monitoring": { + "$ref": "ConfigManagementPolicyControllerMonitoring", + "description": "Monitoring specifies the configuration of monitoring." + }, + "mutationEnabled": { + "description": "Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.", + "type": "boolean" + }, "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" @@ -1597,6 +1676,30 @@ }, "type": "object" }, + "ConfigManagementPolicyControllerMonitoring": { + "description": "PolicyControllerMonitoring 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": "ConfigManagementPolicyControllerMonitoring", + "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" + }, "ConfigManagementPolicyControllerState": { "description": "State for PolicyControllerState.", "id": "ConfigManagementPolicyControllerState", @@ -1731,7 +1834,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1807,6 +1910,21 @@ "description": "Output only. State of the Feature resource itself.", "readOnly": true }, + "scopeSpecs": { + "additionalProperties": { + "$ref": "ScopeFeatureSpec" + }, + "description": "Optional. Scope-specific configuration for this Feature. If this Feature does not support any per-Scope configuration, this field may be unused. The keys indicate which Scope the configuration is for, 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. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Scope is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.", + "type": "object" + }, + "scopeStates": { + "additionalProperties": { + "$ref": "ScopeFeatureState" + }, + "description": "Output only. Scope-specific Feature status. If this Feature does report any per-Scope status, this field may be unused. The keys indicate which Scope the state is for, 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.", + "readOnly": true, + "type": "object" + }, "spec": { "$ref": "CommonFeatureSpec", "description": "Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused." @@ -1884,6 +2002,30 @@ }, "type": "object" }, + "FleetObservabilityFeatureSpec": { + "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", + "id": "FleetObservabilityFeatureSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityFeatureState": { + "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "id": "FleetObservabilityFeatureState", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipSpec": { + "description": "**FleetObservability**: The membership-specific input for FleetObservability feature.", + "id": "FleetObservabilityMembershipSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipState": { + "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "id": "FleetObservabilityMembershipState", + "properties": {}, + "type": "object" + }, "GenerateConnectManifestResponse": { "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", "id": "GenerateConnectManifestResponse", @@ -1941,6 +2083,185 @@ }, "type": "object" }, + "IdentityServiceAuthMethod": { + "description": "Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.", + "id": "IdentityServiceAuthMethod", + "properties": { + "azureadConfig": { + "$ref": "IdentityServiceAzureADConfig", + "description": "AzureAD specific Configuration." + }, + "googleConfig": { + "$ref": "IdentityServiceGoogleConfig", + "description": "GoogleConfig specific configuration" + }, + "name": { + "description": "Identifier for auth config.", + "type": "string" + }, + "oidcConfig": { + "$ref": "IdentityServiceOidcConfig", + "description": "OIDC specific configuration." + }, + "proxy": { + "description": "Proxy server address to use for auth method.", + "type": "string" + } + }, + "type": "object" + }, + "IdentityServiceAzureADConfig": { + "description": "Configuration for the AzureAD Auth flow.", + "id": "IdentityServiceAzureADConfig", + "properties": { + "clientId": { + "description": "ID for the registered client application that makes authentication requests to the Azure AD identity provider.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.", + "type": "string" + }, + "encryptedClientSecret": { + "description": "Output only. Encrypted AzureAD client secret.", + "format": "byte", + "readOnly": true, + "type": "string" + }, + "kubectlRedirectUri": { + "description": "The redirect URL that kubectl uses for authorization.", + "type": "string" + }, + "tenant": { + "description": "Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.", + "type": "string" + } + }, + "type": "object" + }, + "IdentityServiceGoogleConfig": { + "description": "Configuration for the Google Plugin Auth flow.", + "id": "IdentityServiceGoogleConfig", + "properties": { + "disable": { + "description": "Disable automatic configuration of Google Plugin on supported platforms.", + "type": "boolean" + } + }, + "type": "object" + }, + "IdentityServiceMembershipSpec": { + "description": "**Anthos Identity Service**: Configuration for a single Membership.", + "id": "IdentityServiceMembershipSpec", + "properties": { + "authMethods": { + "description": "A member may support multiple auth methods.", + "items": { + "$ref": "IdentityServiceAuthMethod" + }, + "type": "array" + } + }, + "type": "object" + }, + "IdentityServiceMembershipState": { + "description": "**Anthos Identity Service**: State for a single Membership.", + "id": "IdentityServiceMembershipState", + "properties": { + "failureReason": { + "description": "The reason of the failure.", + "type": "string" + }, + "installedVersion": { + "description": "Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.", + "type": "string" + }, + "memberConfig": { + "$ref": "IdentityServiceMembershipSpec", + "description": "Last reconciled membership configuration" + }, + "state": { + "description": "Deployment state on this member", + "enum": [ + "DEPLOYMENT_STATE_UNSPECIFIED", + "OK", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified state", + "deployment succeeds", + "Failure with error." + ], + "type": "string" + } + }, + "type": "object" + }, + "IdentityServiceOidcConfig": { + "description": "Configuration for OIDC Auth flow.", + "id": "IdentityServiceOidcConfig", + "properties": { + "certificateAuthorityData": { + "description": "PEM-encoded CA for OIDC provider.", + "type": "string" + }, + "clientId": { + "description": "ID for OIDC client application.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", + "type": "string" + }, + "deployCloudConsoleProxy": { + "description": "Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.", + "type": "boolean" + }, + "enableAccessToken": { + "description": "Enable access token.", + "type": "boolean" + }, + "encryptedClientSecret": { + "description": "Output only. Encrypted OIDC Client secret", + "format": "byte", + "readOnly": true, + "type": "string" + }, + "extraParams": { + "description": "Comma-separated list of key-value pairs.", + "type": "string" + }, + "groupPrefix": { + "description": "Prefix to prepend to group name.", + "type": "string" + }, + "groupsClaim": { + "description": "Claim in OIDC ID token that holds group information.", + "type": "string" + }, + "issuerUri": { + "description": "URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.", + "type": "string" + }, + "kubectlRedirectUri": { + "description": "Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.", + "type": "string" + }, + "scopes": { + "description": "Comma-separated list of identifiers.", + "type": "string" + }, + "userClaim": { + "description": "Claim in OIDC ID token that holds username.", + "type": "string" + }, + "userPrefix": { + "description": "Prefix to prepend to user name.", + "type": "string" + } + }, + "type": "object" + }, "KubernetesMetadata": { "description": "KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters.", "id": "KubernetesMetadata", @@ -2200,6 +2521,10 @@ "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." @@ -2235,6 +2560,22 @@ "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" + }, + "identityservice": { + "$ref": "IdentityServiceMembershipSpec", + "description": "Identity Service-specific spec." + }, + "mesh": { + "$ref": "ServiceMeshMembershipSpec", + "description": "Anthos Service Mesh-specific spec" } }, "type": "object" @@ -2251,6 +2592,18 @@ "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityMembershipState", + "description": "Fleet observability membership state." + }, + "identityservice": { + "$ref": "IdentityServiceMembershipState", + "description": "Identity Service-specific state." + }, + "servicemesh": { + "$ref": "ServiceMeshMembershipState", + "description": "Service Mesh-specific state." + }, "state": { "$ref": "FeatureState", "description": "The high-level state of this Feature for a single membership." @@ -2296,7 +2649,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", + "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", "type": "string" } }, @@ -2326,6 +2679,24 @@ "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 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", "type": "string" @@ -2477,13 +2848,174 @@ }, "type": "object" }, + "ScopeFeatureSpec": { + "description": "ScopeFeatureSpec contains feature specs for a fleet scope.", + "id": "ScopeFeatureSpec", + "properties": {}, + "type": "object" + }, + "ScopeFeatureState": { + "description": "ScopeFeatureState contains Scope-wide Feature status information.", + "id": "ScopeFeatureState", + "properties": { + "state": { + "$ref": "FeatureState", + "description": "Output only. The \"running state\" of the Feature in this Scope.", + "readOnly": true + } + }, + "type": "object" + }, + "ServiceMeshControlPlaneManagement": { + "description": "Status of control plane management.", + "id": "ServiceMeshControlPlaneManagement", + "properties": { + "details": { + "description": "Explanation of state.", + "items": { + "$ref": "ServiceMeshStatusDetails" + }, + "type": "array" + }, + "state": { + "description": "LifecycleState of control plane management.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "DISABLED", + "FAILED_PRECONDITION", + "PROVISIONING", + "ACTIVE", + "STALLED", + "NEEDS_ATTENTION", + "DEGRADED" + ], + "enumDescriptions": [ + "Unspecified", + "DISABLED means that the component is not enabled.", + "FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", + "PROVISIONING means that provisioning is in progress.", + "ACTIVE means that the component is ready for use.", + "STALLED means that provisioning could not be done.", + "NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", + "DEGRADED means that the component is ready, but operating in a degraded state." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshDataPlaneManagement": { + "description": "Status of data plane management. Only reported per-member.", + "id": "ServiceMeshDataPlaneManagement", + "properties": { + "details": { + "description": "Explanation of the status.", + "items": { + "$ref": "ServiceMeshStatusDetails" + }, + "type": "array" + }, + "state": { + "description": "Lifecycle status of data plane management.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "DISABLED", + "FAILED_PRECONDITION", + "PROVISIONING", + "ACTIVE", + "STALLED", + "NEEDS_ATTENTION", + "DEGRADED" + ], + "enumDescriptions": [ + "Unspecified", + "DISABLED means that the component is not enabled.", + "FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", + "PROVISIONING means that provisioning is in progress.", + "ACTIVE means that the component is ready for use.", + "STALLED means that provisioning could not be done.", + "NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", + "DEGRADED means that the component is ready, but operating in a degraded state." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshMembershipSpec": { + "description": "**Service Mesh**: Spec for a single Membership for the servicemesh feature", + "id": "ServiceMeshMembershipSpec", + "properties": { + "controlPlane": { + "description": "Enables automatic control plane management.", + "enum": [ + "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", + "AUTOMATIC", + "MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google should provision a control plane revision and make it available in the cluster. Google will enroll this revision in a release channel and keep it up to date. The control plane revision may be a managed service, or a managed install.", + "User will manually configure the control plane (e.g. via CLI, or via the ControlPlaneRevision KRM API)" + ], + "type": "string" + }, + "management": { + "description": "Enables automatic Service Mesh management.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "MANAGEMENT_AUTOMATIC", + "MANAGEMENT_MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google should manage my Service Mesh for the cluster.", + "User will manually configure their service mesh components." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshMembershipState": { + "description": "**Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller.", + "id": "ServiceMeshMembershipState", + "properties": { + "controlPlaneManagement": { + "$ref": "ServiceMeshControlPlaneManagement", + "description": "Output only. Status of control plane management", + "readOnly": true + }, + "dataPlaneManagement": { + "$ref": "ServiceMeshDataPlaneManagement", + "description": "Output only. Status of data plane management.", + "readOnly": true + } + }, + "type": "object" + }, + "ServiceMeshStatusDetails": { + "description": "Structured and human-readable details for a status.", + "id": "ServiceMeshStatusDetails", + "properties": { + "code": { + "description": "A machine-readable code that further describes a broad status.", + "type": "string" + }, + "details": { + "description": "Human-readable explanation of code.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2525,7 +3057,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gkehub/v1alpha/gkehub-api.json b/etc/api/gkehub/v1alpha/gkehub-api.json index dcfd814d7f..6e0dacea9a 100644 --- a/etc/api/gkehub/v1alpha/gkehub-api.json +++ b/etc/api/gkehub/v1alpha/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": "v1alpha/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": "v1alpha/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -144,7 +192,7 @@ ], "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).", + "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" }, @@ -293,7 +341,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -403,7 +451,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -431,7 +479,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -475,7 +523,7 @@ "$ref": "Fleet" }, "response": { - "$ref": "Fleet" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -500,7 +548,7 @@ }, "path": "v1alpha/{+name}", "response": { - "$ref": "Empty" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -531,6 +579,42 @@ "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": "v1alpha/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": "v1alpha/{+parent}/fleets", + "response": { + "$ref": "ListFleetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a fleet.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", @@ -559,7 +643,7 @@ "$ref": "Fleet" }, "response": { - "$ref": "Fleet" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -735,7 +819,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -891,7 +975,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -919,7 +1003,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -936,6 +1020,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "validateCreate": { + "description": "ValidateCreateMembership is a preflight check for CreateMembership. It checks the following: 1. Caller has the required `gkehub.memberships.create` permission. 2. The membership_id is still available.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/memberships:validateCreate", + "httpMethod": "POST", + "id": "gkehub.projects.locations.memberships.validateCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "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" + } + }, + "path": "v1alpha/{+parent}/memberships:validateCreate", + "request": { + "$ref": "ValidateCreateMembershipRequest" + }, + "response": { + "$ref": "ValidateCreateMembershipResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -1067,20 +1179,35 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { + "AnthosObservabilityFeatureSpec": { + "description": "**Anthos Observability**: Spec", + "id": "AnthosObservabilityFeatureSpec", + "properties": { + "defaultMembershipSpec": { + "$ref": "AnthosObservabilityMembershipSpec", + "description": "Default membership spec for unconfigured memberships" + } + }, + "type": "object" + }, "AnthosObservabilityMembershipSpec": { "description": "**Anthosobservability**: Per-Membership Feature spec.", "id": "AnthosObservabilityMembershipSpec", "properties": { "doNotOptimizeMetrics": { - "description": "use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics", + "description": "Use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics", "type": "boolean" }, "enableStackdriverOnApplications": { - "description": "enable collecting and reporting metrics and logs from user apps See go/onyx-application-metrics-logs-user-guide", + "description": "Enable collecting and reporting metrics and logs from user apps.", "type": "boolean" + }, + "version": { + "description": "the version of stackdriver operator used by this feature", + "type": "string" } }, "type": "object" @@ -1102,8 +1229,19 @@ }, "type": "object" }, + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "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", + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1185,7 +1323,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1247,6 +1385,10 @@ "description": "CommonFeatureSpec contains Hub-wide configuration information", "id": "CommonFeatureSpec", "properties": { + "anthosobservability": { + "$ref": "AnthosObservabilityFeatureSpec", + "description": "Anthos Observability spec" + }, "appdevexperience": { "$ref": "AppDevExperienceFeatureSpec", "description": "Appdevexperience specific spec." @@ -1255,6 +1397,10 @@ "$ref": "CloudAuditLoggingFeatureSpec", "description": "Cloud Audit Logging-specific spec." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureSpec", + "description": "FleetObservability feature spec." + }, "multiclusteringress": { "$ref": "MultiClusterIngressFeatureSpec", "description": "Multicluster Ingress-specific spec." @@ -1274,6 +1420,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureState", + "description": "FleetObservability feature state." + }, "servicemesh": { "$ref": "ServiceMeshFeatureState", "description": "Service Mesh-specific state." @@ -1339,6 +1489,10 @@ "description": "Configuration for Config Sync", "id": "ConfigManagementConfigSync", "properties": { + "allowVerticalScale": { + "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.", "type": "boolean" @@ -1347,12 +1501,16 @@ "$ref": "ConfigManagementGitConfig", "description": "Git repo configuration for the cluster." }, + "oci": { + "$ref": "ConfigManagementOciConfig", + "description": "OCI repo configuration for the cluster" + }, "preventDrift": { "description": "Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.", "type": "boolean" }, "sourceFormat": { - "description": "Specifies whether the Config Sync Repo is in \u201chierarchical\u201d or \u201cunstructured\u201d mode.", + "description": "Specifies whether the Config Sync Repo is in \"hierarchical\" or \"unstructured\" mode.", "type": "string" } }, @@ -1829,6 +1987,34 @@ }, "type": "object" }, + "ConfigManagementOciConfig": { + "description": "OCI repo configuration for a single cluster", + "id": "ConfigManagementOciConfig", + "properties": { + "gcpServiceAccountEmail": { + "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "type": "string" + }, + "policyDir": { + "description": "The absolute path of the directory that contains the local resources. Default: the root directory of the image.", + "type": "string" + }, + "secretType": { + "description": "Type of secret configured for access to the Git repo.", + "type": "string" + }, + "syncRepo": { + "description": "The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.", + "type": "string" + }, + "syncWaitSecs": { + "description": "Period in seconds between consecutive syncs. Default: 15.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementOperatorState": { "description": "State information for an ACM's Operator", "id": "ConfigManagementOperatorState", @@ -1887,8 +2073,12 @@ "description": "Logs all denies and dry run failures.", "type": "boolean" }, + "monitoring": { + "$ref": "ConfigManagementPolicyControllerMonitoring", + "description": "Monitoring specifies the configuration of monitoring." + }, "mutationEnabled": { - "description": "Enable users to try out mutation for PolicyController.", + "description": "Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.", "type": "boolean" }, "referentialRulesEnabled": { @@ -1902,6 +2092,30 @@ }, "type": "object" }, + "ConfigManagementPolicyControllerMonitoring": { + "description": "PolicyControllerMonitoring 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": "ConfigManagementPolicyControllerMonitoring", + "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" + }, "ConfigManagementPolicyControllerState": { "description": "State for PolicyControllerState.", "id": "ConfigManagementPolicyControllerState", @@ -2036,7 +2250,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2112,6 +2326,21 @@ "description": "Output only. State of the Feature resource itself.", "readOnly": true }, + "scopeSpecs": { + "additionalProperties": { + "$ref": "ScopeFeatureSpec" + }, + "description": "Optional. Scope-specific configuration for this Feature. If this Feature does not support any per-Scope configuration, this field may be unused. The keys indicate which Scope the configuration is for, 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. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Scope is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.", + "type": "object" + }, + "scopeStates": { + "additionalProperties": { + "$ref": "ScopeFeatureState" + }, + "description": "Output only. Scope-specific Feature status. If this Feature does report any per-Scope status, this field may be unused. The keys indicate which Scope the state is for, 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.", + "readOnly": true, + "type": "object" + }, "spec": { "$ref": "CommonFeatureSpec", "description": "Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused." @@ -2234,15 +2463,16 @@ "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" }, - "fleetName": { - "description": "The name for the fleet. The name must meet the following constraints: + The name of a fleet should be unique within the organization; + It must consist of lower case alphanumeric characters or `-`; + The length of the name must be less than or equal to 63; + Unicode names must be expressed in Punycode format (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb \uff08Punycode form for \"\u751f\u4ea7\u73af\u5883\")", - "type": "string" - }, "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\".", "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, @@ -2257,6 +2487,56 @@ }, "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" + }, + "FleetObservabilityFeatureSpec": { + "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", + "id": "FleetObservabilityFeatureSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityFeatureState": { + "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "id": "FleetObservabilityFeatureState", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipSpec": { + "description": "**FleetObservability**: The membership-specific input for FleetObservability feature.", + "id": "FleetObservabilityMembershipSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipState": { + "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "id": "FleetObservabilityMembershipState", + "properties": {}, + "type": "object" + }, "GenerateConnectManifestResponse": { "description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", "id": "GenerateConnectManifestResponse", @@ -2318,6 +2598,14 @@ "description": "Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.", "id": "IdentityServiceAuthMethod", "properties": { + "azureadConfig": { + "$ref": "IdentityServiceAzureADConfig", + "description": "AzureAD specific Configuration." + }, + "googleConfig": { + "$ref": "IdentityServiceGoogleConfig", + "description": "GoogleConfig specific configuration" + }, "name": { "description": "Identifier for auth config.", "type": "string" @@ -2333,6 +2621,46 @@ }, "type": "object" }, + "IdentityServiceAzureADConfig": { + "description": "Configuration for the AzureAD Auth flow.", + "id": "IdentityServiceAzureADConfig", + "properties": { + "clientId": { + "description": "ID for the registered client application that makes authentication requests to the Azure AD identity provider.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.", + "type": "string" + }, + "encryptedClientSecret": { + "description": "Output only. Encrypted AzureAD client secret.", + "format": "byte", + "readOnly": true, + "type": "string" + }, + "kubectlRedirectUri": { + "description": "The redirect URL that kubectl uses for authorization.", + "type": "string" + }, + "tenant": { + "description": "Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.", + "type": "string" + } + }, + "type": "object" + }, + "IdentityServiceGoogleConfig": { + "description": "Configuration for the Google Plugin Auth flow.", + "id": "IdentityServiceGoogleConfig", + "properties": { + "disable": { + "description": "Disable automatic configuration of Google Plugin on supported platforms.", + "type": "boolean" + } + }, + "type": "object" + }, "IdentityServiceMembershipSpec": { "description": "**Anthos Identity Service**: Configuration for a single Membership.", "id": "IdentityServiceMembershipSpec", @@ -2393,13 +2721,17 @@ "type": "string" }, "clientSecret": { - "description": "Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", + "description": "Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", "type": "string" }, "deployCloudConsoleProxy": { "description": "Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.", "type": "boolean" }, + "enableAccessToken": { + "description": "Enable access token.", + "type": "boolean" + }, "encryptedClientSecret": { "description": "Output only. Encrypted OIDC Client secret", "format": "byte", @@ -2556,6 +2888,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", @@ -2725,6 +3075,10 @@ "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." @@ -2769,6 +3123,14 @@ "$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" + }, "identityservice": { "$ref": "IdentityServiceMembershipSpec", "description": "Identity Service-specific spec." @@ -2800,13 +3162,17 @@ "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityMembershipState", + "description": "Fleet observability membership state." + }, "identityservice": { "$ref": "IdentityServiceMembershipState", "description": "Identity Service-specific state." }, "metering": { "$ref": "MeteringMembershipState", - "description": "Metering-specific spec." + "description": "Metering-specific state." }, "policycontroller": { "$ref": "PolicyControllerMembershipState", @@ -2899,7 +3265,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", + "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", "type": "string" } }, @@ -2943,6 +3309,24 @@ "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 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", "type": "string" @@ -3060,67 +3444,35 @@ }, "type": "object" }, - "PolicyControllerMembershipSpec": { - "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", - "id": "PolicyControllerMembershipSpec", + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", "properties": { - "policyControllerHubConfig": { - "$ref": "PolicyControllerPolicyControllerHubConfig", - "description": "Policy Controller configuration for the cluster." + "exemptedNamespaces": { + "description": "the set of namespaces to be exempted from the bundle", + "items": { + "type": "string" + }, + "type": "array" }, - "version": { - "description": "Version of Policy Controller installed.", - "type": "string" - } - }, - "type": "object" - }, - "PolicyControllerMembershipState": { - "description": "**Policy Controller**: State for a single cluster.", - "id": "PolicyControllerMembershipState", - "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 PC on the cluster manually prior to enabling the PC hub feature. Unique within a Policy Controller installation.", - "type": "string" - }, - "membershipSpec": { - "$ref": "PolicyControllerMembershipSpec", - "description": "Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state" - }, - "policyControllerHubState": { - "$ref": "PolicyControllerPolicyControllerHubState", - "description": "Policy Controller state observed by the Policy Controller Hub" - }, - "state": { - "description": "The lifecycle state Policy Controller is in.", + "management": { + "description": "Management specifies how the bundle will be managed by the controller.", "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "NOT_INSTALLED", - "INSTALLING", - "ACTIVE", - "UPDATING", - "DECOMISSIONING", - "CLUSTER_ERROR", - "HUB_ERROR" + "MANAGEMENT_UNSPECIFIED", + "INSTALLED" ], "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\u2019s 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 \u2018install\u2019).", - "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 \u2018take hands off\u2019 to avoid corrupting the PC or other data." + "No Management strategy has been specified.", + "The entity should be insistently reconciled by the Hub controller" ], "type": "string" } }, "type": "object" }, - "PolicyControllerPolicyControllerHubConfig": { + "PolicyControllerHubConfig": { "description": "Configuration for Policy Controller", - "id": "PolicyControllerPolicyControllerHubConfig", + "id": "PolicyControllerHubConfig", "properties": { "auditIntervalSeconds": { "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", @@ -3140,13 +3492,13 @@ "INSTALL_SPEC_UNSPECIFIED", "INSTALL_SPEC_NOT_INSTALLED", "INSTALL_SPEC_ENABLED", - "INSTALL_SPEC_DISABLED" + "INSTALL_SPEC_SUSPENDED" ], "enumDescriptions": [ "Spec is unknown.", "Request to uninstall Policy Controller.", "Request to install and enable Policy Controller.", - "Request to disable Policy Controller. If Policy Controller is not installed, it will be installed but disabled." + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended." ], "type": "string" }, @@ -3154,10 +3506,18 @@ "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" @@ -3169,47 +3529,143 @@ }, "type": "object" }, - "PolicyControllerPolicyControllerHubState": { - "description": "State of the Policy Controller.", - "id": "PolicyControllerPolicyControllerHubState", + "PolicyControllerMembershipSpec": { + "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", + "id": "PolicyControllerMembershipSpec", "properties": { - "deploymentStates": { - "additionalProperties": { - "enum": [ - "DEPLOYMENT_STATE_UNSPECIFIED", - "DEPLOYMENT_STATE_NOT_INSTALLED", - "DEPLOYMENT_STATE_INSTALLED", - "DEPLOYMENT_STATE_ERROR" - ], - "enumDescriptions": [ - "Deployment's state cannot be determined", - "Deployment is not installed", - "Deployment is installed", - "Deployment was attempted to be installed, but has errors" - ], - "type": "string" - }, - "description": "Map from deployment name to deployment state. Example deployments are gatekeeper-controller-manager, gatekeeper-audit deployment, and gatekeeper-mutation.", - "type": "object" + "policyControllerHubConfig": { + "$ref": "PolicyControllerHubConfig", + "description": "Policy Controller configuration for the cluster." }, "version": { - "$ref": "PolicyControllerPolicyControllerHubVersion", - "description": "The version of Gatekeeper Policy Controller deployed." + "description": "Version of Policy Controller installed.", + "type": "string" } }, "type": "object" }, - "PolicyControllerPolicyControllerHubVersion": { - "description": "The build version of Gatekeeper that Policy Controller is using.", - "id": "PolicyControllerPolicyControllerHubVersion", + "PolicyControllerMembershipState": { + "description": "**Policy Controller**: State for a single cluster.", + "id": "PolicyControllerMembershipState", "properties": { - "version": { - "description": "The gatekeeper image tag that is composed of ACM version, git tag, build number.", + "componentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "contentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the template library and any bundles included in the chosen version of the manifest", + "type": "object" + }, + "state": { + "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED" + ], + "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)." + ], "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", + "DECOMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED" + ], + "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)." + ], + "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" + } + }, + "type": "object" + }, "PolicyControllerTemplateLibraryConfig": { "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", @@ -3255,6 +3711,24 @@ }, "type": "object" }, + "ScopeFeatureSpec": { + "description": "ScopeFeatureSpec contains feature specs for a fleet scope.", + "id": "ScopeFeatureSpec", + "properties": {}, + "type": "object" + }, + "ScopeFeatureState": { + "description": "ScopeFeatureState contains Scope-wide Feature status information.", + "id": "ScopeFeatureState", + "properties": { + "state": { + "$ref": "FeatureState", + "description": "Output only. The \"running state\" of the Feature in this Scope.", + "readOnly": true + } + }, + "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", @@ -3354,6 +3828,44 @@ }, "type": "object" }, + "ServiceMeshDataPlaneManagement": { + "description": "Status of data plane management. Only reported per-member.", + "id": "ServiceMeshDataPlaneManagement", + "properties": { + "details": { + "description": "Explanation of the status.", + "items": { + "$ref": "ServiceMeshStatusDetails" + }, + "type": "array" + }, + "state": { + "description": "Lifecycle status of data plane management.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "DISABLED", + "FAILED_PRECONDITION", + "PROVISIONING", + "ACTIVE", + "STALLED", + "NEEDS_ATTENTION", + "DEGRADED" + ], + "enumDescriptions": [ + "Unspecified", + "DISABLED means that the component is not enabled.", + "FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", + "PROVISIONING means that provisioning is in progress.", + "ACTIVE means that the component is ready for use.", + "STALLED means that provisioning could not be done.", + "NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", + "DEGRADED means that the component is ready, but operating in a degraded state." + ], + "type": "string" + } + }, + "type": "object" + }, "ServiceMeshFeatureState": { "description": "**Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh Hub Controller.", "id": "ServiceMeshFeatureState", @@ -3386,6 +3898,36 @@ "User will manually configure the control plane (e.g. via CLI, or via the ControlPlaneRevision KRM API)" ], "type": "string" + }, + "defaultChannel": { + "description": "Determines which release channel to use for default injection and service mesh APIs.", + "enum": [ + "CHANNEL_UNSPECIFIED", + "RAPID", + "REGULAR", + "STABLE" + ], + "enumDescriptions": [ + "Unspecified", + "RAPID channel is offered on an early access basis for customers who want to test new releases.", + "REGULAR channel is intended for production users who want to take advantage of new features.", + "STABLE channel includes versions that are known to be stable and reliable in production." + ], + "type": "string" + }, + "management": { + "description": "Enables automatic Service Mesh management.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "MANAGEMENT_AUTOMATIC", + "MANAGEMENT_MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google should manage my Service Mesh for the cluster.", + "User will manually configure their service mesh components." + ], + "type": "string" } }, "type": "object" @@ -3402,10 +3944,19 @@ "readOnly": true, "type": "array" }, + "configApiVersion": { + "description": "The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.", + "type": "string" + }, "controlPlaneManagement": { "$ref": "ServiceMeshControlPlaneManagement", "description": "Output only. Status of control plane management", "readOnly": true + }, + "dataPlaneManagement": { + "$ref": "ServiceMeshDataPlaneManagement", + "description": "Output only. Status of data plane management.", + "readOnly": true } }, "type": "object" @@ -3446,7 +3997,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3488,7 +4039,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -3525,6 +4076,64 @@ } }, "type": "object" + }, + "ValidateCreateMembershipRequest": { + "description": "Request message for the `GkeHub.ValidateCreateMembership` method.", + "id": "ValidateCreateMembershipRequest", + "properties": { + "membership": { + "$ref": "Membership", + "description": "Required. Membership resource to be created." + }, + "membershipId": { + "description": "Required. Client chosen membership id.", + "type": "string" + } + }, + "type": "object" + }, + "ValidateCreateMembershipResponse": { + "description": "Response message for the `GkeHub.ValidateCreateMembership` method.", + "id": "ValidateCreateMembershipResponse", + "properties": { + "validationResults": { + "description": "Wraps all the validator results.", + "items": { + "$ref": "ValidationResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "ValidationResult": { + "description": "ValidationResults are results set by each validator running during ValidateCreateMembership.", + "id": "ValidationResult", + "properties": { + "result": { + "description": "Additional information for the validation.", + "type": "string" + }, + "success": { + "description": "Whether the validation is passed or not.", + "type": "boolean" + }, + "validator": { + "description": "Validator type to validate membership with.", + "enum": [ + "VALIDATOR_TYPE_UNSPECIFIED", + "MEMBERSHIP_ID", + "CROSS_PROJECT_PERMISSION" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/gkehub/v1alpha2/gkehub-api.json b/etc/api/gkehub/v1alpha2/gkehub-api.json index 730b2a8646..6eb6eb9066 100644 --- a/etc/api/gkehub/v1alpha2/gkehub-api.json +++ b/etc/api/gkehub/v1alpha2/gkehub-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -371,7 +371,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -476,7 +476,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -504,7 +504,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -652,11 +652,22 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "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", + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -738,7 +749,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -784,7 +795,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1145,6 +1156,10 @@ "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." @@ -1211,7 +1226,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", + "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", "type": "string" } }, @@ -1230,6 +1245,24 @@ "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 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", "type": "string" @@ -1387,7 +1420,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1402,7 +1435,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gkehub/v1beta/gkehub-api.json b/etc/api/gkehub/v1beta/gkehub-api.json index 3a13185209..288adf85b7 100644 --- a/etc/api/gkehub/v1beta/gkehub-api.json +++ b/etc/api/gkehub/v1beta/gkehub-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -293,7 +293,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -403,7 +403,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -431,7 +431,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/features/[^/]+$", "required": true, @@ -469,7 +469,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -494,7 +494,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -522,7 +522,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -670,20 +670,35 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { + "AnthosObservabilityFeatureSpec": { + "description": "**Anthos Observability**: Spec", + "id": "AnthosObservabilityFeatureSpec", + "properties": { + "defaultMembershipSpec": { + "$ref": "AnthosObservabilityMembershipSpec", + "description": "Default membership spec for unconfigured memberships" + } + }, + "type": "object" + }, "AnthosObservabilityMembershipSpec": { "description": "**Anthosobservability**: Per-Membership Feature spec.", "id": "AnthosObservabilityMembershipSpec", "properties": { "doNotOptimizeMetrics": { - "description": "use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics", + "description": "Use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics", "type": "boolean" }, "enableStackdriverOnApplications": { - "description": "enable collecting and reporting metrics and logs from user apps See go/onyx-application-metrics-logs-user-guide", + "description": "Enable collecting and reporting metrics and logs from user apps.", "type": "boolean" + }, + "version": { + "description": "the version of stackdriver operator used by this feature", + "type": "string" } }, "type": "object" @@ -706,7 +721,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -762,7 +777,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -785,10 +800,18 @@ "description": "CommonFeatureSpec contains Hub-wide configuration information", "id": "CommonFeatureSpec", "properties": { + "anthosobservability": { + "$ref": "AnthosObservabilityFeatureSpec", + "description": "Anthos Observability spec" + }, "appdevexperience": { "$ref": "AppDevExperienceFeatureSpec", "description": "Appdevexperience specific spec." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureSpec", + "description": "FleetObservability feature spec." + }, "multiclusteringress": { "$ref": "MultiClusterIngressFeatureSpec", "description": "Multicluster Ingress-specific spec." @@ -804,6 +827,10 @@ "$ref": "AppDevExperienceFeatureState", "description": "Appdevexperience specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityFeatureState", + "description": "FleetObservability feature state." + }, "state": { "$ref": "FeatureState", "description": "Output only. The \"running state\" of the Feature in this Hub.", @@ -865,6 +892,10 @@ "description": "Configuration for Config Sync", "id": "ConfigManagementConfigSync", "properties": { + "allowVerticalScale": { + "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.", "type": "boolean" @@ -873,12 +904,16 @@ "$ref": "ConfigManagementGitConfig", "description": "Git repo configuration for the cluster." }, + "oci": { + "$ref": "ConfigManagementOciConfig", + "description": "OCI repo configuration for the cluster" + }, "preventDrift": { "description": "Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.", "type": "boolean" }, "sourceFormat": { - "description": "Specifies whether the Config Sync Repo is in \u201chierarchical\u201d or \u201cunstructured\u201d mode.", + "description": "Specifies whether the Config Sync Repo is in \"hierarchical\" or \"unstructured\" mode.", "type": "string" } }, @@ -1115,6 +1150,22 @@ "Deployment was attempted to be installed, but has errors" ], "type": "string" + }, + "gatekeeperMutation": { + "description": "Status of the pod serving the mutation webhook.", + "enum": [ + "DEPLOYMENT_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLED", + "ERROR" + ], + "enumDescriptions": [ + "Deployment's state cannot be determined", + "Deployment is not installed", + "Deployment is installed", + "Deployment was attempted to be installed, but has errors" + ], + "type": "string" } }, "type": "object" @@ -1339,6 +1390,34 @@ }, "type": "object" }, + "ConfigManagementOciConfig": { + "description": "OCI repo configuration for a single cluster", + "id": "ConfigManagementOciConfig", + "properties": { + "gcpServiceAccountEmail": { + "description": "The GCP Service Account Email used for auth when secret_type is gcpServiceAccount.", + "type": "string" + }, + "policyDir": { + "description": "The absolute path of the directory that contains the local resources. Default: the root directory of the image.", + "type": "string" + }, + "secretType": { + "description": "Type of secret configured for access to the Git repo.", + "type": "string" + }, + "syncRepo": { + "description": "The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.", + "type": "string" + }, + "syncWaitSecs": { + "description": "Period in seconds between consecutive syncs. Default: 15.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ConfigManagementOperatorState": { "description": "State information for an ACM's Operator", "id": "ConfigManagementOperatorState", @@ -1397,6 +1476,14 @@ "description": "Logs all denies and dry run failures.", "type": "boolean" }, + "monitoring": { + "$ref": "ConfigManagementPolicyControllerMonitoring", + "description": "Monitoring specifies the configuration of monitoring." + }, + "mutationEnabled": { + "description": "Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.", + "type": "boolean" + }, "referentialRulesEnabled": { "description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", "type": "boolean" @@ -1408,6 +1495,30 @@ }, "type": "object" }, + "ConfigManagementPolicyControllerMonitoring": { + "description": "PolicyControllerMonitoring 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": "ConfigManagementPolicyControllerMonitoring", + "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" + }, "ConfigManagementPolicyControllerState": { "description": "State for PolicyControllerState.", "id": "ConfigManagementPolicyControllerState", @@ -1516,7 +1627,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1592,6 +1703,21 @@ "description": "Output only. State of the Feature resource itself.", "readOnly": true }, + "scopeSpecs": { + "additionalProperties": { + "$ref": "ScopeFeatureSpec" + }, + "description": "Optional. Scope-specific configuration for this Feature. If this Feature does not support any per-Scope configuration, this field may be unused. The keys indicate which Scope the configuration is for, 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. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Scope is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.", + "type": "object" + }, + "scopeStates": { + "additionalProperties": { + "$ref": "ScopeFeatureState" + }, + "description": "Output only. Scope-specific Feature status. If this Feature does report any per-Scope status, this field may be unused. The keys indicate which Scope the state is for, 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.", + "readOnly": true, + "type": "object" + }, "spec": { "$ref": "CommonFeatureSpec", "description": "Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused." @@ -1669,6 +1795,30 @@ }, "type": "object" }, + "FleetObservabilityFeatureSpec": { + "description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", + "id": "FleetObservabilityFeatureSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityFeatureState": { + "description": "**FleetObservability**: An empty state left as an example Hub-wide Feature state.", + "id": "FleetObservabilityFeatureState", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipSpec": { + "description": "**FleetObservability**: The membership-specific input for FleetObservability feature.", + "id": "FleetObservabilityMembershipSpec", + "properties": {}, + "type": "object" + }, + "FleetObservabilityMembershipState": { + "description": "**FleetObservability**: An empty state left as an example membership-specific Feature state.", + "id": "FleetObservabilityMembershipState", + "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", @@ -1700,6 +1850,14 @@ "description": "Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.", "id": "IdentityServiceAuthMethod", "properties": { + "azureadConfig": { + "$ref": "IdentityServiceAzureADConfig", + "description": "AzureAD specific Configuration." + }, + "googleConfig": { + "$ref": "IdentityServiceGoogleConfig", + "description": "GoogleConfig specific configuration" + }, "name": { "description": "Identifier for auth config.", "type": "string" @@ -1715,6 +1873,46 @@ }, "type": "object" }, + "IdentityServiceAzureADConfig": { + "description": "Configuration for the AzureAD Auth flow.", + "id": "IdentityServiceAzureADConfig", + "properties": { + "clientId": { + "description": "ID for the registered client application that makes authentication requests to the Azure AD identity provider.", + "type": "string" + }, + "clientSecret": { + "description": "Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.", + "type": "string" + }, + "encryptedClientSecret": { + "description": "Output only. Encrypted AzureAD client secret.", + "format": "byte", + "readOnly": true, + "type": "string" + }, + "kubectlRedirectUri": { + "description": "The redirect URL that kubectl uses for authorization.", + "type": "string" + }, + "tenant": { + "description": "Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.", + "type": "string" + } + }, + "type": "object" + }, + "IdentityServiceGoogleConfig": { + "description": "Configuration for the Google Plugin Auth flow.", + "id": "IdentityServiceGoogleConfig", + "properties": { + "disable": { + "description": "Disable automatic configuration of Google Plugin on supported platforms.", + "type": "boolean" + } + }, + "type": "object" + }, "IdentityServiceMembershipSpec": { "description": "**Anthos Identity Service**: Configuration for a single Membership.", "id": "IdentityServiceMembershipSpec", @@ -1775,13 +1973,17 @@ "type": "string" }, "clientSecret": { - "description": "Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", + "description": "Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", "type": "string" }, "deployCloudConsoleProxy": { "description": "Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.", "type": "boolean" }, + "enableAccessToken": { + "description": "Enable access token.", + "type": "boolean" + }, "encryptedClientSecret": { "description": "Output only. Encrypted OIDC Client secret", "format": "byte", @@ -1927,10 +2129,22 @@ "$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" + }, "identityservice": { "$ref": "IdentityServiceMembershipSpec", "description": "Identity Service-specific spec." }, + "mesh": { + "$ref": "ServiceMeshMembershipSpec", + "description": "Anthos Service Mesh-specific spec" + }, "policycontroller": { "$ref": "PolicyControllerMembershipSpec", "description": "Policy Controller spec." @@ -1950,18 +2164,26 @@ "$ref": "ConfigManagementMembershipState", "description": "Config Management-specific state." }, + "fleetobservability": { + "$ref": "FleetObservabilityMembershipState", + "description": "Fleet observability membership state." + }, "identityservice": { "$ref": "IdentityServiceMembershipState", "description": "Identity Service-specific state." }, "metering": { "$ref": "MeteringMembershipState", - "description": "Metering-specific spec." + "description": "Metering-specific state." }, "policycontroller": { "$ref": "PolicyControllerMembershipState", "description": "Policycontroller-specific state." }, + "servicemesh": { + "$ref": "ServiceMeshMembershipState", + "description": "Service Mesh-specific state." + }, "state": { "$ref": "FeatureState", "description": "The high-level state of this Feature for a single membership." @@ -2146,67 +2368,35 @@ }, "type": "object" }, - "PolicyControllerMembershipSpec": { - "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", - "id": "PolicyControllerMembershipSpec", + "PolicyControllerBundleInstallSpec": { + "description": "BundleInstallSpec is the specification configuration for a single managed bundle.", + "id": "PolicyControllerBundleInstallSpec", "properties": { - "policyControllerHubConfig": { - "$ref": "PolicyControllerPolicyControllerHubConfig", - "description": "Policy Controller configuration for the cluster." + "exemptedNamespaces": { + "description": "the set of namespaces to be exempted from the bundle", + "items": { + "type": "string" + }, + "type": "array" }, - "version": { - "description": "Version of Policy Controller installed.", - "type": "string" - } - }, - "type": "object" - }, - "PolicyControllerMembershipState": { - "description": "**Policy Controller**: State for a single cluster.", - "id": "PolicyControllerMembershipState", - "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 PC on the cluster manually prior to enabling the PC hub feature. Unique within a Policy Controller installation.", - "type": "string" - }, - "membershipSpec": { - "$ref": "PolicyControllerMembershipSpec", - "description": "Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state" - }, - "policyControllerHubState": { - "$ref": "PolicyControllerPolicyControllerHubState", - "description": "Policy Controller state observed by the Policy Controller Hub" - }, - "state": { - "description": "The lifecycle state Policy Controller is in.", + "management": { + "description": "Management specifies how the bundle will be managed by the controller.", "enum": [ - "LIFECYCLE_STATE_UNSPECIFIED", - "NOT_INSTALLED", - "INSTALLING", - "ACTIVE", - "UPDATING", - "DECOMISSIONING", - "CLUSTER_ERROR", - "HUB_ERROR" + "MANAGEMENT_UNSPECIFIED", + "INSTALLED" ], "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\u2019s 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 \u2018install\u2019).", - "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 \u2018take hands off\u2019 to avoid corrupting the PC or other data." + "No Management strategy has been specified.", + "The entity should be insistently reconciled by the Hub controller" ], "type": "string" } }, "type": "object" }, - "PolicyControllerPolicyControllerHubConfig": { + "PolicyControllerHubConfig": { "description": "Configuration for Policy Controller", - "id": "PolicyControllerPolicyControllerHubConfig", + "id": "PolicyControllerHubConfig", "properties": { "auditIntervalSeconds": { "description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", @@ -2226,13 +2416,13 @@ "INSTALL_SPEC_UNSPECIFIED", "INSTALL_SPEC_NOT_INSTALLED", "INSTALL_SPEC_ENABLED", - "INSTALL_SPEC_DISABLED" + "INSTALL_SPEC_SUSPENDED" ], "enumDescriptions": [ "Spec is unknown.", "Request to uninstall Policy Controller.", "Request to install and enable Policy Controller.", - "Request to disable Policy Controller. If Policy Controller is not installed, it will be installed but disabled." + "Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended." ], "type": "string" }, @@ -2240,6 +2430,18 @@ "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" @@ -2251,47 +2453,143 @@ }, "type": "object" }, - "PolicyControllerPolicyControllerHubState": { - "description": "State of the Policy Controller.", - "id": "PolicyControllerPolicyControllerHubState", + "PolicyControllerMembershipSpec": { + "description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", + "id": "PolicyControllerMembershipSpec", "properties": { - "deploymentStates": { - "additionalProperties": { - "enum": [ - "DEPLOYMENT_STATE_UNSPECIFIED", - "DEPLOYMENT_STATE_NOT_INSTALLED", - "DEPLOYMENT_STATE_INSTALLED", - "DEPLOYMENT_STATE_ERROR" - ], - "enumDescriptions": [ - "Deployment's state cannot be determined", - "Deployment is not installed", - "Deployment is installed", - "Deployment was attempted to be installed, but has errors" - ], - "type": "string" - }, - "description": "Map from deployment name to deployment state. Example deployments are gatekeeper-controller-manager, gatekeeper-audit deployment, and gatekeeper-mutation.", - "type": "object" + "policyControllerHubConfig": { + "$ref": "PolicyControllerHubConfig", + "description": "Policy Controller configuration for the cluster." }, "version": { - "$ref": "PolicyControllerPolicyControllerHubVersion", - "description": "The version of Gatekeeper Policy Controller deployed." + "description": "Version of Policy Controller installed.", + "type": "string" } }, "type": "object" }, - "PolicyControllerPolicyControllerHubVersion": { - "description": "The build version of Gatekeeper that Policy Controller is using.", - "id": "PolicyControllerPolicyControllerHubVersion", + "PolicyControllerMembershipState": { + "description": "**Policy Controller**: State for a single cluster.", + "id": "PolicyControllerMembershipState", "properties": { - "version": { - "description": "The gatekeeper image tag that is composed of ACM version, git tag, build number.", + "componentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", + "type": "object" + }, + "contentStates": { + "additionalProperties": { + "$ref": "PolicyControllerOnClusterState" + }, + "description": "The state of the template library and any bundles included in the chosen version of the manifest", + "type": "object" + }, + "state": { + "description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLING", + "ACTIVE", + "UPDATING", + "DECOMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED" + ], + "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)." + ], "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", + "DECOMISSIONING", + "CLUSTER_ERROR", + "HUB_ERROR", + "SUSPENDED" + ], + "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)." + ], + "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" + } + }, + "type": "object" + }, "PolicyControllerTemplateLibraryConfig": { "description": "The config specifying which default library templates to install.", "id": "PolicyControllerTemplateLibraryConfig", @@ -2303,13 +2601,174 @@ }, "type": "object" }, + "ScopeFeatureSpec": { + "description": "ScopeFeatureSpec contains feature specs for a fleet scope.", + "id": "ScopeFeatureSpec", + "properties": {}, + "type": "object" + }, + "ScopeFeatureState": { + "description": "ScopeFeatureState contains Scope-wide Feature status information.", + "id": "ScopeFeatureState", + "properties": { + "state": { + "$ref": "FeatureState", + "description": "Output only. The \"running state\" of the Feature in this Scope.", + "readOnly": true + } + }, + "type": "object" + }, + "ServiceMeshControlPlaneManagement": { + "description": "Status of control plane management.", + "id": "ServiceMeshControlPlaneManagement", + "properties": { + "details": { + "description": "Explanation of state.", + "items": { + "$ref": "ServiceMeshStatusDetails" + }, + "type": "array" + }, + "state": { + "description": "LifecycleState of control plane management.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "DISABLED", + "FAILED_PRECONDITION", + "PROVISIONING", + "ACTIVE", + "STALLED", + "NEEDS_ATTENTION", + "DEGRADED" + ], + "enumDescriptions": [ + "Unspecified", + "DISABLED means that the component is not enabled.", + "FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", + "PROVISIONING means that provisioning is in progress.", + "ACTIVE means that the component is ready for use.", + "STALLED means that provisioning could not be done.", + "NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", + "DEGRADED means that the component is ready, but operating in a degraded state." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshDataPlaneManagement": { + "description": "Status of data plane management. Only reported per-member.", + "id": "ServiceMeshDataPlaneManagement", + "properties": { + "details": { + "description": "Explanation of the status.", + "items": { + "$ref": "ServiceMeshStatusDetails" + }, + "type": "array" + }, + "state": { + "description": "Lifecycle status of data plane management.", + "enum": [ + "LIFECYCLE_STATE_UNSPECIFIED", + "DISABLED", + "FAILED_PRECONDITION", + "PROVISIONING", + "ACTIVE", + "STALLED", + "NEEDS_ATTENTION", + "DEGRADED" + ], + "enumDescriptions": [ + "Unspecified", + "DISABLED means that the component is not enabled.", + "FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", + "PROVISIONING means that provisioning is in progress.", + "ACTIVE means that the component is ready for use.", + "STALLED means that provisioning could not be done.", + "NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", + "DEGRADED means that the component is ready, but operating in a degraded state." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshMembershipSpec": { + "description": "**Service Mesh**: Spec for a single Membership for the servicemesh feature", + "id": "ServiceMeshMembershipSpec", + "properties": { + "controlPlane": { + "description": "Enables automatic control plane management.", + "enum": [ + "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", + "AUTOMATIC", + "MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google should provision a control plane revision and make it available in the cluster. Google will enroll this revision in a release channel and keep it up to date. The control plane revision may be a managed service, or a managed install.", + "User will manually configure the control plane (e.g. via CLI, or via the ControlPlaneRevision KRM API)" + ], + "type": "string" + }, + "management": { + "description": "Enables automatic Service Mesh management.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "MANAGEMENT_AUTOMATIC", + "MANAGEMENT_MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google should manage my Service Mesh for the cluster.", + "User will manually configure their service mesh components." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServiceMeshMembershipState": { + "description": "**Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller.", + "id": "ServiceMeshMembershipState", + "properties": { + "controlPlaneManagement": { + "$ref": "ServiceMeshControlPlaneManagement", + "description": "Output only. Status of control plane management", + "readOnly": true + }, + "dataPlaneManagement": { + "$ref": "ServiceMeshDataPlaneManagement", + "description": "Output only. Status of data plane management.", + "readOnly": true + } + }, + "type": "object" + }, + "ServiceMeshStatusDetails": { + "description": "Structured and human-readable details for a status.", + "id": "ServiceMeshStatusDetails", + "properties": { + "code": { + "description": "A machine-readable code that further describes a broad status.", + "type": "string" + }, + "details": { + "description": "Human-readable explanation of code.", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2351,7 +2810,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gkehub/v1beta1/gkehub-api.json b/etc/api/gkehub/v1beta1/gkehub-api.json index 64d2a55995..7a35b37331 100644 --- a/etc/api/gkehub/v1beta1/gkehub-api.json +++ b/etc/api/gkehub/v1beta1/gkehub-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -385,7 +385,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -495,7 +495,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -523,7 +523,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/memberships/[^/]+$", "required": true, @@ -706,11 +706,22 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { + "ApplianceCluster": { + "description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", + "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", + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -792,7 +803,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -838,7 +849,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1192,6 +1203,10 @@ "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." @@ -1267,7 +1282,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", + "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", "type": "string" } }, @@ -1286,6 +1301,24 @@ "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 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", "type": "string" @@ -1443,7 +1476,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1458,7 +1491,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/gkehub/v2alpha/gkehub-api.json b/etc/api/gkehub/v2alpha/gkehub-api.json index 36a4bfc21e..9ee416e226 100644 --- a/etc/api/gkehub/v2alpha/gkehub-api.json +++ b/etc/api/gkehub/v2alpha/gkehub-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -177,330 +177,6 @@ } }, "resources": { - "featureConfigs": { - "methods": { - "create": { - "description": "Creates FeatureConfig under a given parent.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/featureConfigs", - "httpMethod": "POST", - "id": "gkehub.projects.locations.featureConfigs.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "featureConfigId": { - "description": "The ID of the feature config to create.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The name of parent where the FeatureConfig will be created. Specified in the format `projects/{project}/locations/global/featureConfigs/{feature_type}/{feature_config}/`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Idempotent request UUID.", - "location": "query", - "type": "string" - } - }, - "path": "v2alpha/{+parent}/featureConfigs", - "request": { - "$ref": "FeatureConfig" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Removes a FeatureConfig.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/featureConfigs/{featureConfigsId}", - "httpMethod": "DELETE", - "id": "gkehub.projects.locations.featureConfigs.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the membershipFeature to be deleted. Specified in the format `projects/*/locations/*/featureConfigs/**`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/featureConfigs/.*$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Idempotent request UUID.", - "location": "query", - "type": "string" - } - }, - "path": "v2alpha/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "========= FeatureConfig Services ========= Gets details of a featureConfig.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/featureConfigs/{featureConfigsId}", - "httpMethod": "GET", - "id": "gkehub.projects.locations.featureConfigs.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The FeatureConfig resource name in the format `projects/*/locations/*/featureConfigs/**`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/featureConfigs/.*$", - "required": true, - "type": "string" - } - }, - "path": "v2alpha/{+name}", - "response": { - "$ref": "FeatureConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists all FeatureConfigs in a given project and location.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/featureConfigs", - "httpMethod": "GET", - "id": "gkehub.projects.locations.featureConfigs.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Lists FeatureConfigs that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "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": "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": "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 where the FeatureConfigs will be listed. In the format: `projects/*/locations/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2alpha/{+parent}/featureConfigs", - "response": { - "$ref": "ListFeatureConfigsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - }, - "memberships": { - "resources": { - "features": { - "methods": { - "create": { - "description": "Creates membershipFeature under a given parent.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/features", - "httpMethod": "POST", - "id": "gkehub.projects.locations.memberships.features.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "parent": { - "description": "Required. The name of parent where the MembershipFeature will be created. Specified in the format `projects/*/locations/*/memberships/*/features/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Idempotent request UUID.", - "location": "query", - "type": "string" - } - }, - "path": "v2alpha/{+parent}/features", - "request": { - "$ref": "MembershipFeature" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Removes a membershipFeature.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/features/{featuresId}", - "httpMethod": "DELETE", - "id": "gkehub.projects.locations.memberships.features.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the membershipFeature to be deleted. Specified in the format `projects/*/locations/*/memberships/*/features/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/features/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Idempotent request UUID.", - "location": "query", - "type": "string" - } - }, - "path": "v2alpha/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "get": { - "description": "========= MembershipFeature Services ========= Gets details of a membershipFeature.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/features/{featuresId}", - "httpMethod": "GET", - "id": "gkehub.projects.locations.memberships.features.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The MembershipFeature resource name in the format `projects/*/locations/*/memberships/*/features/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/features/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2alpha/{+name}", - "response": { - "$ref": "MembershipFeature" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "list": { - "description": "Lists MembershipFeatures in a given project and location.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/features", - "httpMethod": "GET", - "id": "gkehub.projects.locations.memberships.features.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "Lists MembershipFeatures that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name \"helloworld\" in project \"foo-proj\" and membership \"member-bar\": name = \"projects/foo-proj/locations/global/memberships/member-bar/features/helloworld\" - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "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": "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": "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 where the MembershipFeature will be listed. In the format: `projects/*/locations/*/memberships/*`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2alpha/{+parent}/features", - "response": { - "$ref": "ListMembershipFeaturesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Updates an existing MembershipFeature.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/features/{featuresId}", - "httpMethod": "PATCH", - "id": "gkehub.projects.locations.memberships.features.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/features/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Idempotent request UUID.", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. Mask of fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v2alpha/{+name}", - "request": { - "$ref": "MembershipFeature" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } - } - }, "operations": { "methods": { "cancel": { @@ -604,7 +280,7 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -614,124 +290,11 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, - "FeatureConfig": { - "description": "FeatureConfig contains configurations for a Fleet feature. FeatureConfig can be applied to MembershipFeature(s) to setup per-membership FeatureSpec.", - "id": "FeatureConfig", - "properties": { - "createTime": { - "description": "Output only. When the FeatureConfig resource was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "deleteTime": { - "description": "Output only. When the FeatureConfig resource was deleted.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "GCP labels for this FeatureConfig.", - "type": "object" - }, - "name": { - "description": "Output only. Resource name of this FeatureConfig, in the format: `projects/{project}/locations/global/FeatureConfigs/{feature_type}/{feature_config}`", - "readOnly": true, - "type": "string" - }, - "spec": { - "$ref": "FeatureSpec", - "description": "Input only. Immutable. User input of feature spec. Note that this field is immutable. Must create a new FeatureConfig if a new feature spec is needed." - }, - "state": { - "$ref": "FeatureConfigState", - "description": "Lifecycle information of the FeatureConfig." - }, - "uniqueId": { - "description": "Output only. Google-generated UUID for this resource. This is unique across all FeatureConfig 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 FeatureConfig resource was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "FeatureConfigRef": { - "description": "Information of the FeatureConfig applied on the MembershipFeature.", - "id": "FeatureConfigRef", - "properties": { - "config": { - "description": "Input only. Resource name of FeatureConfig, in the format: `projects/{project}/locations/global/featureConfigs/{feature_config}`.", - "type": "string" - }, - "configUpdateTime": { - "description": "Output only. When the FeatureConfig was last applied and copied to FeatureSpec.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "uuid": { - "description": "Output only. An id that uniquely identify a FeatureConfig object.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "FeatureConfigState": { - "description": "FeatureConfigState describes the state of a FeatureConfig resource.", - "id": "FeatureConfigState", - "properties": { - "state": { - "description": "Output only. The current state of the FeatureConfig resource.", - "enum": [ - "STATE_UNSPECIFIED", - "CREATING", - "ACTIVE", - "DELETING" - ], - "enumDescriptions": [ - "The code is not set.", - "The FeatureConfig is being created.", - "The FeatureConfig has been created.", - "The FeatureConfig is being deleted." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "FeatureSpec": { - "description": "FeatureSpec contains user input per-feature spec information.", - "id": "FeatureSpec", - "properties": {}, - "type": "object" - }, - "FeatureState": { - "description": "FeatureState contains high-level state information and per-feature state information for this MembershipFeature.", - "id": "FeatureState", - "properties": { - "state": { - "$ref": "State", - "description": "The high-level state of this MembershipFeature." - } - }, - "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", @@ -759,24 +322,6 @@ }, "type": "object" }, - "ListFeatureConfigsResponse": { - "description": "Response message for the `GkeHubFeature.ListFeatureConfigs` method.", - "id": "ListFeatureConfigsResponse", - "properties": { - "featureConfigs": { - "description": "The list of FeatureConfig(s).", - "items": { - "$ref": "FeatureConfig" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to request the next page of resources from the `ListFeatureConfigs` method. The value of an empty string means that there are no more resources to return.", - "type": "string" - } - }, - "type": "object" - }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -795,24 +340,6 @@ }, "type": "object" }, - "ListMembershipFeaturesResponse": { - "description": "Response message for the `GkeHubFeature.ListMembershipFeatures` method.", - "id": "ListMembershipFeaturesResponse", - "properties": { - "membershipFeatures": { - "description": "The list of matching MembershipFeatures.", - "items": { - "$ref": "MembershipFeature" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to request the next page of resources from the `ListMembershipFeatures` method. The value of an empty string means that there are no more resources to return.", - "type": "string" - } - }, - "type": "object" - }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -865,61 +392,6 @@ }, "type": "object" }, - "MembershipFeature": { - "description": "MembershipFeature represents the settings and status of a Fleet Feature enabled on a single Fleet Membership.", - "id": "MembershipFeature", - "properties": { - "createTime": { - "description": "Output only. When the MembershipFeature resource was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "deleteTime": { - "description": "Output only. When the MembershipFeature resource was deleted.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "featureConfigRef": { - "$ref": "FeatureConfigRef", - "description": "Reference information for a FeatureConfig applied on the MembershipFeature." - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "GCP labels for this MembershipFeature.", - "type": "object" - }, - "name": { - "description": "Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)", - "readOnly": true, - "type": "string" - }, - "resourceState": { - "$ref": "ResourceState", - "description": "Lifecycle information of the resource itself." - }, - "spec": { - "$ref": "FeatureSpec", - "description": "Output only. Spec of this membershipFeature.", - "readOnly": true - }, - "state": { - "$ref": "FeatureState", - "description": "Output only. State of the this membershipFeature.", - "readOnly": true - }, - "updateTime": { - "description": "Output only. When the MembershipFeature resource was last updated.", - "format": "google-datetime", - "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", @@ -954,110 +426,6 @@ } }, "type": "object" - }, - "OperationMetadata": { - "description": "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 successfully been cancelled 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" - }, - "ResourceState": { - "description": "ResourceState describes the state of a MembershipFeature *resource* in the GkeHub API. See `FeatureState` for the \"running state\" of the MembershipFeature.", - "id": "ResourceState", - "properties": { - "state": { - "description": "Output only. The current state of the Feature resource in the Hub API.", - "enum": [ - "STATE_UNSPECIFIED", - "ENABLING", - "ACTIVE", - "DISABLING", - "UPDATING", - "SERVICE_UPDATING" - ], - "enumDescriptions": [ - "State is unknown or not set.", - "The MembershipFeature is being enabled, and the MembershipFeature resource is being created. Once complete, the corresponding MembershipFeature will be enabled in this Hub.", - "The MembershipFeature is enabled in this Hub, and the MembershipFeature resource is fully available.", - "The MembershipFeature is being disabled in this Hub, and the MembershipFeature resource is being deleted.", - "The MembershipFeature resource is being updated.", - "The MembershipFeature resource is being updated by the Hub Service." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "State": { - "description": "High-level state of a MembershipFeature.", - "id": "State", - "properties": { - "code": { - "description": "The high-level, machine-readable status of this MembershipFeature.", - "enum": [ - "CODE_UNSPECIFIED", - "OK", - "WARNING", - "ERROR" - ], - "enumDescriptions": [ - "Unknown or not set.", - "The MembershipFeature is operating normally.", - "The MembershipFeature has encountered an issue, and is operating in a degraded state. The MembershipFeature may need intervention to return to normal operation. See the description and any associated MembershipFeature-specific details for more information.", - "The MembershipFeature is not operating or is in a severely degraded state. The MembershipFeature may need intervention to return to normal operation. See the description and any associated MembershipFeature-specific details for more information." - ], - "type": "string" - }, - "description": { - "description": "A human-readable description of the current status.", - "type": "string" - }, - "updateTime": { - "description": "The time this status and any related Feature-specific details were updated.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" } }, "servicePath": "", diff --git a/etc/api/gmail/v1/gmail-api.json b/etc/api/gmail/v1/gmail-api.json index 196397957c..5e1a90011a 100644 --- a/etc/api/gmail/v1/gmail-api.json +++ b/etc/api/gmail/v1/gmail-api.json @@ -1633,6 +1633,401 @@ } }, "resources": { + "cse": { + "resources": { + "identities": { + "methods": { + "create": { + "description": "Creates and configures a client-side encryption identity that's authorized to send mail from the user account. Google publishes the S/MIME certificate to a shared domain-wide directory so that people within a Google Workspace organization can encrypt and send mail to the identity.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", + "httpMethod": "POST", + "id": "gmail.users.settings.cse.identities.create", + "parameterOrder": [ + "userId" + ], + "parameters": { + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/identities", + "request": { + "$ref": "CseIdentity" + }, + "response": { + "$ref": "CseIdentity" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "delete": { + "description": "Deletes a client-side encryption identity. The authenticated user can no longer use the identity to send encrypted messages. You cannot restore the identity after you delete it. Instead, use the CreateCseIdentity method to create another identity with the same configuration.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", + "httpMethod": "DELETE", + "id": "gmail.users.settings.cse.identities.delete", + "parameterOrder": [ + "userId", + "cseEmailAddress" + ], + "parameters": { + "cseEmailAddress": { + "description": "The primary email address associated with the client-side encryption identity configuration that's removed.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "get": { + "description": "Retrieves a client-side encryption identity configuration.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", + "httpMethod": "GET", + "id": "gmail.users.settings.cse.identities.get", + "parameterOrder": [ + "userId", + "cseEmailAddress" + ], + "parameters": { + "cseEmailAddress": { + "description": "The primary email address associated with the client-side encryption identity configuration that's retrieved.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/identities/{cseEmailAddress}", + "response": { + "$ref": "CseIdentity" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly", + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "list": { + "description": "Lists the client-side encrypted identities for an authenticated user.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/identities", + "httpMethod": "GET", + "id": "gmail.users.settings.cse.identities.list", + "parameterOrder": [ + "userId" + ], + "parameters": { + "pageSize": { + "default": "20", + "description": "The number of identities to return. If not provided, the page size will default to 20 entries.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Pagination token indicating which page of identities to return. If the token is not supplied, then the API will return the first page of results.", + "location": "query", + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/identities", + "response": { + "$ref": "ListCseIdentitiesResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly", + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "patch": { + "description": "Associates a different key pair with an existing client-side encryption identity. The updated key pair must validate against Google's [S/MIME certificate profiles](https://support.google.com/a/answer/7300887).", + "flatPath": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", + "httpMethod": "PATCH", + "id": "gmail.users.settings.cse.identities.patch", + "parameterOrder": [ + "userId", + "emailAddress" + ], + "parameters": { + "emailAddress": { + "description": "The email address of the client-side encryption identity to update.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/identities/{emailAddress}", + "request": { + "$ref": "CseIdentity" + }, + "response": { + "$ref": "CseIdentity" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + } + } + }, + "keypairs": { + "methods": { + "create": { + "description": "Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", + "httpMethod": "POST", + "id": "gmail.users.settings.cse.keypairs.create", + "parameterOrder": [ + "userId" + ], + "parameters": { + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs", + "request": { + "$ref": "CseKeyPair" + }, + "response": { + "$ref": "CseKeyPair" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "disable": { + "description": "Turns off a client-side encryption key pair. The authenticated user can no longer use the key pair to decrypt incoming CSE message texts or sign outgoing CSE mail. To regain access, use the EnableCseKeyPair to turn on the key pair. After 30 days, you can permanently delete the key pair by using the ObliterateCseKeyPair method.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", + "httpMethod": "POST", + "id": "gmail.users.settings.cse.keypairs.disable", + "parameterOrder": [ + "userId", + "keyPairId" + ], + "parameters": { + "keyPairId": { + "description": "The identifier of the key pair to turn off.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:disable", + "request": { + "$ref": "DisableCseKeyPairRequest" + }, + "response": { + "$ref": "CseKeyPair" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "enable": { + "description": "Turns on a client-side encryption key pair that was turned off. The key pair becomes active again for any associated client-side encryption identities.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", + "httpMethod": "POST", + "id": "gmail.users.settings.cse.keypairs.enable", + "parameterOrder": [ + "userId", + "keyPairId" + ], + "parameters": { + "keyPairId": { + "description": "The identifier of the key pair to turn on.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:enable", + "request": { + "$ref": "EnableCseKeyPairRequest" + }, + "response": { + "$ref": "CseKeyPair" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "get": { + "description": "Retrieves an existing client-side encryption key pair.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", + "httpMethod": "GET", + "id": "gmail.users.settings.cse.keypairs.get", + "parameterOrder": [ + "userId", + "keyPairId" + ], + "parameters": { + "keyPairId": { + "description": "The identifier of the key pair to retrieve.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}", + "response": { + "$ref": "CseKeyPair" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly", + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "list": { + "description": "Lists client-side encryption key pairs for an authenticated user.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs", + "httpMethod": "GET", + "id": "gmail.users.settings.cse.keypairs.list", + "parameterOrder": [ + "userId" + ], + "parameters": { + "pageSize": { + "default": "20", + "description": "The number of key pairs to return. If not provided, the page size will default to 20 entries.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Pagination token indicating which page of key pairs to return. If the token is not supplied, then the API will return the first page of results.", + "location": "query", + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs", + "response": { + "$ref": "ListCseKeyPairsResponse" + }, + "scopes": [ + "https://mail.google.com/", + "https://www.googleapis.com/auth/gmail.modify", + "https://www.googleapis.com/auth/gmail.readonly", + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + }, + "obliterate": { + "description": "Deletes a client-side encryption key pair permanently and immediately. You can only permanently delete key pairs that have been turned off for more than 30 days. To turn off a key pair, use the DisableCseKeyPair method. Gmail can't restore or decrypt any messages that were encrypted by an obliterated key. Authenticated users and Google Workspace administrators lose access to reading the encrypted messages.", + "flatPath": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", + "httpMethod": "POST", + "id": "gmail.users.settings.cse.keypairs.obliterate", + "parameterOrder": [ + "userId", + "keyPairId" + ], + "parameters": { + "keyPairId": { + "description": "The identifier of the key pair to obliterate.", + "location": "path", + "required": true, + "type": "string" + }, + "userId": { + "default": "me", + "description": "The requester's primary email address. To indicate the authenticated user, you can use the special value `me`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "gmail/v1/users/{userId}/settings/cse/keypairs/{keyPairId}:obliterate", + "request": { + "$ref": "ObliterateCseKeyPairRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/gmail.settings.basic", + "https://www.googleapis.com/auth/gmail.settings.sharing" + ] + } + } + } + } + }, "delegates": { "methods": { "create": { @@ -1788,7 +2183,7 @@ ] }, "delete": { - "description": "Deletes a filter.", + "description": "Immediately and permanently deletes the specified filter.", "flatPath": "gmail/v1/users/{userId}/settings/filters/{id}", "httpMethod": "DELETE", "id": "gmail.users.settings.filters.delete", @@ -2430,7 +2825,7 @@ "threads": { "methods": { "delete": { - "description": "Immediately and permanently deletes the specified thread. This operation cannot be undone. Prefer `threads.trash` instead.", + "description": "Immediately and permanently deletes the specified thread. Any messages that belong to the thread are also deleted. This operation cannot be undone. Prefer `threads.trash` instead.", "flatPath": "gmail/v1/users/{userId}/threads/{id}", "httpMethod": "DELETE", "id": "gmail.users.threads.delete", @@ -2612,7 +3007,7 @@ ] }, "trash": { - "description": "Moves the specified thread to the trash.", + "description": "Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash.", "flatPath": "gmail/v1/users/{userId}/threads/{id}/trash", "httpMethod": "POST", "id": "gmail.users.threads.trash", @@ -2645,7 +3040,7 @@ ] }, "untrash": { - "description": "Removes the specified thread from the trash.", + "description": "Removes the specified thread from the trash. Any messages that belong to the thread are also removed from the trash.", "flatPath": "gmail/v1/users/{userId}/threads/{id}/untrash", "httpMethod": "POST", "id": "gmail.users.threads.untrash", @@ -2682,7 +3077,7 @@ } } }, - "revision": "20220228", + "revision": "20230116", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { @@ -2758,6 +3153,94 @@ }, "type": "object" }, + "CseIdentity": { + "description": "The client-side encryption (CSE) configuration for the email address of an authenticated user. Gmail uses CSE configurations to save drafts of client-side encrypted email messages, and to sign and send encrypted email messages.", + "id": "CseIdentity", + "properties": { + "emailAddress": { + "description": "The email address for the sending identity. The email address must be the primary email address of the authenticated user.", + "type": "string" + }, + "primaryKeyPairId": { + "description": "If a key pair is associated, the identifier of the key pair, CseKeyPair.", + "type": "string" + } + }, + "type": "object" + }, + "CseKeyPair": { + "description": "A client-side encryption S/MIME key pair, which is comprised of a public key, its certificate chain, and metadata for its paired private key. Gmail uses the key pair to complete the following tasks: - Sign outgoing client-side encrypted messages. - Save and reopen drafts of client-side encrypted messages. - Save and reopen sent messages. - Decrypt incoming or archived S/MIME messages.", + "id": "CseKeyPair", + "properties": { + "disableTime": { + "description": "Output only. If a key pair is set to `DISABLED`, the time that the key pair's state changed from `ENABLED` to `DISABLED`. This field is present only when the key pair is in state `DISABLED`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "enablementState": { + "description": "Output only. The current state of the key pair.", + "enum": [ + "stateUnspecified", + "enabled", + "disabled" + ], + "enumDescriptions": [ + "The current state of the key pair is not set. The key pair is neither turned on nor turned off.", + "The key pair is turned on. For any email messages that this key pair encrypts, Gmail decrypts the messages and signs any outgoing mail with the private key. To turn on a key pair, use the EnableCseKeyPair method.", + "The key pair is turned off. Authenticated users cannot decrypt email messages nor sign outgoing messages. If a key pair is turned off for more than 30 days, you can permanently delete it. To turn off a key pair, use the DisableCseKeyPair method." + ], + "readOnly": true, + "type": "string" + }, + "keyPairId": { + "description": "Output only. The immutable ID for the client-side encryption S/MIME key pair.", + "readOnly": true, + "type": "string" + }, + "pem": { + "description": "Output only. The public key and its certificate chain, in [PEM](https://en.wikipedia.org/wiki/Privacy-Enhanced_Mail) format.", + "readOnly": true, + "type": "string" + }, + "pkcs7": { + "description": "Input only. The public key and its certificate chain. The chain must be in [PKCS#7](https://en.wikipedia.org/wiki/PKCS_7) format and use PEM encoding and ASCII armor.", + "type": "string" + }, + "privateKeyMetadata": { + "description": "Metadata for instances of this key pair's private key.", + "items": { + "$ref": "CsePrivateKeyMetadata" + }, + "type": "array" + }, + "subjectEmailAddresses": { + "description": "Output only. The email address identities that are specified on the leaf certificate.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "CsePrivateKeyMetadata": { + "description": "Metadata for a private key instance.", + "id": "CsePrivateKeyMetadata", + "properties": { + "kaclsKeyMetadata": { + "$ref": "KaclsKeyMetadata", + "description": "Metadata for a private key instance managed by an external key access control list service." + }, + "privateKeyMetadataId": { + "description": "Output only. The immutable ID for the private key metadata instance.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Delegate": { "description": "Settings for a delegate. Delegates can read, send, and delete messages, as well as view and add contacts, for the delegator's account. See \"Set up mail delegation\" for more information about delegates.", "id": "Delegate", @@ -2787,6 +3270,12 @@ }, "type": "object" }, + "DisableCseKeyPairRequest": { + "description": "Requests to turn off a client-side encryption key pair.", + "id": "DisableCseKeyPairRequest", + "properties": {}, + "type": "object" + }, "Draft": { "description": "A draft email in the user's mailbox.", "id": "Draft", @@ -2807,6 +3296,12 @@ }, "type": "object" }, + "EnableCseKeyPairRequest": { + "description": "Requests to turn on a client-side encryption key pair.", + "id": "EnableCseKeyPairRequest", + "properties": {}, + "type": "object" + }, "Filter": { "description": "Resource definition for Gmail filters. Filters apply to specific messages instead of an entire email thread.", "id": "Filter", @@ -3063,6 +3558,21 @@ }, "type": "object" }, + "KaclsKeyMetadata": { + "description": "Metadata for private keys managed by an external key access control list service. For details about managing key access, see [Google Workspace CSE API Reference](https://developers.google.com/workspace/cse/reference).", + "id": "KaclsKeyMetadata", + "properties": { + "kaclsData": { + "description": "Opaque data generated and used by the key access control list service. Maximum size: 8 KiB.", + "type": "string" + }, + "kaclsUri": { + "description": "The URI of the key access control list service that manages the private key.", + "type": "string" + } + }, + "type": "object" + }, "Label": { "description": "Labels are used to categorize messages and threads within the user's mailbox. The maximum number of labels supported for a user's mailbox is 10,000.", "id": "Label", @@ -3188,6 +3698,40 @@ }, "type": "object" }, + "ListCseIdentitiesResponse": { + "id": "ListCseIdentitiesResponse", + "properties": { + "cseIdentities": { + "description": "One page of the list of CSE identities configured for the user.", + "items": { + "$ref": "CseIdentity" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token to be passed to a subsequent ListCseIdentities call in order to retrieve the next page of identities. If this value is not returned or is the empty string, then no further pages remain.", + "type": "string" + } + }, + "type": "object" + }, + "ListCseKeyPairsResponse": { + "id": "ListCseKeyPairsResponse", + "properties": { + "cseKeyPairs": { + "description": "One page of the list of CSE key pairs installed for the user.", + "items": { + "$ref": "CseKeyPair" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token to be passed to a subsequent ListCseKeyPairs call in order to retrieve the next page of key pairs. If this value is not returned, then no further pages remain.", + "type": "string" + } + }, + "type": "object" + }, "ListDelegatesResponse": { "description": "Response for the ListDelegates method.", "id": "ListDelegatesResponse", @@ -3492,14 +4036,14 @@ "id": "ModifyMessageRequest", "properties": { "addLabelIds": { - "description": "A list of IDs of labels to add to this message.", + "description": "A list of IDs of labels to add to this message. You can add up to 100 labels with each update.", "items": { "type": "string" }, "type": "array" }, "removeLabelIds": { - "description": "A list IDs of labels to remove from this message.", + "description": "A list IDs of labels to remove from this message. You can remove up to 100 labels with each update.", "items": { "type": "string" }, @@ -3512,14 +4056,14 @@ "id": "ModifyThreadRequest", "properties": { "addLabelIds": { - "description": "A list of IDs of labels to add to this thread.", + "description": "A list of IDs of labels to add to this thread. You can add up to 100 labels with each update.", "items": { "type": "string" }, "type": "array" }, "removeLabelIds": { - "description": "A list of IDs of labels to remove from this thread.", + "description": "A list of IDs of labels to remove from this thread. You can remove up to 100 labels with each update.", "items": { "type": "string" }, @@ -3528,6 +4072,12 @@ }, "type": "object" }, + "ObliterateCseKeyPairRequest": { + "description": "Request to obliterate a CSE key pair.", + "id": "ObliterateCseKeyPairRequest", + "properties": {}, + "type": "object" + }, "PopSettings": { "description": "POP settings for an account.", "id": "PopSettings", diff --git a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json index f072122d5b..91be8b5f30 100644 --- a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json index 910c121ae9..6143582d80 100644 --- a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/etc/api/groupsmigration/v1/groupsmigration-api.json b/etc/api/groupsmigration/v1/groupsmigration-api.json index 2f3653d9b0..c270888699 100644 --- a/etc/api/groupsmigration/v1/groupsmigration-api.json +++ b/etc/api/groupsmigration/v1/groupsmigration-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20220226", + "revision": "20230117", "rootUrl": "https://groupsmigration.googleapis.com/", "schemas": { "Groups": { diff --git a/etc/api/groupssettings/v1/groupssettings-api.json b/etc/api/groupssettings/v1/groupssettings-api.json index 3ae0e641c6..afd5b98972 100644 --- a/etc/api/groupssettings/v1/groupssettings-api.json +++ b/etc/api/groupssettings/v1/groupssettings-api.json @@ -152,7 +152,7 @@ } } }, - "revision": "20220224", + "revision": "20220614", "rootUrl": "https://www.googleapis.com/", "schemas": { "Groups": { diff --git a/etc/api/healthcare/v1/healthcare-api.json b/etc/api/healthcare/v1/healthcare-api.json index b55a7d3697..c374af22ca 100644 --- a/etc/api/healthcare/v1/healthcare-api.json +++ b/etc/api/healthcare/v1/healthcare-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -306,7 +306,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -401,7 +401,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -429,7 +429,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -606,7 +606,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -734,7 +734,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -762,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -1597,7 +1597,7 @@ ] }, "deidentify": { - "description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyDicomStoreSummary. If errors occur, error is set. The LRO result may still be successful if de-identification fails for some DICOM instances. The output DICOM store will not contain these failed resources. Failed resource totals are tracked in Operation.metadata. Error details are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](/healthcare/docs/how-tos/logging)).", + "description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyDicomStoreSummary. If errors occur, error is set. The LRO result may still be successful if de-identification fails for some DICOM instances. The output DICOM store will not contain these failed resources. Failed resource totals are tracked in Operation.metadata. Error details are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:deidentify", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.dicomStores.deidentify", @@ -1718,7 +1718,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1945,7 +1945,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2009,7 +2009,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2740,7 +2740,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2868,7 +2868,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2896,7 +2896,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2919,7 +2919,7 @@ "fhir": { "methods": { "Patient-everything": { - "description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](http://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](http://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. 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 resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](http://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](http://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources).", + "description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](http://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](http://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. 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 resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](http://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](http://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$everything", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-everything", @@ -2949,7 +2949,7 @@ "type": "string" }, "end": { - "description": "The response includes records prior to the end date. If no end date is provided, all records subsequent to the start date are in scope.", + "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.", "location": "query", "type": "string" }, @@ -2961,7 +2961,7 @@ "type": "string" }, "start": { - "description": "The response includes records subsequent to the start date. If no start date is provided, all records prior to the end date are in scope.", + "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.", "location": "query", "type": "string" } @@ -2975,7 +2975,7 @@ ] }, "Resource-purge": { - "description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource).", + "description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/$purge", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-purge", @@ -3017,7 +3017,7 @@ "type": "string" }, "profile": { - "description": "A profile that this resource should be validated against.", + "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.", "location": "query", "type": "string" }, @@ -3066,7 +3066,7 @@ ] }, "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](/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource).", + "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).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", @@ -3102,7 +3102,7 @@ ] }, "delete": { - "description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources will be 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 `delete`, see [Deleting a FHIR resource](/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource).", + "description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources will be 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 `delete`, see [Deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.delete", @@ -3127,7 +3127,7 @@ ] }, "executeBundle": { - "description": "Executes all the requests in the given Bundle. Implements the FHIR standard batch/transaction interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#transaction), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#transaction), [R4](http://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](http://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.1), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.1), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#brules)) and transaction processing rules ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.2), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.2), [R4](http://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 will contain 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 will 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 `executeBundle`, see [Managing FHIR resources using FHIR bundles](/healthcare/docs/how-tos/fhir-bundles).", + "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).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.executeBundle", @@ -3155,7 +3155,7 @@ ] }, "history": { - "description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. 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 `history`, see [Listing FHIR resource versions](/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions).", + "description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. 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 `history`, see [Listing FHIR resource versions](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.history", @@ -3201,7 +3201,7 @@ ] }, "patch": { - "description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. 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 `patch`, see [Patching a FHIR resource](/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource).", + "description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. 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 `patch`, see [Patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PATCH", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.patch", @@ -3229,7 +3229,7 @@ ] }, "read": { - "description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. 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 `read`, see [Getting a FHIR resource](/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource).", + "description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. 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 `read`, see [Getting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.read", @@ -3254,7 +3254,7 @@ ] }, "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`. 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](/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](/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. 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).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", @@ -3282,7 +3282,7 @@ ] }, "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`. 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](/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](/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. 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).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", @@ -3317,7 +3317,7 @@ ] }, "update": { - "description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist 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. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. 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 `update`, see [Updating a FHIR resource](/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource).", + "description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist 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. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. 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 `update`, see [Updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PUT", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update", @@ -3345,7 +3345,7 @@ ] }, "vread": { - "description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. 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 `vread`, see [Retrieving a FHIR resource version](/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version).", + "description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. 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 `vread`, see [Retrieving a FHIR resource version](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version).", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history/{_historyId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.vread", @@ -3502,7 +3502,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3596,7 +3596,7 @@ ], "parameters": { "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "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, @@ -3630,7 +3630,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3658,7 +3658,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3884,7 +3884,7 @@ ], "parameters": { "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "required": true, @@ -4053,7 +4053,7 @@ } } }, - "revision": "20220223", + "revision": "20221220", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "ActivateConsentRequest": { @@ -4211,7 +4211,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -4267,7 +4267,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -4552,9 +4552,13 @@ "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 wherever crypto_key is not specified.", + "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." } }, "type": "object" @@ -4579,9 +4583,28 @@ "id": "DateShiftConfig", "properties": { "cryptoKey": { - "description": "An AES 128/192/256 bit key. Causes the shift to be computed based on this key and the patient ID. A default key is generated for each Deidentify operation and is used wherever crypto_key is not specified.", + "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." + } + }, + "type": "object" + }, + "DeidentifiedStoreDestination": { + "description": "Contains configuration for streaming de-identified FHIR export.", + "id": "DeidentifiedStoreDestination", + "properties": { + "config": { + "$ref": "DeidentifyConfig", + "description": "The configuration to use when de-identifying resources that are added to this store." + }, + "store": { + "description": "The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "type": "string" } }, "type": "object" @@ -4615,11 +4638,15 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", "type": "string" + }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" } }, "type": "object" @@ -4630,7 +4657,7 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", @@ -4639,6 +4666,10 @@ "filterConfig": { "$ref": "DicomFilterConfig", "description": "Filter configuration." + }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" } }, "type": "object" @@ -4649,15 +4680,23 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", "type": "string" }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" + }, "resourceFilter": { "$ref": "FhirFilter", "description": "A filter specifying the resources to include in the output. If not specified, all resources are included in the output." + }, + "skipModifiedResources": { + "description": "If true, skips resources that are created or modified after the de-identify operation is created.", + "type": "boolean" } }, "type": "object" @@ -4739,7 +4778,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -4780,7 +4819,7 @@ "type": "number" }, "linkedEntities": { - "description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.it", + "description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.", "items": { "$ref": "LinkedEntity" }, @@ -4950,6 +4989,14 @@ "description": "Request to export resources.", "id": "ExportResourcesRequest", "properties": { + "_since": { + "description": "If provided, only resources updated after this time are exported. 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.", + "type": "string" + }, + "_type": { + "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are exported.", + "type": "string" + }, "bigqueryDestination": { "$ref": "GoogleCloudHealthcareV1FhirBigQueryDestination", "description": "The BigQuery output destination. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`. The output is one BigQuery table per resource type. Unlike when setting `BigQueryDestination` for `StreamConfig`, `ExportResources` does not create BigQuery views." @@ -5039,6 +5086,20 @@ "description": "Represents a FHIR store.", "id": "FhirStore", "properties": { + "complexDataTypeReferenceParsing": { + "description": "Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.", + "enum": [ + "COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "No parsing behavior specified. This is the same as DISABLED for backwards compatibility.", + "References in complex data types are ignored.", + "References in complex data types are parsed." + ], + "type": "string" + }, "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" @@ -5277,8 +5338,8 @@ "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination table is empty.", - "Erase all existing data in a table before writing the instances.", - "Append data to the existing table." + "Erase all existing data in the destination table before writing the instances.", + "Append data to the destination table." ], "type": "string" } @@ -5338,8 +5399,8 @@ "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination tables are empty.", - "Erase all existing data in the tables before writing the instances.", - "Append data to the existing tables." + "Erase all existing data in the destination tables before writing the FHIR resources.", + "Append data to the destination tables." ], "type": "string" } @@ -5450,7 +5511,7 @@ "type": "object" }, "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "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": { @@ -5529,7 +5590,7 @@ "enumDescriptions": [ "No text redaction specified. Same as REDACT_NO_TEXT.", "Redact all text.", - "Redact sensitive text.", + "Redact sensitive text. Uses the set of [Default DICOM InfoTypes](https://cloud.google.com/healthcare-api/docs/how-tos/dicom-deidentify#default_dicom_infotypes).", "Do not redact text." ], "type": "string" @@ -5667,6 +5728,22 @@ }, "type": "object" }, + "KmsWrappedCryptoKey": { + "description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key).", + "id": "KmsWrappedCryptoKey", + "properties": { + "cryptoKey": { + "description": "Required. The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`.", + "type": "string" + }, + "wrappedKey": { + "description": "Required. The wrapped data crypto key.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "LinkedEntity": { "description": "EntityMentions can be linked to multiple entities using a LinkedEntity message lets us add other fields, e.g. confidence.", "id": "LinkedEntity", @@ -5967,7 +6044,7 @@ "type": "string" }, "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "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.", "type": "string" }, "parsedData": { @@ -6111,12 +6188,14 @@ "enum": [ "PARSER_VERSION_UNSPECIFIED", "V1", - "V2" + "V2", + "V3" ], "enumDescriptions": [ "Unspecified parser version, equivalent to V1.", "The `parsed_data` includes every given non-empty message field except the Field Separator (MSH-1) field. As a result, the parsed MSH segment starts with the MSH-2 field and the field numbers are off-by-one with respect to the HL7 standard.", - "The `parsed_data` includes every given non-empty message field." + "The `parsed_data` includes every given non-empty message field.", + "This version is the same as V2, with the following change. The `parsed_data` contains unescaped escaped field separators, component separators, sub-component separators, repetition separators, escape characters, and truncation characters. If `schema` is specified, the schematized parser uses improved parsing heuristics compared to previous versions." ], "type": "string" } @@ -6313,11 +6392,13 @@ "description": "Specifies the output schema type. Schema type is required.", "enum": [ "SCHEMA_TYPE_UNSPECIFIED", - "ANALYTICS" + "ANALYTICS", + "ANALYTICS_V2" ], "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 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." ], "type": "string" } @@ -6486,7 +6567,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -6558,6 +6639,10 @@ "$ref": "GoogleCloudHealthcareV1FhirBigQueryDestination", "description": "The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types. For example, \"Patient\", \"Observation\". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data is not streamed. 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. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." }, + "deidentifiedStoreDestination": { + "$ref": "DeidentifiedStoreDestination", + "description": "The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, 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 have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." + }, "resourceTypes": { "description": "Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store.", "items": { @@ -6587,7 +6672,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/healthcare/v1beta1/healthcare-api.json b/etc/api/healthcare/v1beta1/healthcare-api.json index 4b76264e7b..ae65a3d8b4 100644 --- a/etc/api/healthcare/v1beta1/healthcare-api.json +++ b/etc/api/healthcare/v1beta1/healthcare-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -306,7 +306,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -401,7 +401,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -429,7 +429,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -606,7 +606,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/annotationStores/[^/]+$", "required": true, @@ -734,7 +734,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/annotationStores/[^/]+$", "required": true, @@ -762,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/annotationStores/[^/]+$", "required": true, @@ -1113,7 +1113,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -1241,7 +1241,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -1269,7 +1269,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/consentStores/[^/]+$", "required": true, @@ -2225,7 +2225,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2452,7 +2452,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2516,7 +2516,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/dicomStores/[^/]+$", "required": true, @@ -3275,7 +3275,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3403,7 +3403,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3431,7 +3431,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3574,7 +3574,7 @@ ] }, "Patient-everything": { - "description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](https://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](https://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. 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 resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](https://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](https://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources).", + "description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](https://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](https://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. 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 resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](https://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](https://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$everything", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-everything", @@ -3604,7 +3604,7 @@ "type": "string" }, "end": { - "description": "The response includes records prior to the end date. If no end date is provided, all records subsequent to the start date are in scope.", + "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.", "location": "query", "type": "string" }, @@ -3616,7 +3616,7 @@ "type": "string" }, "start": { - "description": "The response includes records subsequent to the start date. If no start date is provided, all records prior to the end date are in scope.", + "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.", "location": "query", "type": "string" } @@ -3630,7 +3630,7 @@ ] }, "Resource-purge": { - "description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource).", + "description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/$purge", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-purge", @@ -3672,7 +3672,7 @@ "type": "string" }, "profile": { - "description": "A profile that this resource should be validated against.", + "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.", "location": "query", "type": "string" }, @@ -3721,7 +3721,7 @@ ] }, "conditionalDelete": { - "description": "Deletes FHIR resources that match a search query. Implements the FHIR standard conditional delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.12.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.13.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#3.1.0.7.1)). If multiple resources match, all matching resources are deleted. Search terms are provided as query parameters following the same pattern as the search method. Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.delete` permissions on the parent FHIR store. For samples that show how to call `conditionalDelete`, see [Conditionally deleting a FHIR resource](/healthcare/docs/how-tos/fhir-resources#conditionally_deleting_a_fhir_resource).", + "description": "Deletes FHIR resources that match a search query. Implements the FHIR standard conditional delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.12.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.13.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#3.1.0.7.1)). If multiple resources match, all matching resources are deleted. Search terms are provided as query parameters following the same pattern as the search method. Not all FHIR resources that match the search query might be deleted because, by default, a maximum of 100 FHIR resources can be deleted. The number of FHIR resources that can be deleted depends on the page size of the returned resources, which you can control using the `_count` query parameter. Even when using `_count`, you can delete a maximum 1,000 FHIR resources per each call of `conditionalDelete`. Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.delete` permissions on the parent FHIR store. 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": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalDelete", @@ -3754,7 +3754,7 @@ ] }, "conditionalPatch": { - "description": "If a resource is found based on the search criteria 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 ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a conditional patch method, but the server supports it in the same way it supports STU3. Search terms are provided as query parameters following the same pattern as the search method. 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. This method requires the`healthcare.fhirStores.searchResources` permission on the parent FHIR store and the `healthcare.fhirResources.patch` permission on the requested FHIR store resource. For samples that show how to call `conditionalPatch`, see [Conditionally patching a FHIR resource](/healthcare/docs/how-tos/fhir-resources#conditionally_patching_a_fhir_resource).", + "description": "If a resource is found based on the search criteria 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 ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a conditional patch method, but the server supports it in the same way it supports STU3. Search terms are provided as query parameters following the same pattern as the search method. 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. This method requires the`healthcare.fhirStores.searchResources` permission on the parent FHIR store and the `healthcare.fhirResources.patch` permission on the requested FHIR store resource. 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": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "PATCH", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalPatch", @@ -3790,7 +3790,7 @@ ] }, "conditionalUpdate": { - "description": "If a resource is found based on the search criteria specified in the query parameters, updates the entire contents of that resource. Implements the FHIR standard conditional update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.10.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cond-update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cond-update)). Search terms are provided as query parameters following the same pattern as the search method. 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. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.update` permissions on the parent FHIR store. For samples that show how to call `conditionalUpdate`, see [Conditionally updating a FHIR resource](/healthcare/docs/how-tos/fhir-resources#conditionally_updating_a_fhir_resource).", + "description": "If a resource is found based on the search criteria specified in the query parameters, updates the entire contents of that resource. Implements the FHIR standard conditional update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.10.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cond-update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cond-update)). Search terms are provided as query parameters following the same pattern as the search method. 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. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.update` permissions on the parent FHIR store. 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": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "PUT", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate", @@ -3826,7 +3826,7 @@ ] }, "create": { - "description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](https://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. If no resources match this search query, the server processes the create operation as normal. 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](/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource).", + "description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](https://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. If no resources match this search query, the server processes the create operation as normal. 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": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", @@ -3862,7 +3862,7 @@ ] }, "delete": { - "description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are 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 `delete`, see [Deleting a FHIR resource](/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource).", + "description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are 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 `delete`, see [Deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "DELETE", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.delete", @@ -3887,7 +3887,7 @@ ] }, "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 requires permission for executing the requests in the bundle. The `executeBundle` permission grants permission to execute the request in the bundle but you must grant sufficient permissions to execute the individual requests in the bundle. For example, if the bundle contains a `create` request, you must have permission to execute the `create` request. Logging is available for the `executeBundle` permission. For samples that show how to call `executeBundle`, see [Managing FHIR resources using FHIR bundles](/healthcare/docs/how-tos/fhir-bundles).", + "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).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.executeBundle", @@ -3915,7 +3915,7 @@ ] }, "history": { - "description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. 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 `history`, see [Listing FHIR resource versions](/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions).", + "description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. 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 `history`, see [Listing FHIR resource versions](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.history", @@ -3961,7 +3961,7 @@ ] }, "patch": { - "description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. 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 `patch`, see [Patching a FHIR resource](/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource).", + "description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. 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 `patch`, see [Patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PATCH", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.patch", @@ -3989,7 +3989,7 @@ ] }, "read": { - "description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. 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 `read`, see [Getting a FHIR resource](/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource).", + "description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. 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 `read`, see [Getting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.read", @@ -4014,7 +4014,7 @@ ] }, "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`. 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](/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](/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. 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).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", @@ -4042,7 +4042,7 @@ ] }, "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`. 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](/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](/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. 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).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", "httpMethod": "POST", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", @@ -4077,7 +4077,7 @@ ] }, "update": { - "description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist 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. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. 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 `update`, see [Updating a FHIR resource](/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource).", + "description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist 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. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. 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 `update`, see [Updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PUT", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update", @@ -4105,7 +4105,7 @@ ] }, "vread": { - "description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. 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 `vread`, see [Retrieving a FHIR resource version](/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version).", + "description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. 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 `vread`, see [Retrieving a FHIR resource version](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history/{_historyId}", "httpMethod": "GET", "id": "healthcare.projects.locations.datasets.fhirStores.fhir.vread", @@ -4262,7 +4262,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4356,7 +4356,7 @@ ], "parameters": { "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "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, @@ -4390,7 +4390,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4418,7 +4418,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4696,7 +4696,7 @@ ], "parameters": { "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "required": true, @@ -4865,9 +4865,55 @@ } } }, - "revision": "20220223", + "revision": "20221220", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { + "Action": { + "description": "Specifies a selection of tags and an `Action` to apply to each one.", + "id": "Action", + "properties": { + "cleanImageTag": { + "$ref": "ImageConfig", + "description": "Inspect image and transform sensitive burnt-in text. Doesn't apply to elements nested in a sequence, which revert to `Keep`. Supported [tags](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html): PixelData" + }, + "cleanTextTag": { + "$ref": "CleanTextTag", + "description": "Inspect text and transform sensitive text. Configurable via TextConfig. Supported Value Representations: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" + }, + "deleteTag": { + "$ref": "DeleteTag", + "description": "Delete tag." + }, + "keepTag": { + "$ref": "KeepTag", + "description": "Keep tag unchanged." + }, + "queries": { + "description": "Select all tags with the listed tag IDs, names, or Value Representations (VRs). Examples: ID: \"00100010\" Keyword: \"PatientName\" VR: \"PN\"", + "items": { + "type": "string" + }, + "type": "array" + }, + "recurseTag": { + "$ref": "RecurseTag", + "description": "Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ" + }, + "regenUidTag": { + "$ref": "RegenUidTag", + "description": "Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI" + }, + "removeTag": { + "$ref": "RemoveTag", + "description": "Replace with empty tag." + }, + "resetTag": { + "$ref": "ResetTag", + "description": "Reset tag to a placeholder value." + } + }, + "type": "object" + }, "ActivateConsentRequest": { "description": "Activates the latest revision of the specified Consent by committing a new revision with `state` updated to `ACTIVE`. If the latest revision of the given Consent is in the `ACTIVE` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the given consent is in the `REJECTED` or `REVOKED` state.", "id": "ActivateConsentRequest", @@ -5101,7 +5147,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -5171,7 +5217,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -5219,6 +5265,12 @@ }, "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", + "id": "CharacterMaskField", + "properties": {}, + "type": "object" + }, "CheckDataAccessRequest": { "description": "Checks if a particular data_id of a User data mapping in the given consent store is consented for a given use.", "id": "CheckDataAccessRequest", @@ -5273,6 +5325,24 @@ }, "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.", + "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", + "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", + "id": "CleanTextTag", + "properties": {}, + "type": "object" + }, "CloudHealthcareSource": { "description": "Cloud Healthcare API resource.", "id": "CloudHealthcareSource", @@ -5487,6 +5557,12 @@ }, "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.", + "id": "ContextualDeidConfig", + "properties": {}, + "type": "object" + }, "CreateMessageRequest": { "description": "Creates a new message.", "id": "CreateMessageRequest", @@ -5514,6 +5590,12 @@ }, "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", + "id": "CryptoHashField", + "properties": {}, + "type": "object" + }, "Dataset": { "description": "A message representing a health dataset. A health dataset represents a collection of healthcare data pertaining to one or more patients. This may include multiple modalities of healthcare data, such as electronic medical records or medical imaging data.", "id": "Dataset", @@ -5534,13 +5616,34 @@ "id": "DateShiftConfig", "properties": { "cryptoKey": { - "description": "An AES 128/192/256 bit key. Causes the shift to be computed based on this key and the patient ID. A default key is generated for each de-identification 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. 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. 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", + "id": "DateShiftField", + "properties": {}, + "type": "object" + }, + "DeidentifiedStoreDestination": { + "description": "Contains configuration for streaming de-identified FHIR export.", + "id": "DeidentifiedStoreDestination", + "properties": { + "config": { + "$ref": "DeidentifyConfig", + "description": "The configuration to use when de-identifying resources that are added to this store." + }, + "store": { + "description": "The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "type": "string" } }, "type": "object" @@ -5555,15 +5658,27 @@ }, "dicom": { "$ref": "DicomConfig", + "description": "Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead." + }, + "dicomTagConfig": { + "$ref": "DicomTagConfig", "description": "Configures de-id of application/DICOM content." }, "fhir": { "$ref": "FhirConfig", + "description": "Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead." + }, + "fhirFieldConfig": { + "$ref": "FhirFieldConfig", "description": "Configures de-id of application/FHIR content." }, "image": { "$ref": "ImageConfig", - "description": "Configures de-identification of image pixels wherever they are found in the source_dataset." + "description": "Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead." + }, + "operationMetadata": { + "$ref": "DeidentifyOperationMetadata", + "description": "Details about the work the de-identify operation performed." }, "text": { "$ref": "TextConfig", @@ -5578,11 +5693,15 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", "type": "string" + }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" } }, "type": "object" @@ -5593,7 +5712,7 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", @@ -5602,6 +5721,10 @@ "filterConfig": { "$ref": "DicomFilterConfig", "description": "Filter configuration." + }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" } }, "type": "object" @@ -5612,15 +5735,34 @@ "properties": { "config": { "$ref": "DeidentifyConfig", - "description": "Deidentify configuration." + "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.", "type": "string" }, + "gcsConfigUri": { + "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", + "type": "string" + }, "resourceFilter": { "$ref": "FhirFilter", "description": "A filter specifying the resources to include in the output. If not specified, all resources are included in the output." + }, + "skipModifiedResources": { + "description": "If true, skips resources that are created or modified after the de-identify operation is created.", + "type": "boolean" + } + }, + "type": "object" + }, + "DeidentifyOperationMetadata": { + "description": "Details about the work the de-identify operation performed.", + "id": "DeidentifyOperationMetadata", + "properties": { + "fhirOutput": { + "$ref": "FhirOutput", + "description": "Details about the FHIR store to write the output to." } }, "type": "object" @@ -5631,6 +5773,12 @@ "properties": {}, "type": "object" }, + "DeleteTag": { + "description": "Delete tag.", + "id": "DeleteTag", + "properties": {}, + "type": "object" + }, "Detail": { "description": "Contains multiple sensitive information findings for each resource slice.", "id": "Detail", @@ -5659,10 +5807,10 @@ ], "enumDescriptions": [ "No tag filtration profile provided. Same as KEEP_ALL_PROFILE.", - "Keep only tags required to produce valid DICOM.", + "Keep only the tags required to produce valid DICOM objects.", "Remove tags based on DICOM Standard's Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e) http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html.", "Keep all tags.", - "Inspects within tag contents and replaces sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following Value Representation names: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" + "Inspect within tag contents and replace sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following Value Representation names: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" ], "type": "string" }, @@ -5721,8 +5869,44 @@ }, "type": "object" }, + "DicomTagConfig": { + "description": "Specifies the parameters needed for the de-identification of DICOM stores.", + "id": "DicomTagConfig", + "properties": { + "actions": { + "description": "Specifies custom tag selections and `Actions` to apply to them. Overrides `options` and `profile`. Conflicting `Actions` are applied in the order given.", + "items": { + "$ref": "Action" + }, + "type": "array" + }, + "options": { + "$ref": "Options", + "description": "Specifies additional options to apply, overriding the base `profile`." + }, + "profileType": { + "description": "Base profile type for handling DICOM tags.", + "enum": [ + "PROFILE_TYPE_UNSPECIFIED", + "MINIMAL_KEEP_LIST_PROFILE", + "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE", + "KEEP_ALL_PROFILE", + "DEIDENTIFY_TAG_CONTENTS" + ], + "enumDescriptions": [ + "No profile provided. Same as `ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE`.", + "Keep only the tags required to produce valid DICOM objects.", + "Remove tags based on DICOM Standard's [Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e)](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html).", + "Keep all tags.", + "Inspect tag contents and replace sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following [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" + ], + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -5763,7 +5947,7 @@ "type": "number" }, "linkedEntities": { - "description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.it", + "description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.", "items": { "$ref": "LinkedEntity" }, @@ -6072,6 +6256,40 @@ }, "type": "object" }, + "FhirFieldConfig": { + "description": "Specifies how to handle the de-identification of a FHIR store.", + "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`.", + "items": { + "$ref": "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata" + }, + "type": "array" + }, + "options": { + "$ref": "GoogleCloudHealthcareV1beta1DeidentifyOptions", + "description": "Specifies additional options, overriding the base `profile`." + }, + "profileType": { + "description": "Base profile type for handling FHIR fields.", + "enum": [ + "PROFILE_TYPE_UNSPECIFIED", + "KEEP_ALL", + "BASIC", + "CLEAN_ALL" + ], + "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" + ], + "type": "string" + } + }, + "type": "object" + }, "FhirFilter": { "description": "Filter configuration.", "id": "FhirFilter", @@ -6083,10 +6301,50 @@ }, "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. 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" + } + }, + "type": "object" + }, + "FhirOutput": { + "description": "Details about the FHIR store to write the output to.", + "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.", + "type": "string" + } + }, + "type": "object" + }, "FhirStore": { "description": "Represents a FHIR store.", "id": "FhirStore", "properties": { + "complexDataTypeReferenceParsing": { + "description": "Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.", + "enum": [ + "COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "No parsing behavior specified. This is the same as DISABLED for backwards compatibility.", + "References in complex data types are ignored.", + "References in complex data types are parsed." + ], + "type": "string" + }, "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" @@ -6118,6 +6376,13 @@ "$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\"." }, + "notificationConfigs": { + "description": "Specifies where and whether to send notifications upon changes to a Fhir store.", + "items": { + "$ref": "FhirNotificationConfig" + }, + "type": "array" + }, "searchConfig": { "$ref": "SearchConfig", "description": "Configuration for how FHIR resources can be searched." @@ -6409,6 +6674,71 @@ "properties": {}, "type": "object" }, + "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata": { + "description": "Specifies the FHIR paths to match and how to handle the de-identification of matching fields.", + "id": "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata", + "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" + }, + "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" + }, + "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" + }, + "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" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeField": { + "$ref": "RemoveField", + "description": "Remove the field." + } + }, + "type": "object" + }, + "GoogleCloudHealthcareV1beta1DeidentifyOptions": { + "description": "Specifies additional options to apply to the base `profile`.", + "id": "GoogleCloudHealthcareV1beta1DeidentifyOptions", + "properties": { + "characterMaskConfig": { + "$ref": "CharacterMaskConfig", + "description": "Character mask config for `CharacterMaskField` `FieldMetadatas`." + }, + "contextualDeid": { + "$ref": "ContextualDeidConfig", + "description": "Configure contextual de-id." + }, + "cryptoHashConfig": { + "$ref": "CryptoHashConfig", + "description": "Crypo hash config for `CharacterMaskField` `FieldMetadatas`." + }, + "dateShiftConfig": { + "$ref": "DateShiftConfig", + "description": "Date shifting config for `CharacterMaskField` `FieldMetadatas`." + }, + "keepExtensions": { + "$ref": "KeepExtensionsConfig", + "description": "Configure keeping extensions by default." + } + }, + "type": "object" + }, "GoogleCloudHealthcareV1beta1DicomBigQueryDestination": { "description": "The BigQuery table where the server writes output.", "id": "GoogleCloudHealthcareV1beta1DicomBigQueryDestination", @@ -6432,8 +6762,8 @@ "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination table is empty.", - "Erase all existing data in a table before writing the instances.", - "Append data to the existing table." + "Erase all existing data in the destination table before writing the instances.", + "Append data to the destination table." ], "type": "string" } @@ -6504,8 +6834,8 @@ "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination tables are empty.", - "Erase all existing data in the tables before writing the instances.", - "Append data to the existing tables." + "Erase all existing data in the destination tables before writing the FHIR resources.", + "Append data to the destination tables." ], "type": "string" } @@ -6628,7 +6958,7 @@ "type": "object" }, "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "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": { @@ -6719,19 +7049,35 @@ "description": "Specifies how to handle de-identification of image pixels.", "id": "ImageConfig", "properties": { + "additionalInfoTypes": { + "description": "Additional InfoTypes to redact in the images in addition to those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT`, `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS` or `TEXT_REDACTION_MODE_UNSPECIFIED`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "excludeInfoTypes": { + "description": "InfoTypes to skip redacting, overriding those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT` or `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS`.", + "items": { + "type": "string" + }, + "type": "array" + }, "textRedactionMode": { "description": "Determines how to redact text from image.", "enum": [ "TEXT_REDACTION_MODE_UNSPECIFIED", "REDACT_ALL_TEXT", "REDACT_SENSITIVE_TEXT", - "REDACT_NO_TEXT" + "REDACT_NO_TEXT", + "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" ], "enumDescriptions": [ "No text redaction specified. Same as REDACT_NO_TEXT.", "Redact all text.", - "Redact sensitive text.", - "Do not redact text." + "Redact sensitive text. Uses the set of [Default DICOM InfoTypes](https://cloud.google.com/healthcare-api/docs/how-tos/dicom-deidentify#default_dicom_infotypes).", + "Do not redact text.", + "This mode is like `REDACT_SENSITIVE_TEXT` with the addition of the [Clean Descriptors Option] (https://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html) enabled: 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] (https://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token \"[CTX]\". This mode uses an additional InfoType during inspection." ], "type": "string" } @@ -6851,7 +7197,7 @@ "description": "Config for date shift." }, "infoTypes": { - "description": "InfoTypes to apply this transformation to. If this is not specified, this transformation becomes the default transformation, and is used for any info_type that is not specified in another transformation.", + "description": "`InfoTypes` to apply this transformation to. If this is not specified, this transformation becomes the default transformation, and is used for any `info_type` that is not specified in another transformation.", "items": { "type": "string" }, @@ -6895,12 +7241,30 @@ }, "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.", + "id": "KeepExtensionsConfig", + "properties": {}, + "type": "object" + }, + "KeepField": { + "description": "Keep field unchanged.", + "id": "KeepField", + "properties": {}, + "type": "object" + }, + "KeepTag": { + "description": "Keep tag unchanged.", + "id": "KeepTag", + "properties": {}, + "type": "object" + }, "KmsWrappedCryptoKey": { "description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key).", "id": "KmsWrappedCryptoKey", "properties": { "cryptoKey": { - "description": "Required. The resource name of the KMS CryptoKey to use for unwrapping.", + "description": "Required. The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`.", "type": "string" }, "wrappedKey": { @@ -7247,7 +7611,7 @@ "type": "string" }, "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "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.", "type": "string" }, "parsedData": { @@ -7360,6 +7724,35 @@ }, "type": "object" }, + "Options": { + "description": "Specifies additional options to apply to the base profile.", + "id": "Options", + "properties": { + "cleanDescriptors": { + "$ref": "CleanDescriptorsOption", + "description": "Set Clean Descriptors Option." + }, + "cleanImage": { + "$ref": "ImageConfig", + "description": "Apply `Action.clean_image` to [`PixelData`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html) as configured." + }, + "primaryIds": { + "description": "Set `Action` for [`StudyInstanceUID`, `SeriesInstanceUID`, `SOPInstanceUID`, and `MediaStorageSOPInstanceUID`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html).", + "enum": [ + "PRIMARY_IDS_OPTION_UNSPECIFIED", + "KEEP", + "REGEN" + ], + "enumDescriptions": [ + "No value provided. Default to the behavior specified by the base profile.", + "Keep primary IDs.", + "Regenerate primary IDs." + ], + "type": "string" + } + }, + "type": "object" + }, "ParsedData": { "description": "The content of an HL7v2 message in a structured format.", "id": "ParsedData", @@ -7395,12 +7788,14 @@ "enum": [ "PARSER_VERSION_UNSPECIFIED", "V1", - "V2" + "V2", + "V3" ], "enumDescriptions": [ "Unspecified parser version, equivalent to V1.", "The `parsed_data` includes every given non-empty message field except the Field Separator (MSH-1) field. As a result, the parsed MSH segment starts with the MSH-2 field and the field numbers are off-by-one with respect to the HL7 standard.", - "The `parsed_data` includes every given non-empty message field." + "The `parsed_data` includes every given non-empty message field.", + "This version is the same as V2, with the following change. The `parsed_data` contains unescaped escaped field separators, component separators, sub-component separators, repetition separators, escape characters, and truncation characters. If `schema` is specified, the schematized parser uses improved parsing heuristics compared to previous versions." ], "type": "string" } @@ -7514,12 +7909,24 @@ }, "type": "object" }, + "RecurseTag": { + "description": "Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ", + "id": "RecurseTag", + "properties": {}, + "type": "object" + }, "RedactConfig": { "description": "Define how to redact sensitive values. Default behaviour is erase. For example, \"My name is Jane.\" becomes \"My name is .\"", "id": "RedactConfig", "properties": {}, "type": "object" }, + "RegenUidTag": { + "description": "Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI", + "id": "RegenUidTag", + "properties": {}, + "type": "object" + }, "RejectConsentRequest": { "description": "Rejects the latest revision of the specified Consent by committing a new revision with `state` updated to `REJECTED`. If the latest revision of the given Consent is in the `REJECTED` state, no new revision is committed.", "id": "RejectConsentRequest", @@ -7531,12 +7938,30 @@ }, "type": "object" }, + "RemoveField": { + "description": "Remove field.", + "id": "RemoveField", + "properties": {}, + "type": "object" + }, + "RemoveTag": { + "description": "Replace with empty tag.", + "id": "RemoveTag", + "properties": {}, + "type": "object" + }, "ReplaceWithInfoTypeConfig": { "description": "When using the INSPECT_AND_TRANSFORM action, each match is replaced with the name of the info_type. For example, \"My name is Jane\" becomes \"My name is [PERSON_NAME].\" The TRANSFORM action is equivalent to redacting.", "id": "ReplaceWithInfoTypeConfig", "properties": {}, "type": "object" }, + "ResetTag": { + "description": "Reset tag to a placeholder value.", + "id": "ResetTag", + "properties": {}, + "type": "object" + }, "ResourceAnnotation": { "description": "Resource level annotation.", "id": "ResourceAnnotation", @@ -7599,6 +8024,10 @@ "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", @@ -7616,7 +8045,7 @@ "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, 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." ], "type": "string" } @@ -7828,7 +8257,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -7900,6 +8329,10 @@ "$ref": "GoogleCloudHealthcareV1beta1FhirBigQueryDestination", "description": "The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types, e.g. \"Patient\", \"Observation\". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. 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 resource mutation that generates more than 1 MB of BigQuery data will not be streamed. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation 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))." }, + "deidentifiedStoreDestination": { + "$ref": "DeidentifiedStoreDestination", + "description": "The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, 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 have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." + }, "resourceTypes": { "description": "Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store.", "items": { @@ -7929,7 +8362,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -7953,10 +8386,39 @@ "type": "object" }, "TextConfig": { + "description": "Configures how to transform sensitive text `InfoTypes`.", "id": "TextConfig", "properties": { + "additionalTransformations": { + "description": "Additional transformations to apply to the detected data, overriding `profile`.", + "items": { + "$ref": "InfoTypeTransformation" + }, + "type": "array" + }, + "excludeInfoTypes": { + "description": "InfoTypes to skip transforming, overriding `profile`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "profileType": { + "description": "Base profile type for text transformation.", + "enum": [ + "PROFILE_TYPE_UNSPECIFIED", + "EMPTY", + "BASIC" + ], + "enumDescriptions": [ + "Same as BASIC.", + "Empty profile which does not perform any transformations.", + "Basic profile applies: DATE -> DateShift Default -> ReplaceWithInfoType" + ], + "type": "string" + }, "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" }, @@ -7981,6 +8443,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/homegraph/v1/homegraph-api.json b/etc/api/homegraph/v1/homegraph-api.json index f8ac70491f..4e88057a91 100644 --- a/etc/api/homegraph/v1/homegraph-api.json +++ b/etc/api/homegraph/v1/homegraph-api.json @@ -14,7 +14,7 @@ "canonicalName": "Home Graph Service", "description": "", "discoveryVersion": "v1", - "documentationLink": "https://developers.google.com/actions/smarthome/create-app#request-sync", + "documentationLink": "https://developers.home.google.com/cloud-to-cloud/get-started", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -108,7 +108,7 @@ "agentUsers": { "methods": { "delete": { - "description": "Unlinks the given third-party user from your smart home Action. All data related to this user will be deleted. For more details on how users link their accounts, see [fulfillment and authentication](https://developers.google.com/assistant/smarthome/concepts/fulfillment-authentication). The third-party user's identity is passed in via the `agent_user_id` (see DeleteAgentUserRequest). This request must be authorized using service account credentials from your Actions console project.", + "description": "Unlinks the given third-party user from your smart home Action. All data related to this user will be deleted. For more details on how users link their accounts, see [fulfillment and authentication](https://developers.home.google.com/cloud-to-cloud/primer/fulfillment). The third-party user's identity is passed in via the `agent_user_id` (see DeleteAgentUserRequest). This request must be authorized using service account credentials from your Actions console project.", "flatPath": "v1/agentUsers/{agentUsersId}", "httpMethod": "DELETE", "id": "homegraph.agentUsers.delete", @@ -160,7 +160,7 @@ ] }, "reportStateAndNotification": { - "description": "Reports device state and optionally sends device notifications. Called by your smart home Action when the state of a third-party device changes or you need to send a notification about the device. See [Implement Report State](https://developers.google.com/assistant/smarthome/develop/report-state) for more information. This method updates the device state according to its declared [traits](https://developers.google.com/assistant/smarthome/concepts/devices-traits). Publishing a new state value outside of these traits will result in an `INVALID_ARGUMENT` error response. The third-party user's identity is passed in via the `agent_user_id` (see ReportStateAndNotificationRequest). This request must be authorized using service account credentials from your Actions console project.", + "description": "Reports device state and optionally sends device notifications. Called by your smart home Action when the state of a third-party device changes or you need to send a notification about the device. See [Implement Report State](https://developers.home.google.com/cloud-to-cloud/integration/report-state) for more information. This method updates the device state according to its declared [traits](https://developers.home.google.com/cloud-to-cloud/primer/device-types-and-traits). Publishing a new state value outside of these traits will result in an `INVALID_ARGUMENT` error response. The third-party user's identity is passed in via the `agent_user_id` (see ReportStateAndNotificationRequest). This request must be authorized using service account credentials from your Actions console project.", "flatPath": "v1/devices:reportStateAndNotification", "httpMethod": "POST", "id": "homegraph.devices.reportStateAndNotification", @@ -178,7 +178,7 @@ ] }, "requestSync": { - "description": "Requests Google to send an `action.devices.SYNC` [intent](https://developers.google.com/assistant/smarthome/reference/intent/sync) to your smart home Action to update device metadata for the given user. The third-party user's identity is passed via the `agent_user_id` (see RequestSyncDevicesRequest). This request must be authorized using service account credentials from your Actions console project.", + "description": "Requests Google to send an `action.devices.SYNC` [intent](https://developers.home.google.com/cloud-to-cloud/intents/sync) to your smart home Action to update device metadata for the given user. The third-party user's identity is passed via the `agent_user_id` (see RequestSyncDevicesRequest). This request must be authorized using service account credentials from your Actions console project.", "flatPath": "v1/devices:requestSync", "httpMethod": "POST", "id": "homegraph.devices.requestSync", @@ -216,7 +216,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { @@ -246,7 +246,7 @@ "type": "object" }, "Device": { - "description": "Third-party device definition. Next ID = 14", + "description": "Third-party device definition.", "id": "Device", "properties": { "attributes": { @@ -262,7 +262,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Custom device attributes stored in Home Graph and provided to your smart home Action in each [QUERY](https://developers.google.com/assistant/smarthome/reference/intent/query) and [EXECUTE](https://developers.google.com/assistant/smarthome/reference/intent/execute) intent. Data in this object has a few constraints: No sensitive information, including but not limited to Personally Identifiable Information.", + "description": "Custom device attributes stored in Home Graph and provided to your smart home Action in each [QUERY](https://developers.home.google.com/cloud-to-cloud/intents/query) and [EXECUTE](https://developers.home.google.com/cloud-to-cloud/intents/execute) intent. Data in this object has a few constraints: No sensitive information, including but not limited to Personally Identifiable Information.", "type": "object" }, "deviceInfo": { @@ -282,7 +282,7 @@ "type": "boolean" }, "otherDeviceIds": { - "description": "Alternate IDs associated with this device. This is used to identify cloud synced devices enabled for [local fulfillment](https://developers.google.com/assistant/smarthome/concepts/local).", + "description": "Alternate IDs associated with this device. This is used to identify cloud synced devices enabled for [local fulfillment](https://developers.home.google.com/local-home/overview).", "items": { "$ref": "AgentOtherDeviceId" }, @@ -297,14 +297,14 @@ "type": "string" }, "traits": { - "description": "Traits supported by the device. See [device traits](https://developers.google.com/assistant/smarthome/traits).", + "description": "Traits supported by the device. See [device traits](https://developers.home.google.com/cloud-to-cloud/traits).", "items": { "type": "string" }, "type": "array" }, "type": { - "description": "Hardware type of the device. See [device types](https://developers.google.com/assistant/smarthome/guides).", + "description": "Hardware type of the device. See [device types](https://developers.home.google.com/cloud-to-cloud/guides).", "type": "string" }, "willReportState": { @@ -363,7 +363,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -416,7 +416,7 @@ "type": "object" }, "QueryResponse": { - "description": "Response type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call. This should follow the same format as the Google smart home `action.devices.QUERY` [response](https://developers.google.com/assistant/smarthome/reference/intent/query). # Example ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"devices\": { \"123\": { \"on\": true, \"online\": true }, \"456\": { \"on\": true, \"online\": true, \"brightness\": 80, \"color\": { \"name\": \"cerulean\", \"spectrumRGB\": 31655 } } } } } ```", + "description": "Response type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call. This should follow the same format as the Google smart home `action.devices.QUERY` [response](https://developers.home.google.com/cloud-to-cloud/intents/query). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"devices\": { \"123\": { \"on\": true, \"online\": true }, \"456\": { \"on\": true, \"online\": true, \"brightness\": 80, \"color\": { \"name\": \"cerulean\", \"spectrumRGB\": 31655 } } } } } ```", "id": "QueryResponse", "properties": { "payload": { @@ -457,7 +457,7 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Notifications metadata for devices. See the **Device NOTIFICATIONS** section of the individual trait [reference guides](https://developers.google.com/assistant/smarthome/traits).", + "description": "Notifications metadata for devices. See the **Device NOTIFICATIONS** section of the individual trait [reference guides](https://developers.home.google.com/cloud-to-cloud/traits).", "type": "object" }, "states": { @@ -465,14 +465,14 @@ "description": "Properties of the object.", "type": "any" }, - "description": "States of devices to update. See the **Device STATES** section of the individual trait [reference guides](https://developers.google.com/assistant/smarthome/traits).", + "description": "States of devices to update. See the **Device STATES** section of the individual trait [reference guides](https://developers.home.google.com/cloud-to-cloud/traits).", "type": "object" } }, "type": "object" }, "ReportStateAndNotificationRequest": { - "description": "Request type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call. It may include states, notifications, or both. States and notifications are defined per `device_id` (for example, \"123\" and \"456\" in the following example). # Example ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"agentUserId\": \"1234\", \"payload\": { \"devices\": { \"states\": { \"123\": { \"on\": true }, \"456\": { \"on\": true, \"brightness\": 10 } }, } } } ```", + "description": "Request type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call. It may include states, notifications, or both. States and notifications are defined per `device_id` (for example, \"123\" and \"456\" in the following example). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"agentUserId\": \"1234\", \"payload\": { \"devices\": { \"states\": { \"123\": { \"on\": true }, \"456\": { \"on\": true, \"brightness\": 10 } }, } } } ```", "id": "ReportStateAndNotificationRequest", "properties": { "agentUserId": { @@ -557,7 +557,7 @@ "type": "object" }, "SyncResponse": { - "description": "Response type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call. This should follow the same format as the Google smart home `action.devices.SYNC` [response](https://developers.google.com/assistant/smarthome/reference/intent/sync). # Example ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"agentUserId\": \"1836.15267389\", \"devices\": [{ \"id\": \"123\", \"type\": \"action.devices.types.OUTLET\", \"traits\": [ \"action.devices.traits.OnOff\" ], \"name\": { \"defaultNames\": [\"My Outlet 1234\"], \"name\": \"Night light\", \"nicknames\": [\"wall plug\"] }, \"willReportState\": false, \"deviceInfo\": { \"manufacturer\": \"lights-out-inc\", \"model\": \"hs1234\", \"hwVersion\": \"3.2\", \"swVersion\": \"11.4\" }, \"customData\": { \"fooValue\": 74, \"barValue\": true, \"bazValue\": \"foo\" } }] } } ```", + "description": "Response type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call. This should follow the same format as the Google smart home `action.devices.SYNC` [response](https://developers.home.google.com/cloud-to-cloud/intents/sync). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"agentUserId\": \"1836.15267389\", \"devices\": [{ \"id\": \"123\", \"type\": \"action.devices.types.OUTLET\", \"traits\": [ \"action.devices.traits.OnOff\" ], \"name\": { \"defaultNames\": [\"My Outlet 1234\"], \"name\": \"Night light\", \"nicknames\": [\"wall plug\"] }, \"willReportState\": false, \"deviceInfo\": { \"manufacturer\": \"lights-out-inc\", \"model\": \"hs1234\", \"hwVersion\": \"3.2\", \"swVersion\": \"11.4\" }, \"customData\": { \"fooValue\": 74, \"barValue\": true, \"bazValue\": \"foo\" } }] } } ```", "id": "SyncResponse", "properties": { "payload": { diff --git a/etc/api/iam/v1/iam-api.json b/etc/api/iam/v1/iam-api.json index 45b0359786..101fc1b470 100644 --- a/etc/api/iam/v1/iam-api.json +++ b/etc/api/iam/v1/iam-api.json @@ -180,6 +180,39 @@ }, "providers": { "resources": { + "keys": { + "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/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}/keys/{keysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "iam.locations.workforcePools.providers.keys.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^locations/[^/]+/workforcePools/[^/]+/providers/[^/]+/keys/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "operations": { "methods": { "get": { @@ -1203,7 +1236,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1228,7 +1261,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1256,7 +1289,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1284,7 +1317,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1315,7 +1348,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1376,7 +1409,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to get the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1404,7 +1437,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1432,7 +1465,7 @@ ], "parameters": { "name": { - "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1460,7 +1493,7 @@ ], "parameters": { "name": { - "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. Deprecated. [Migrate to Service Account Credentials API](https://cloud.google.com/iam/help/credentials/migrate-api). The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1488,7 +1521,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1516,7 +1549,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT_UNIQUE_ID}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1544,7 +1577,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to get the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1576,7 +1609,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1604,7 +1637,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", "required": true, @@ -1620,7 +1653,7 @@ ] }, "disable": { - "description": "Disable a ServiceAccountKey. A disabled service account key can be enabled through EnableServiceAccountKey.", + "description": "Disable a ServiceAccountKey. A disabled service account key can be re-enabled with EnableServiceAccountKey.", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}:disable", "httpMethod": "POST", "id": "iam.projects.serviceAccounts.keys.disable", @@ -1629,7 +1662,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", "required": true, @@ -1657,7 +1690,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", "required": true, @@ -1685,7 +1718,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the service account key in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}/keys/{KEY_ID}` * `projects/-/serviceAccounts/{UNIQUE_ID}/keys/{KEY_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account key `projects/-/serviceAccounts/fake@example.com/keys/fake-key`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", "required": true, @@ -1741,7 +1774,7 @@ "type": "string" }, "name": { - "description": "Required. The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID`, will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "Required. The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1757,7 +1790,7 @@ ] }, "upload": { - "description": "Creates a ServiceAccountKey, using a public key that you provide.", + "description": "Uploads the public key portion of a key pair that you manage, and associates the public key with a ServiceAccount. After you upload the public key, you can use the private key from the key pair as a service account key.", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys:upload", "httpMethod": "POST", "id": "iam.projects.serviceAccounts.keys.upload", @@ -1766,7 +1799,7 @@ ], "parameters": { "name": { - "description": "The resource name of the service account in the following format: `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. Using `-` as a wildcard for the `PROJECT_ID` will infer the project from the account. The `ACCOUNT` value can be the `email` address or the `unique_id` of the service account.", + "description": "The resource name of the service account key. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "location": "path", "pattern": "^projects/[^/]+/serviceAccounts/[^/]+$", "required": true, @@ -1888,7 +1921,7 @@ } } }, - "revision": "20220224", + "revision": "20230112", "rootUrl": "https://iam.googleapis.com/", "schemas": { "AdminAuditData": { @@ -1903,7 +1936,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1992,7 +2025,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2028,7 +2061,7 @@ "description": "The condition that is associated with this binding." }, "member": { - "description": "A single identity requesting access for a Cloud Platform resource. Follows the same format of Binding.members. Required", + "description": "A single identity requesting access for a Google Cloud resource. Follows the same format of Binding.members. Required", "type": "string" }, "role": { @@ -2116,7 +2149,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2165,7 +2198,7 @@ "description": "google.iam.v1.Binding.condition object to be linted." }, "fullResourceName": { - "description": "The full resource name of the policy this lint request is about. The name follows the Google Cloud Platform (GCP) resource format. For example, a GCP project with ID `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`. The resource name is not used to read the policy instance from the Cloud IAM database. The candidate policy for lint has to be provided in the same request object.", + "description": "The full resource name of the policy this lint request is about. The name follows the Google Cloud format for full resource names. For example, a Cloud project with ID `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`. The resource name is not used to read a policy from IAM. Only the data in the request object is linted.", "type": "string" } }, @@ -2381,7 +2414,7 @@ "type": "object" }, "PatchServiceAccountRequest": { - "description": "The request for PatchServiceAccount. 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.", + "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", "properties": { "serviceAccount": { @@ -2687,8 +2720,19 @@ }, "type": "object" }, + "Saml": { + "description": "Represents an SAML 2.0 identity provider.", + "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", + "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 account.", + "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 //", "id": "ServiceAccount", "properties": { "description": { @@ -2715,7 +2759,7 @@ "type": "string" }, "name": { - "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to get the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", + "description": "The resource name of the service account. Use one of the following formats: * `projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}` * `projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}` As an alternative, you can use the `-` wildcard character instead of the project ID: * `projects/-/serviceAccounts/{EMAIL_ADDRESS}` * `projects/-/serviceAccounts/{UNIQUE_ID}` When possible, avoid using the `-` wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account `projects/-/serviceAccounts/fake@example.com`, which does not exist, the response contains an HTTP `403 Forbidden` error instead of a `404 Not Found` error.", "type": "string" }, "oauth2ClientId": { @@ -2833,7 +2877,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2929,7 +2973,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2997,7 +3041,7 @@ "id": "UploadServiceAccountKeyRequest", "properties": { "publicKeyData": { - "description": "A field that allows clients to upload their own public key. If set, use this public key data to create a service account key for given service account. Please note, the expected format for this field is X509_PEM.", + "description": "The public key to associate with the service account. Must be an RSA public key that is wrapped in an X.509 v3 certificate. Include the first line, `-----BEGIN CERTIFICATE-----`, and the last line, `-----END CERTIFICATE-----`.", "format": "byte", "type": "string" } @@ -3043,6 +3087,12 @@ }, "type": "object" }, + "WorkloadIdentityPoolOperationMetadata": { + "description": "Metadata for long-running WorkloadIdentityPool operations.", + "id": "WorkloadIdentityPoolOperationMetadata", + "properties": {}, + "type": "object" + }, "WorkloadIdentityPoolProvider": { "description": "A configuration for an external identity provider.", "id": "WorkloadIdentityPoolProvider", @@ -3083,6 +3133,10 @@ "$ref": "Oidc", "description": "An OpenId Connect 1.0 identity provider." }, + "saml": { + "$ref": "Saml", + "description": "An SAML 2.0 identity provider." + }, "state": { "description": "Output only. The state of the provider.", "enum": [ diff --git a/etc/api/iamcredentials/v1/iamcredentials-api.json b/etc/api/iamcredentials/v1/iamcredentials-api.json index ccacaa6b40..582adeaa02 100644 --- a/etc/api/iamcredentials/v1/iamcredentials-api.json +++ b/etc/api/iamcredentials/v1/iamcredentials-api.json @@ -226,7 +226,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "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 98de9bd71e..e89f064c94 100644 --- a/etc/api/iap/v1/iap-api.json +++ b/etc/api/iap/v1/iap-api.json @@ -336,6 +336,171 @@ } } } + }, + "iap_tunnel": { + "resources": { + "locations": { + "resources": { + "destGroups": { + "methods": { + "create": { + "description": "Creates a new TunnelDestGroup.", + "flatPath": "v1/projects/{projectsId}/iap_tunnel/locations/{locationsId}/destGroups", + "httpMethod": "POST", + "id": "iap.projects.iap_tunnel.locations.destGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Google Cloud Project ID and location. In the following format: `projects/{project_number/id}/iap_tunnel/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/iap_tunnel/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tunnelDestGroupId": { + "description": "Required. The ID to use for the TunnelDestGroup, which becomes the final component of the resource name. This value must be 4-63 characters, and valid characters are `[a-z]-`.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/destGroups", + "request": { + "$ref": "TunnelDestGroup" + }, + "response": { + "$ref": "TunnelDestGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a TunnelDestGroup.", + "flatPath": "v1/projects/{projectsId}/iap_tunnel/locations/{locationsId}/destGroups/{destGroupsId}", + "httpMethod": "DELETE", + "id": "iap.projects.iap_tunnel.locations.destGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TunnelDestGroup to delete. In the following format: `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`.", + "location": "path", + "pattern": "^projects/[^/]+/iap_tunnel/locations/[^/]+/destGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves an existing TunnelDestGroup.", + "flatPath": "v1/projects/{projectsId}/iap_tunnel/locations/{locationsId}/destGroups/{destGroupsId}", + "httpMethod": "GET", + "id": "iap.projects.iap_tunnel.locations.destGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TunnelDestGroup to be fetched. In the following format: `projects/{project_number/id}/iap_tunnel/locations/{location}/destGroups/{dest_group}`.", + "location": "path", + "pattern": "^projects/[^/]+/iap_tunnel/locations/[^/]+/destGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "TunnelDestGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists the existing TunnelDestGroups. To group across all locations, use a `-` as the location ID. For example: `/v1/projects/123/iap_tunnel/locations/-/destGroups`", + "flatPath": "v1/projects/{projectsId}/iap_tunnel/locations/{locationsId}/destGroups", + "httpMethod": "GET", + "id": "iap.projects.iap_tunnel.locations.destGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of groups to return. The service might return fewer than this value. If unspecified, at most 100 groups are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListTunnelDestGroups` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTunnelDestGroups` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Google Cloud Project ID and location. In the following format: `projects/{project_number/id}/iap_tunnel/locations/{location}`. A `-` can be used for the location to group across all locations.", + "location": "path", + "pattern": "^projects/[^/]+/iap_tunnel/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/destGroups", + "response": { + "$ref": "ListTunnelDestGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a TunnelDestGroup.", + "flatPath": "v1/projects/{projectsId}/iap_tunnel/locations/{locationsId}/destGroups/{destGroupsId}", + "httpMethod": "PATCH", + "id": "iap.projects.iap_tunnel.locations.destGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Identifier for the TunnelDestGroup. Must be unique within the project and contain only lower case letters (a-z) and dashes (-).", + "location": "path", + "pattern": "^projects/[^/]+/iap_tunnel/locations/[^/]+/destGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "A field mask that specifies which IAP settings to update. If omitted, then all of the settings are updated. See https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "TunnelDestGroup" + }, + "response": { + "$ref": "TunnelDestGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } } } }, @@ -351,7 +516,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -404,7 +569,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -432,7 +597,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -487,7 +652,7 @@ } } }, - "revision": "20220225", + "revision": "20230118", "rootUrl": "https://iap.googleapis.com/", "schemas": { "AccessDeniedPageSettings": { @@ -501,6 +666,10 @@ "generateTroubleshootingUri": { "description": "Whether to generate a troubleshooting URL on access denied events to this application.", "type": "boolean" + }, + "remediationTokenGenerationEnabled": { + "description": "Whether to generate remediation token on access denied events to this application.", + "type": "boolean" } }, "type": "object" @@ -509,6 +678,10 @@ "description": "Access related settings for IAP protected apps.", "id": "AccessSettings", "properties": { + "allowedDomainsSettings": { + "$ref": "AllowedDomainsSettings", + "description": "Settings to configure and enable allowed domains." + }, "corsSettings": { "$ref": "CorsSettings", "description": "Configuration to allow cross-origin requests via IAP." @@ -532,6 +705,24 @@ }, "type": "object" }, + "AllowedDomainsSettings": { + "description": "Configuration for IAP allowed domains. Lets you to restrict access to an app and allow access to only the domains that you list.", + "id": "AllowedDomainsSettings", + "properties": { + "domains": { + "description": "List of trusted domains.", + "items": { + "type": "string" + }, + "type": "array" + }, + "enable": { + "description": "Configuration for customers to opt in for the feature.", + "type": "boolean" + } + }, + "type": "object" + }, "ApplicationSettings": { "description": "Wrapper over application specific settings for IAP.", "id": "ApplicationSettings", @@ -540,13 +731,51 @@ "$ref": "AccessDeniedPageSettings", "description": "Customization for Access Denied page." }, + "attributePropagationSettings": { + "$ref": "AttributePropagationSettings", + "description": "Settings to configure attribute propagation." + }, "cookieDomain": { "description": "The Domain value to set for cookies generated by IAP. This value is not validated by the API, but will be ignored at runtime if invalid.", "type": "string" }, "csmSettings": { "$ref": "CsmSettings", - "description": "Settings to configure IAP's behavior for a CSM mesh." + "description": "Settings to configure IAP's behavior for a service mesh." + } + }, + "type": "object" + }, + "AttributePropagationSettings": { + "description": "Configuration for propagating attributes to applications protected by IAP.", + "id": "AttributePropagationSettings", + "properties": { + "enable": { + "description": "Whether the provided attribute propagation settings should be evaluated on user requests. If set to true, attributes returned from the expression will be propagated in the set output credentials.", + "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())", + "type": "string" + }, + "outputCredentials": { + "description": "Which output credentials attributes selected by the CEL expression should be propagated in. All attributes will be fully duplicated in each selected output credential.", + "items": { + "enum": [ + "OUTPUT_CREDENTIALS_UNSPECIFIED", + "HEADER", + "JWT", + "RCTOKEN" + ], + "enumDescriptions": [ + "No output credential. This is unsupported in IAP, there must be an output credential.", + "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\"] }" + ], + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -560,7 +789,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -610,7 +839,7 @@ "type": "object" }, "CsmSettings": { - "description": "Configuration for RCTokens generated for CSM workloads protected by IAP. RCTokens are IAP generated JWTs that can be verified at the application. The RCToken is primarily used for ISTIO deployments, and can be scoped to a single mesh by configuring the audience field accordingly", + "description": "Configuration for RCToken generated for service mesh workloads protected by IAP. RCToken are IAP generated JWTs that can be verified at the application. The RCToken is primarily used for service mesh deployments, and can be scoped to a single mesh by configuring the audience field accordingly.", "id": "CsmSettings", "properties": { "rctokenAud": { @@ -621,7 +850,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -762,6 +991,24 @@ }, "type": "object" }, + "ListTunnelDestGroupsResponse": { + "description": "The response from ListTunnelDestGroups.", + "id": "ListTunnelDestGroupsResponse", + "properties": { + "nextPageToken": { + "description": "A token that you can send as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "tunnelDestGroups": { + "description": "TunnelDestGroup existing in the project.", + "items": { + "$ref": "TunnelDestGroup" + }, + "type": "array" + } + }, + "type": "object" + }, "OAuthSettings": { "description": "Configuration for OAuth login&consent flow behavior as well as for OAuth Credentials.", "id": "OAuthSettings", @@ -849,7 +1096,7 @@ "type": "string" }, "method": { - "description": "Reauth method required by the policy.", + "description": "Reauth method requested.", "enum": [ "METHOD_UNSPECIFIED", "LOGIN", @@ -858,8 +1105,8 @@ ], "enumDescriptions": [ "Reauthentication disabled.", - "Mimicks the behavior as if the user had logged out and tried to log in again. Users with 2SV (step verification) enabled will see their 2SV challenges if they did not opt to have their second factor responses saved. Apps Core (GSuites) admins can configure settings to disable 2SV cookies and require 2-step verification for all Apps Core users in their domains.", - "User must type their password.", + "Prompts the user to log in again.", + "Deprecated, no longer accepted by IAP APIs.", "User must use their secure key 2nd factor device." ], "type": "string" @@ -872,7 +1119,7 @@ "DEFAULT" ], "enumDescriptions": [ - "Default value. This value is unused/invalid.", + "Default value. This value is unused.", "This policy acts as a minimum to other policies, lower in the hierarchy. Effective policy may only be the same or stricter.", "This policy acts as a default if no other reauth policy is set." ], @@ -918,7 +1165,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -928,7 +1175,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -950,6 +1197,31 @@ } }, "type": "object" + }, + "TunnelDestGroup": { + "description": "A TunnelDestGroup.", + "id": "TunnelDestGroup", + "properties": { + "cidrs": { + "description": "Unordered list. List of CIDRs that this group applies to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "fqdns": { + "description": "Unordered list. List of FQDNs that this group applies to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Immutable. Identifier for the TunnelDestGroup. Must be unique within the project and contain only lower case letters (a-z) and dashes (-).", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/iap/v1beta1/iap-api.json b/etc/api/iap/v1beta1/iap-api.json index 45f4db82a7..cfe236ed66 100644 --- a/etc/api/iap/v1beta1/iap-api.json +++ b/etc/api/iap/v1beta1/iap-api.json @@ -117,7 +117,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -145,7 +145,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -173,7 +173,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^.*$", "required": true, @@ -194,7 +194,7 @@ } } }, - "revision": "20220225", + "revision": "20230118", "rootUrl": "https://iap.googleapis.com/", "schemas": { "Binding": { @@ -206,7 +206,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -295,7 +295,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -305,7 +305,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/ids/v1/ids-api.json b/etc/api/ids/v1/ids-api.json index 9ead51e488..11c8fe039b 100644 --- a/etc/api/ids/v1/ids-api.json +++ b/etc/api/ids/v1/ids-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -288,7 +288,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpoints/[^/]+$", "required": true, @@ -349,6 +349,45 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "patch": { + "description": "Updates the parameters of a single Endpoint.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}", + "httpMethod": "PATCH", + "id": "ids.projects.locations.endpoints.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The name of the endpoint.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "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. 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": "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": "v1/{+name}", + "request": { + "$ref": "Endpoint" + }, + "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}/endpoints/{endpointsId}:setIamPolicy", @@ -359,7 +398,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpoints/[^/]+$", "required": true, @@ -387,7 +426,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpoints/[^/]+$", "required": true, @@ -535,11 +574,11 @@ } } }, - "revision": "20220221", + "revision": "20221113", "rootUrl": "https://ids.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -595,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -615,7 +654,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -686,17 +725,26 @@ "STATE_UNSPECIFIED", "CREATING", "READY", - "DELETING" + "DELETING", + "UPDATING" ], "enumDescriptions": [ "Not set.", "Being created.", "Active and ready for traffic.", - "Being deleted." + "Being deleted.", + "Being updated." ], "readOnly": true, "type": "string" }, + "threatExceptions": { + "description": "List of threat IDs to be excepted from generating alerts.", + "items": { + "type": "string" + }, + "type": "array" + }, "trafficLogs": { "description": "Whether the endpoint should report traffic logs in addition to threat logs.", "type": "boolean" @@ -943,7 +991,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -985,7 +1033,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/indexing/v3/indexing-api.json b/etc/api/indexing/v3/indexing-api.json index 0e506cd9b8..6d6c1b3619 100644 --- a/etc/api/indexing/v3/indexing-api.json +++ b/etc/api/indexing/v3/indexing-api.json @@ -149,7 +149,7 @@ } } }, - "revision": "20220126", + "revision": "20230117", "rootUrl": "https://indexing.googleapis.com/", "schemas": { "PublishUrlNotificationResponse": { diff --git a/etc/api/jobs/v3/jobs-api.json b/etc/api/jobs/v3/jobs-api.json index 09797fdedf..260cbdf9d4 100644 --- a/etc/api/jobs/v3/jobs-api.json +++ b/etc/api/jobs/v3/jobs-api.json @@ -651,7 +651,7 @@ } } }, - "revision": "20220211", + "revision": "20230120", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -863,7 +863,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { - "description": "Optional. 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.", + "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" }, @@ -1328,7 +1328,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1901,7 +1901,7 @@ "description": "Optional. Allows filtering jobs by commute time with different travel methods (for example, driving or public transit). Note: This only works with COMMUTE MODE. When specified, [JobQuery.location_filters] is ignored. Currently we don't support sorting by commute time." }, "companyDisplayNames": { - "description": "Optional. This filter specifies the exact company display name of the jobs to search against. If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", + "description": "Optional. This filter specifies the company Company.display_name of the jobs to search against. The company name must match the value exactly. Alternatively, the value being searched for can be wrapped in different match operators. `SUBSTRING_MATCH([value])` The company name must contain a case insensitive substring match of the value. Using this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)` `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word token and the company name must contain a case insensitive match of the value. Using this function may increase latency. Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", "items": { "type": "string" }, @@ -2194,16 +2194,18 @@ "type": "string" }, "telecommutePreference": { - "description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location. Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not searched. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", + "description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location). Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have additional Job.addresses may still be matched based on other location filters using address or latlng. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", "enum": [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", - "TELECOMMUTE_ALLOWED" + "TELECOMMUTE_ALLOWED", + "TELECOMMUTE_JOBS_EXCLUDED" ], "enumDescriptions": [ "Default value if the telecommute preference is not specified.", - "Exclude telecommute jobs.", - "Allow telecommute jobs." + "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", + "Allow telecommute jobs.", + "Exclude telecommute jobs." ], "type": "string" } @@ -2273,7 +2275,7 @@ "type": "object" }, "NamespacedDebugInput": { - "description": "Next ID: 15", + "description": "Next ID: 16", "id": "NamespacedDebugInput", "properties": { "absolutelyForcedExpNames": { @@ -2321,7 +2323,7 @@ "type": "array" }, "disableAutomaticEnrollmentSelection": { - "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments.", + "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableExpNames": { @@ -2347,11 +2349,11 @@ "type": "array" }, "disableManualEnrollmentSelection": { - "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments.", + "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableOrganicSelection": { - "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem.", + "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "forcedFlags": { @@ -2367,6 +2369,20 @@ }, "description": "Rollouts to force in a particular experiment state. Map from rollout name to rollout value.", "type": "object" + }, + "testingMode": { + "description": "Sets different testing modes. See the documentation in the TestingMode message for more information.", + "enum": [ + "TESTING_MODE_UNSPECIFIED", + "TESTING_MODE_ALL_OFF", + "TESTING_MODE_ALL_ON" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" } }, "type": "object" @@ -2415,7 +2431,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -2453,7 +2469,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { diff --git a/etc/api/jobs/v3p1beta1/jobs-api.json b/etc/api/jobs/v3p1beta1/jobs-api.json index 6ee0030e6c..43febb94a7 100644 --- a/etc/api/jobs/v3p1beta1/jobs-api.json +++ b/etc/api/jobs/v3p1beta1/jobs-api.json @@ -681,7 +681,7 @@ } } }, - "revision": "20220211", + "revision": "20230120", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -897,7 +897,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { - "description": "Optional. 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.", + "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" }, @@ -1395,7 +1395,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1471,7 +1471,7 @@ "id": "HistogramQuery", "properties": { "histogramQuery": { - "description": "An expression specifies a histogram request against matching resources (for example, jobs) for searches. Expression syntax is a aggregation function call with histogram facets and other options. Available aggregation function calls are: * `count(string_histogram_facet)`: Count the number of matching entity, for each distinct attribute value. * `count(numeric_histogram_facet, list of buckets)`: Count the number of matching entity within each bucket. Data types: * Histogram facet: facet names with format a-zA-Z+. * String: string like \"any string with backslash escape for quote(\\\").\" * Number: whole number and floating point number like 10, -1 and -0.01. * List: list of elements with comma(,) separator surrounded by square brackets. For example, [1, 2, 3] and [\"one\", \"two\", \"three\"]. Built-in constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(start, end[, label]): bucket built-in function creates a bucket with range of start, end). Note that the end is exclusive. For example, bucket(1, MAX, \"positive number\") or bucket(1, 10). Job histogram facets: * company_id: histogram by [Job.distributor_company_id. * company_display_name: histogram by Job.company_display_name. * employment_type: histogram by Job.employment_types. For example, \"FULL_TIME\", \"PART_TIME\". * company_size: histogram by CompanySize, for example, \"SMALL\", \"MEDIUM\", \"BIG\". * publish_time_in_day: histogram by the Job.publish_time in days. Must specify list of numeric buckets in spec. * publish_time_in_month: histogram by the Job.publish_time in months. Must specify list of numeric buckets in spec. * publish_time_in_year: histogram by the Job.publish_time in years. Must specify list of numeric buckets in spec. * degree_type: histogram by the Job.degree_type. For example, \"Bachelors\", \"Masters\". * job_level: histogram by the Job.job_level. For example, \"Entry Level\". * country: histogram by the country code of jobs. For example, \"US\", \"FR\". * admin1: histogram by the admin1 code of jobs, which is a global placeholder referring to the state, province, or the particular term a country uses to define the geographic structure below the country level. For example, \"CA\", \"IL\". * city: histogram by a combination of the \"city name, admin1 code\". For example, \"Mountain View, CA\", \"New York, NY\". * admin1_country: histogram by a combination of the \"admin1 code, country\". For example, \"CA, US\", \"IL, US\". * city_coordinate: histogram by the city center's GPS coordinates (latitude and longitude). For example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, customers may need to refresh them periodically. * locale: histogram by the Job.language_code. For example, \"en-US\", \"fr-FR\". * language: histogram by the language subtag of the Job.language_code. For example, \"en\", \"fr\". * category: histogram by the JobCategory. For example, \"COMPUTER_AND_IT\", \"HEALTHCARE\". * base_compensation_unit: histogram by the CompensationUnit of base salary. For example, \"WEEKLY\", \"MONTHLY\". * base_compensation: histogram by the base salary. Must specify list of numeric buckets to group results by. * annualized_base_compensation: histogram by the base annualized salary. Must specify list of numeric buckets to group results by. * annualized_total_compensation: histogram by the total annualized salary. Must specify list of numeric buckets to group results by. * string_custom_attribute: histogram by string Job.custom_attributes. Values can be accessed via square bracket notations like string_custom_attribute[\"key1\"]. * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values can be accessed via square bracket notations like numeric_custom_attribute[\"key1\"]. Must specify list of numeric buckets to group results by. Example expressions: * count(admin1) * count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000), bucket(100000, MAX)]) * count(string_custom_attribute[\"some-string-custom-attribute\"]) * count(numeric_custom_attribute[\"some-numeric-custom-attribute\"], [bucket(MIN, 0, \"negative\"), bucket(0, MAX, \"non-negative\")])", + "description": "An expression specifies a histogram request against matching resources (for example, jobs) for searches. Expression syntax is a aggregation function call with histogram facets and other options. Available aggregation function calls are: * `count(string_histogram_facet)`: Count the number of matching entity, for each distinct attribute value. * `count(numeric_histogram_facet, list of buckets)`: Count the number of matching entity within each bucket. A maximum of 200 histogram buckets are supported. Data types: * Histogram facet: facet names with format a-zA-Z+. * String: string like \"any string with backslash escape for quote(\\\").\" * Number: whole number and floating point number like 10, -1 and -0.01. * List: list of elements with comma(,) separator surrounded by square brackets. For example, [1, 2, 3] and [\"one\", \"two\", \"three\"]. Built-in constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(start, end[, label]): bucket built-in function creates a bucket with range of start, end). Note that the end is exclusive. For example, bucket(1, MAX, \"positive number\") or bucket(1, 10). Job histogram facets: * company_id: histogram by [Job.distributor_company_id. * company_display_name: histogram by Job.company_display_name. * employment_type: histogram by Job.employment_types. For example, \"FULL_TIME\", \"PART_TIME\". * company_size (DEPRECATED): histogram by CompanySize, for example, \"SMALL\", \"MEDIUM\", \"BIG\". * publish_time_in_day: histogram by the Job.publish_time in days. Must specify list of numeric buckets in spec. * publish_time_in_month: histogram by the Job.publish_time in months. Must specify list of numeric buckets in spec. * publish_time_in_year: histogram by the Job.publish_time in years. Must specify list of numeric buckets in spec. * degree_type: histogram by the Job.degree_type. For example, \"Bachelors\", \"Masters\". * job_level: histogram by the Job.job_level. For example, \"Entry Level\". * country: histogram by the country code of jobs. For example, \"US\", \"FR\". * admin1: histogram by the admin1 code of jobs, which is a global placeholder referring to the state, province, or the particular term a country uses to define the geographic structure below the country level. For example, \"CA\", \"IL\". * city: histogram by a combination of the \"city name, admin1 code\". For example, \"Mountain View, CA\", \"New York, NY\". * admin1_country: histogram by a combination of the \"admin1 code, country\". For example, \"CA, US\", \"IL, US\". * city_coordinate: histogram by the city center's GPS coordinates (latitude and longitude). For example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, customers may need to refresh them periodically. * locale: histogram by the Job.language_code. For example, \"en-US\", \"fr-FR\". * language: histogram by the language subtag of the Job.language_code. For example, \"en\", \"fr\". * category: histogram by the JobCategory. For example, \"COMPUTER_AND_IT\", \"HEALTHCARE\". * base_compensation_unit: histogram by the CompensationUnit of base salary. For example, \"WEEKLY\", \"MONTHLY\". * base_compensation: histogram by the base salary. Must specify list of numeric buckets to group results by. * annualized_base_compensation: histogram by the base annualized salary. Must specify list of numeric buckets to group results by. * annualized_total_compensation: histogram by the total annualized salary. Must specify list of numeric buckets to group results by. * string_custom_attribute: histogram by string Job.custom_attributes. Values can be accessed via square bracket notations like string_custom_attribute[\"key1\"]. * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values can be accessed via square bracket notations like numeric_custom_attribute[\"key1\"]. Must specify list of numeric buckets to group results by. Example expressions: * count(admin1) * count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000), bucket(100000, MAX)]) * count(string_custom_attribute[\"some-string-custom-attribute\"]) * count(numeric_custom_attribute[\"some-numeric-custom-attribute\"], [bucket(MIN, 0, \"negative\"), bucket(0, MAX, \"non-negative\")])", "type": "string" } }, @@ -1998,7 +1998,7 @@ "description": "Optional. Allows filtering jobs by commute time with different travel methods (for example, driving or public transit). Note: This only works with COMMUTE MODE. When specified, [JobQuery.location_filters] is ignored. Currently we don't support sorting by commute time." }, "companyDisplayNames": { - "description": "Optional. This filter specifies the exact company display name of the jobs to search against. If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", + "description": "Optional. This filter specifies the company Company.display_name of the jobs to search against. The company name must match the value exactly. Alternatively, the value being searched for can be wrapped in different match operators. `SUBSTRING_MATCH([value])` The company name must contain a case insensitive substring match of the value. Using this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)` `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word token and the company name must contain a case insensitive match of the value. Using this function may increase latency. Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", "items": { "type": "string" }, @@ -2298,16 +2298,18 @@ "type": "string" }, "telecommutePreference": { - "description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location. Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not searched. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", + "description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location). Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have additional Job.addresses may still be matched based on other location filters using address or latlng. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", "enum": [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", - "TELECOMMUTE_ALLOWED" + "TELECOMMUTE_ALLOWED", + "TELECOMMUTE_JOBS_EXCLUDED" ], "enumDescriptions": [ "Default value if the telecommute preference is not specified.", - "Exclude telecommute jobs.", - "Allow telecommute jobs." + "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", + "Allow telecommute jobs.", + "Exclude telecommute jobs." ], "type": "string" } @@ -2377,7 +2379,7 @@ "type": "object" }, "NamespacedDebugInput": { - "description": "Next ID: 15", + "description": "Next ID: 16", "id": "NamespacedDebugInput", "properties": { "absolutelyForcedExpNames": { @@ -2425,7 +2427,7 @@ "type": "array" }, "disableAutomaticEnrollmentSelection": { - "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments.", + "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableExpNames": { @@ -2451,11 +2453,11 @@ "type": "array" }, "disableManualEnrollmentSelection": { - "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments.", + "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableOrganicSelection": { - "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem.", + "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "forcedFlags": { @@ -2471,6 +2473,20 @@ }, "description": "Rollouts to force in a particular experiment state. Map from rollout name to rollout value.", "type": "object" + }, + "testingMode": { + "description": "Sets different testing modes. See the documentation in the TestingMode message for more information.", + "enum": [ + "TESTING_MODE_UNSPECIFIED", + "TESTING_MODE_ALL_OFF", + "TESTING_MODE_ALL_ON" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" } }, "type": "object" @@ -2554,7 +2570,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -2592,7 +2608,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { diff --git a/etc/api/jobs/v4/jobs-api.json b/etc/api/jobs/v4/jobs-api.json index 8cf087a0d0..a5b4c9c3b6 100644 --- a/etc/api/jobs/v4/jobs-api.json +++ b/etc/api/jobs/v4/jobs-api.json @@ -903,7 +903,7 @@ } } }, - "revision": "20220211", + "revision": "20230120", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { @@ -1223,7 +1223,7 @@ "type": "string" }, "keywordSearchableJobCustomAttributes": { - "description": "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.", + "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" }, @@ -1599,7 +1599,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2060,7 +2060,7 @@ "type": "array" }, "companyDisplayNames": { - "description": "This filter specifies the exact company Company.display_name of the jobs to search against. If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", + "description": "This filter specifies the company Company.display_name of the jobs to search against. The company name must match the value exactly. Alternatively, the value being searched for can be wrapped in different match operators. `SUBSTRING_MATCH([value])` The company name must contain a case insensitive substring match of the value. Using this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)` `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word token and the company name must contain a case insensitive match of the value. Using this function may increase latency. Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", "items": { "type": "string" }, @@ -2390,16 +2390,18 @@ "type": "string" }, "telecommutePreference": { - "description": "Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location. Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not searched. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response. This field is only used for job search requests.", + "description": "Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location). Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have additional Job.addresses may still be matched based on other location filters using address or latlng. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response. This field is only used for job search requests.", "enum": [ "TELECOMMUTE_PREFERENCE_UNSPECIFIED", "TELECOMMUTE_EXCLUDED", - "TELECOMMUTE_ALLOWED" + "TELECOMMUTE_ALLOWED", + "TELECOMMUTE_JOBS_EXCLUDED" ], "enumDescriptions": [ "Default value if the telecommute preference isn't specified.", - "Exclude telecommute jobs.", - "Allow telecommute jobs." + "Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", + "Allow telecommute jobs.", + "Exclude telecommute jobs." ], "type": "string" } @@ -2469,7 +2471,7 @@ "type": "object" }, "NamespacedDebugInput": { - "description": "Next ID: 15", + "description": "Next ID: 16", "id": "NamespacedDebugInput", "properties": { "absolutelyForcedExpNames": { @@ -2517,7 +2519,7 @@ "type": "array" }, "disableAutomaticEnrollmentSelection": { - "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments.", + "description": "If true, disable automatic enrollment selection (at all diversion points). Automatic enrollment selection means experiment selection process based on the experiment's automatic enrollment condition. This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableExpNames": { @@ -2543,11 +2545,11 @@ "type": "array" }, "disableManualEnrollmentSelection": { - "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments.", + "description": "If true, disable manual enrollment selection (at all diversion points). Manual enrollment selection means experiment selection process based on the request's manual enrollment states (a.k.a. opt-in experiments). This does not disable selection of forced experiments. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "disableOrganicSelection": { - "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem.", + "description": "If true, disable organic experiment selection (at all diversion points). Organic selection means experiment selection process based on traffic allocation and diversion condition evaluation. This does not disable selection of forced experiments. This is useful in cases when it is not known whether experiment selection behavior is responsible for a error or breakage. Disabling organic selection may help to isolate the cause of a given problem. Setting this field to false does not change anything in the experiment selection process.", "type": "boolean" }, "forcedFlags": { @@ -2563,6 +2565,20 @@ }, "description": "Rollouts to force in a particular experiment state. Map from rollout name to rollout value.", "type": "object" + }, + "testingMode": { + "description": "Sets different testing modes. See the documentation in the TestingMode message for more information.", + "enum": [ + "TESTING_MODE_UNSPECIFIED", + "TESTING_MODE_ALL_OFF", + "TESTING_MODE_ALL_ON" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" } }, "type": "object" @@ -2603,7 +2619,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { @@ -2641,7 +2657,7 @@ "type": "array" }, "regionCode": { - "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See http://cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", + "description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", "type": "string" }, "revision": { @@ -2760,7 +2776,7 @@ "type": "boolean" }, "histogramQueries": { - "description": "An expression specifies a histogram request against matching jobs. Expression syntax is an aggregation function call with histogram facets and other options. Available aggregation function calls are: * `count(string_histogram_facet)`: Count the number of matching entities, for each distinct attribute value. * `count(numeric_histogram_facet, list of buckets)`: Count the number of matching entities within each bucket. Data types: * Histogram facet: facet names with format `a-zA-Z+`. * String: string like \"any string with backslash escape for quote(\\\").\" * Number: whole number and floating point number like 10, -1 and -0.01. * List: list of elements with comma(,) separator surrounded by square brackets, for example, [1, 2, 3] and [\"one\", \"two\", \"three\"]. Built-in constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(start, end[, label]): bucket built-in function creates a bucket with range of start, end). Note that the end is exclusive, for example, bucket(1, MAX, \"positive number\") or bucket(1, 10). Job histogram facets: * company_display_name: histogram by [Job.company_display_name. * employment_type: histogram by Job.employment_types, for example, \"FULL_TIME\", \"PART_TIME\". * company_size: histogram by CompanySize, for example, \"SMALL\", \"MEDIUM\", \"BIG\". * publish_time_in_day: histogram by the Job.posting_publish_time in days. Must specify list of numeric buckets in spec. * publish_time_in_month: histogram by the Job.posting_publish_time in months. Must specify list of numeric buckets in spec. * publish_time_in_year: histogram by the Job.posting_publish_time in years. Must specify list of numeric buckets in spec. * degree_types: histogram by the Job.degree_types, for example, \"Bachelors\", \"Masters\". * job_level: histogram by the Job.job_level, for example, \"Entry Level\". * country: histogram by the country code of jobs, for example, \"US\", \"FR\". * admin1: histogram by the admin1 code of jobs, which is a global placeholder referring to the state, province, or the particular term a country uses to define the geographic structure below the country level, for example, \"CA\", \"IL\". * city: histogram by a combination of the \"city name, admin1 code\". For example, \"Mountain View, CA\", \"New York, NY\". * admin1_country: histogram by a combination of the \"admin1 code, country\", for example, \"CA, US\", \"IL, US\". * city_coordinate: histogram by the city center's GPS coordinates (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, customers may need to refresh them periodically. * locale: histogram by the Job.language_code, for example, \"en-US\", \"fr-FR\". * language: histogram by the language subtag of the Job.language_code, for example, \"en\", \"fr\". * category: histogram by the JobCategory, for example, \"COMPUTER_AND_IT\", \"HEALTHCARE\". * base_compensation_unit: histogram by the CompensationInfo.CompensationUnit of base salary, for example, \"WEEKLY\", \"MONTHLY\". * base_compensation: histogram by the base salary. Must specify list of numeric buckets to group results by. * annualized_base_compensation: histogram by the base annualized salary. Must specify list of numeric buckets to group results by. * annualized_total_compensation: histogram by the total annualized salary. Must specify list of numeric buckets to group results by. * string_custom_attribute: histogram by string Job.custom_attributes. Values can be accessed via square bracket notations like string_custom_attribute[\"key1\"]. * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values can be accessed via square bracket notations like numeric_custom_attribute[\"key1\"]. Must specify list of numeric buckets to group results by. Example expressions: * `count(admin1)` * `count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000), bucket(100000, MAX)])` * `count(string_custom_attribute[\"some-string-custom-attribute\"])` * `count(numeric_custom_attribute[\"some-numeric-custom-attribute\"], [bucket(MIN, 0, \"negative\"), bucket(0, MAX, \"non-negative\")])`", + "description": "An expression specifies a histogram request against matching jobs. Expression syntax is an aggregation function call with histogram facets and other options. Available aggregation function calls are: * `count(string_histogram_facet)`: Count the number of matching entities, for each distinct attribute value. * `count(numeric_histogram_facet, list of buckets)`: Count the number of matching entities within each bucket. A maximum of 200 histogram buckets are supported. Data types: * Histogram facet: facet names with format `a-zA-Z+`. * String: string like \"any string with backslash escape for quote(\\\").\" * Number: whole number and floating point number like 10, -1 and -0.01. * List: list of elements with comma(,) separator surrounded by square brackets, for example, [1, 2, 3] and [\"one\", \"two\", \"three\"]. Built-in constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(start, end[, label]): bucket built-in function creates a bucket with range of start, end). Note that the end is exclusive, for example, bucket(1, MAX, \"positive number\") or bucket(1, 10). Job histogram facets: * company_display_name: histogram by [Job.company_display_name. * employment_type: histogram by Job.employment_types, for example, \"FULL_TIME\", \"PART_TIME\". * company_size (DEPRECATED): histogram by CompanySize, for example, \"SMALL\", \"MEDIUM\", \"BIG\". * publish_time_in_day: histogram by the Job.posting_publish_time in days. Must specify list of numeric buckets in spec. * publish_time_in_month: histogram by the Job.posting_publish_time in months. Must specify list of numeric buckets in spec. * publish_time_in_year: histogram by the Job.posting_publish_time in years. Must specify list of numeric buckets in spec. * degree_types: histogram by the Job.degree_types, for example, \"Bachelors\", \"Masters\". * job_level: histogram by the Job.job_level, for example, \"Entry Level\". * country: histogram by the country code of jobs, for example, \"US\", \"FR\". * admin1: histogram by the admin1 code of jobs, which is a global placeholder referring to the state, province, or the particular term a country uses to define the geographic structure below the country level, for example, \"CA\", \"IL\". * city: histogram by a combination of the \"city name, admin1 code\". For example, \"Mountain View, CA\", \"New York, NY\". * admin1_country: histogram by a combination of the \"admin1 code, country\", for example, \"CA, US\", \"IL, US\". * city_coordinate: histogram by the city center's GPS coordinates (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, customers may need to refresh them periodically. * locale: histogram by the Job.language_code, for example, \"en-US\", \"fr-FR\". * language: histogram by the language subtag of the Job.language_code, for example, \"en\", \"fr\". * category: histogram by the JobCategory, for example, \"COMPUTER_AND_IT\", \"HEALTHCARE\". * base_compensation_unit: histogram by the CompensationInfo.CompensationUnit of base salary, for example, \"WEEKLY\", \"MONTHLY\". * base_compensation: histogram by the base salary. Must specify list of numeric buckets to group results by. * annualized_base_compensation: histogram by the base annualized salary. Must specify list of numeric buckets to group results by. * annualized_total_compensation: histogram by the total annualized salary. Must specify list of numeric buckets to group results by. * string_custom_attribute: histogram by string Job.custom_attributes. Values can be accessed via square bracket notations like string_custom_attribute[\"key1\"]. * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values can be accessed via square bracket notations like numeric_custom_attribute[\"key1\"]. Must specify list of numeric buckets to group results by. Example expressions: * `count(admin1)` * `count(base_compensation, [bucket(1000, 10000), bucket(10000, 100000), bucket(100000, MAX)])` * `count(string_custom_attribute[\"some-string-custom-attribute\"])` * `count(numeric_custom_attribute[\"some-numeric-custom-attribute\"], [bucket(MIN, 0, \"negative\"), bucket(0, MAX, \"non-negative\")])`", "items": { "$ref": "HistogramQuery" }, diff --git a/etc/api/keep/v1/keep-api.json b/etc/api/keep/v1/keep-api.json index cd25c67cab..6f0bdc265c 100644 --- a/etc/api/keep/v1/keep-api.json +++ b/etc/api/keep/v1/keep-api.json @@ -15,7 +15,7 @@ "baseUrl": "https://keep.googleapis.com/", "batchPath": "batch", "canonicalName": "Keep", - "description": "This API is an enterprise-only API used to create and manage the Keep notes within your domain, including resolving issues identified by CASB software.", + "description": "The Google Keep API is used in an enterprise environment to manage Google Keep content and resolve issues identified by cloud security software.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/keep/api", "fullyEncodeReservedExpansion": true, @@ -314,7 +314,7 @@ } } }, - "revision": "20220301", + "revision": "20230117", "rootUrl": "https://keep.googleapis.com/", "schemas": { "Attachment": { @@ -393,7 +393,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/kgsearch/v1/kgsearch-api.json b/etc/api/kgsearch/v1/kgsearch-api.json index 1972f93fc5..9e728753d0 100644 --- a/etc/api/kgsearch/v1/kgsearch-api.json +++ b/etc/api/kgsearch/v1/kgsearch-api.json @@ -151,7 +151,7 @@ } } }, - "revision": "20220227", + "revision": "20230115", "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 725d8c91b4..3e108dbf13 100644 --- a/etc/api/language/v1/language-api.json +++ b/etc/api/language/v1/language-api.json @@ -227,7 +227,7 @@ } } }, - "revision": "20220218", + "revision": "20230121", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { @@ -511,10 +511,29 @@ }, "type": "object" }, + "ClassificationModelOptions": { + "description": "Model options available for classification requests.", + "id": "ClassificationModelOptions", + "properties": { + "v1Model": { + "$ref": "V1Model", + "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", + "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" + }, "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." + }, "document": { "$ref": "Document", "description": "Required. Input document." @@ -723,7 +742,7 @@ "type": "object" }, "Document": { - "description": "################################################################ # Represents the input to API methods.", + "description": "Represents the input to API methods.", "id": "Document", "properties": { "content": { @@ -856,6 +875,10 @@ "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", "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." + }, "classifyText": { "description": "Classify the full document into categories.", "type": "boolean" @@ -1243,6 +1266,33 @@ } }, "type": "object" + }, + "V1Model": { + "description": "Options for the V1 model.", + "id": "V1Model", + "properties": {}, + "type": "object" + }, + "V2Model": { + "description": "Options for the V2 model.", + "id": "V2Model", + "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" } }, "servicePath": "", diff --git a/etc/api/language/v1beta2/language-api.json b/etc/api/language/v1beta2/language-api.json index d992723fd1..369998b284 100644 --- a/etc/api/language/v1beta2/language-api.json +++ b/etc/api/language/v1beta2/language-api.json @@ -227,7 +227,7 @@ } } }, - "revision": "20220218", + "revision": "20230121", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { @@ -511,10 +511,29 @@ }, "type": "object" }, + "ClassificationModelOptions": { + "description": "Model options available for classification requests.", + "id": "ClassificationModelOptions", + "properties": { + "v1Model": { + "$ref": "V1Model", + "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", + "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" + }, "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." + }, "document": { "$ref": "Document", "description": "Required. Input document." @@ -723,7 +742,7 @@ "type": "object" }, "Document": { - "description": "################################################################ # Represents the input to API methods.", + "description": "Represents the input to API methods.", "id": "Document", "properties": { "boilerplateHandling": { @@ -871,9 +890,13 @@ "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: 10", + "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", "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." + }, "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" @@ -1261,6 +1284,33 @@ } }, "type": "object" + }, + "V1Model": { + "description": "Options for the V1 model.", + "id": "V1Model", + "properties": {}, + "type": "object" + }, + "V2Model": { + "description": "Options for the V2 model.", + "id": "V2Model", + "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" } }, "servicePath": "", diff --git a/etc/api/libraryagent/v1/libraryagent-api.json b/etc/api/libraryagent/v1/libraryagent-api.json index 616c38416f..be5b15befb 100644 --- a/etc/api/libraryagent/v1/libraryagent-api.json +++ b/etc/api/libraryagent/v1/libraryagent-api.json @@ -279,7 +279,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "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 753de0ad7e..89ad8ea98f 100644 --- a/etc/api/licensing/v1/licensing-api.json +++ b/etc/api/licensing/v1/licensing-api.json @@ -11,7 +11,7 @@ "basePath": "", "baseUrl": "https://licensing.googleapis.com/", "batchPath": "batch", - "description": "The Google Enterprise License Manager API's allows you to license apps for all the users of a domain managed by you.", + "description": "The Google Enterprise License Manager API lets you manage Google Workspace and related licenses for all users of a customer that you manage.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/admin-sdk/licensing/", "fullyEncodeReservedExpansion": true, @@ -227,7 +227,7 @@ ], "parameters": { "customerId": { - "description": "Customer's `customerId`. A previous version of this API accepted the primary domain name as a value for this field. If the customer is suspended, the server returns an error.", + "description": "The customer's unique ID as defined in the Admin console, such as `C00000000`. If the customer is suspended, the server returns an error.", "location": "query", "required": true, "type": "string" @@ -274,7 +274,7 @@ ], "parameters": { "customerId": { - "description": "Customer's `customerId`. A previous version of this API accepted the primary domain name as a value for this field. If the customer is suspended, the server returns an error.", + "description": "The customer's unique ID as defined in the Admin console, such as `C00000000`. If the customer is suspended, the server returns an error.", "location": "query", "required": true, "type": "string" @@ -400,11 +400,11 @@ } } }, - "revision": "20220305", + "revision": "20230121", "rootUrl": "https://licensing.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/lifesciences/v2beta/lifesciences-api.json b/etc/api/lifesciences/v2beta/lifesciences-api.json index a289389ba9..8b91c3b7d0 100644 --- a/etc/api/lifesciences/v2beta/lifesciences-api.json +++ b/etc/api/lifesciences/v2beta/lifesciences-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -312,7 +312,7 @@ } } }, - "revision": "20220211", + "revision": "20230106", "rootUrl": "https://lifesciences.googleapis.com/", "schemas": { "Accelerator": { @@ -541,7 +541,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -643,7 +643,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", diff --git a/etc/api/localservices/v1/localservices-api.json b/etc/api/localservices/v1/localservices-api.json index e7d1e133c7..8c59d25750 100644 --- a/etc/api/localservices/v1/localservices-api.json +++ b/etc/api/localservices/v1/localservices-api.json @@ -3,7 +3,7 @@ "oauth2": { "scopes": { "https://www.googleapis.com/auth/adwords": { - "description": "Manage your AdWords campaigns" + "description": "See, edit, create, and delete your Google Ads accounts and data." } } } @@ -250,7 +250,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://localservices.googleapis.com/", "schemas": { "GoogleAdsHomeservicesLocalservicesV1AccountReport": { diff --git a/etc/api/logging/v2/logging-api.json b/etc/api/logging/v2/logging-api.json index a3c31ee1cc..5f7eaeeb62 100644 --- a/etc/api/logging/v2/logging-api.json +++ b/etc/api/logging/v2/logging-api.json @@ -177,72 +177,6 @@ } }, "resources": { - "buckets": { - "methods": { - "get": { - "description": "Gets a log bucket.", - "flatPath": "v2/billingAccounts/{billingAccountsId}/buckets/{bucketsId}", - "httpMethod": "GET", - "id": "logging.billingAccounts.buckets.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the bucket: \"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/[^/]+/buckets/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}", - "response": { - "$ref": "LogBucket" - }, - "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" - ] - } - }, - "resources": { - "views": { - "methods": { - "get": { - "description": "Gets a view on a log bucket..", - "flatPath": "v2/billingAccounts/{billingAccountsId}/buckets/{bucketsId}/views/{viewsId}", - "httpMethod": "GET", - "id": "logging.billingAccounts.buckets.views.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the policy: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket/views/my-view\"", - "location": "path", - "pattern": "^billingAccounts/[^/]+/buckets/[^/]+/views/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}", - "response": { - "$ref": "LogView" - }, - "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" - ] - } - } - } - } - }, "exclusions": { "methods": { "create": { @@ -542,6 +476,34 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "get": { + "description": "Gets a log bucket.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.buckets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the bucket: \"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" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "LogBucket" + }, + "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 log buckets.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets", @@ -666,7 +628,7 @@ "type": "string" }, "viewId": { - "description": "Required. The id to use for this view.", + "description": "Required. A client-assigned identifier such as \"my-view\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", "location": "query", "type": "string" } @@ -709,6 +671,34 @@ "https://www.googleapis.com/auth/logging.admin" ] }, + "get": { + "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", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the policy: \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\" For example:\"projects/my-project/locations/global/buckets/my-bucket/views/my-view\"", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/buckets/[^/]+/views/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "LogView" + }, + "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 views on a log bucket.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/views", @@ -783,6 +773,57 @@ "https://www.googleapis.com/auth/logging.admin" ] } + }, + "resources": { + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", + "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}/logs", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.buckets.views.logs.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 name that owns the logs: 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]", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v2/{+parent}/logs", + "response": { + "$ref": "ListLogsResponse" + }, + "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" + ] + } + } + } } } } @@ -818,6 +859,34 @@ "https://www.googleapis.com/auth/logging.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": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "logging.billingAccounts.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+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/logging.admin", + "https://www.googleapis.com/auth/logging.read" + ] + }, "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.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/operations", @@ -941,38 +1010,6 @@ } } }, - "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": "v2/billingAccounts/{billingAccountsId}/operations/{operationsId}", - "httpMethod": "GET", - "id": "logging.billingAccounts.operations.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "location": "path", - "pattern": "^billingAccounts/[^/]+/operations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+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/logging.admin", - "https://www.googleapis.com/auth/logging.read" - ] - } - } - }, "sinks": { "methods": { "create": { @@ -1978,7 +2015,7 @@ "type": "string" }, "viewId": { - "description": "Required. The id to use for this view.", + "description": "Required. A client-assigned identifier such as \"my-view\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", "location": "query", "type": "string" } @@ -2123,6 +2160,57 @@ "https://www.googleapis.com/auth/logging.admin" ] } + }, + "resources": { + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", + "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}/logs", + "httpMethod": "GET", + "id": "logging.folders.locations.buckets.views.logs.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 name that owns the logs: 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]", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v2/{+parent}/logs", + "response": { + "$ref": "ListLogsResponse" + }, + "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" + ] + } + } + } } } } @@ -2812,7 +2900,7 @@ "type": "string" }, "viewId": { - "description": "Required. The id to use for this view.", + "description": "Required. A client-assigned identifier such as \"my-view\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", "location": "query", "type": "string" } @@ -3758,7 +3846,7 @@ "type": "string" }, "viewId": { - "description": "Required. The id to use for this view.", + "description": "Required. A client-assigned identifier such as \"my-view\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", "location": "query", "type": "string" } @@ -3903,6 +3991,57 @@ "https://www.googleapis.com/auth/logging.admin" ] } + }, + "resources": { + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}/logs", + "httpMethod": "GET", + "id": "logging.organizations.locations.buckets.views.logs.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 name that owns the logs: 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]", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v2/{+parent}/logs", + "response": { + "$ref": "ListLogsResponse" + }, + "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" + ] + } + } + } } } } @@ -4813,7 +4952,7 @@ "type": "string" }, "viewId": { - "description": "Required. The id to use for this view.", + "description": "Required. A client-assigned identifier such as \"my-view\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", "location": "query", "type": "string" } @@ -4958,6 +5097,57 @@ "https://www.googleapis.com/auth/logging.admin" ] } + }, + "resources": { + "logs": { + "methods": { + "list": { + "description": "Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}/logs", + "httpMethod": "GET", + "id": "logging.projects.locations.buckets.views.logs.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 name that owns the logs: 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]", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v2/{+parent}/logs", + "response": { + "$ref": "ListLogsResponse" + }, + "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" + ] + } + } + } } } } @@ -5817,7 +6007,7 @@ } } }, - "revision": "20220225", + "revision": "20230104", "rootUrl": "https://logging.googleapis.com/", "schemas": { "BigQueryOptions": { @@ -5869,6 +6059,10 @@ "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.", "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.", + "type": "string" + }, "name": { "description": "Output only. The resource name of the CMEK settings.", "readOnly": true, @@ -5970,7 +6164,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -6084,6 +6278,37 @@ }, "type": "object" }, + "IndexConfig": { + "description": "Configuration for an indexed field.", + "id": "IndexConfig", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the index was last modified.This is used to return the timestamp, and will be ignored if supplied during update.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "fieldPath": { + "description": "Required. The LogEntry field path to index.Note that some paths are automatically indexed, and other paths are not eligible for indexing. See indexing documentation( https://cloud.google.com/logging/docs/view/advanced-queries#indexed-fields) for details.For example: jsonPayload.request.status", + "type": "string" + }, + "type": { + "description": "Required. The type of data in this index.", + "enum": [ + "INDEX_TYPE_UNSPECIFIED", + "INDEX_TYPE_STRING", + "INDEX_TYPE_INTEGER" + ], + "enumDescriptions": [ + "The index's type is unspecified.", + "The index is a string-type index.", + "The index is a integer-type index." + ], + "type": "string" + } + }, + "type": "object" + }, "LabelDescriptor": { "description": "A description of a label.", "id": "LabelDescriptor", @@ -6194,7 +6419,7 @@ "id": "ListLogEntriesRequest", "properties": { "filter": { - "description": "Optional. A filter that chooses which log entries to return. See Advanced Logs Queries (https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries 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 the filter is 20000 characters.", + "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.", "type": "string" }, "orderBy": { @@ -6405,6 +6630,13 @@ "description": "Describes this bucket.", "type": "string" }, + "indexConfigs": { + "description": "A list of indexed fields and related configuration data.", + "items": { + "$ref": "IndexConfig" + }, + "type": "array" + }, "lifecycleState": { "description": "Output only. The bucket lifecycle state.", "enum": [ @@ -6539,7 +6771,7 @@ "description": "Optional. Source code location information associated with the log entry, if any." }, "spanId": { - "description": "Optional. The span ID within the trace associated with the log entry.For Trace spans, this is the same format that the Trace API v2 uses: a 16-character hexadecimal encoding of an 8-byte array, such as 000000000000004a.", + "description": "Optional. The ID of the Cloud Trace (https://cloud.google.com/trace) span associated with the current operation in which the log is being written. For example, if a span has the REST resource name of \"projects/some-project/traces/some-trace/spans/some-span-id\", then the span_id field is \"some-span-id\".A Span (https://cloud.google.com/trace/docs/reference/v2/rest/v2/projects.traces/batchWrite#Span) represents a single operation within a trace. Whereas a trace may involve multiple different microservices running on multiple different machines, a span generally corresponds to a single logical operation being performed in a single instance of a microservice on one specific machine. Spans are the nodes within the tree that is a trace.Applications that are instrumented for tracing (https://cloud.google.com/trace/docs/setup) will generally assign a new, unique span ID on each incoming request. It is also common to create and record additional spans corresponding to internal processing elements as well as issuing requests to dependencies.The span ID is expected to be a 16-character, hexadecimal encoding of an 8-byte array and should not be zero. It should be unique within the trace and should, ideally, be generated in a manner that is uniformly random.Example values: 000000000000004a 7a2190356c3fc94b 0000f00300090021 d39223e101960076", "type": "string" }, "split": { @@ -6556,7 +6788,7 @@ "type": "string" }, "trace": { - "description": "Optional. Resource name of the trace associated with the log entry, if any. If it contains a relative resource name, the name is assumed to be relative to //tracing.googleapis.com. Example: projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824", + "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.", "type": "string" }, "traceSampled": { @@ -6694,6 +6926,10 @@ "description": "Describes a logs-based metric. The value of the metric is the number of log entries that match a logs filter in a given time interval.Logs-based metrics can also be used to extract values from logs and create a distribution of the values. The distribution records the statistics of the extracted values along with an optional histogram of the values as specified by the bucket options.", "id": "LogMetric", "properties": { + "bucketName": { + "description": "Optional. The resource name of the Log Bucket that owns the Log Metric. Only Log Buckets in projects are supported. The bucket has to be in the same project as the metric.For example:projects/my-project/locations/global/buckets/my-bucketIf empty, then the Log Metric is considered a non-Bucket Log Metric.", + "type": "string" + }, "bucketOptions": { "$ref": "BucketOptions", "description": "Optional. The bucket_options are required when the logs-based metric is using a DISTRIBUTION value type and it describes the bucket boundaries used to create a histogram of the extracted values." @@ -6720,7 +6956,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. A map from a label key string to an extractor expression which is used to extract data from a log entry field and assign as the label value. Each label key specified in the LabelDescriptor must have an associated extractor expression in this map. The syntax of the extractor expression is the same as for the value_extractor field.The extracted value is converted to the type defined in the label descriptor. If the either the extraction or the type conversion fails, the label will have a default value. The default value for a string label is an empty string, for an integer label its 0, and for a boolean label its false.Note that there are upper bounds on the maximum number of labels and the number of active time series that are allowed in a project.", + "description": "Optional. A map from a label key string to an extractor expression which is used to extract data from a log entry field and assign as the label value. Each label key specified in the LabelDescriptor must have an associated extractor expression in this map. The syntax of the extractor expression is the same as for the value_extractor field.The extracted value is converted to the type defined in the label descriptor. If either the extraction or the type conversion fails, the label will have a default value. The default value for a string label is an empty string, for an integer label its 0, and for a boolean label its false.Note that there are upper bounds on the maximum number of labels and the number of active time series that are allowed in a project.", "type": "object" }, "metricDescriptor": { @@ -6738,7 +6974,7 @@ "type": "string" }, "valueExtractor": { - "description": "Optional. A value_extractor is required when using a distribution logs-based metric to extract the values to record from a log entry. Two functions are supported for value extraction: EXTRACT(field) or REGEXP_EXTRACT(field, regex). The argument are: 1. field: The name of the log entry field from which the value is to be extracted. 2. regex: A regular expression using the Google RE2 syntax (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified log entry field. The value of the field is converted to a string before applying the regex. It is an error to specify a regex that does not include exactly one capture group.The result of the extraction must be convertible to a double type, as the distribution always records double values. If either the extraction or the conversion to double fails, then those values are not recorded in the distribution.Example: REGEXP_EXTRACT(jsonPayload.request, \".*quantity=(\\d+).*\")", + "description": "Optional. A value_extractor is required when using a distribution logs-based metric to extract the values to record from a log entry. Two functions are supported for value extraction: EXTRACT(field) or REGEXP_EXTRACT(field, regex). The arguments are: field: The name of the log entry field from which the value is to be extracted. regex: A regular expression using the Google RE2 syntax (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified log entry field. The value of the field is converted to a string before applying the regex. It is an error to specify a regex that does not include exactly one capture group.The result of the extraction must be convertible to a double type, as the distribution always records double values. If either the extraction or the conversion to double fails, then those values are not recorded in the distribution.Example: REGEXP_EXTRACT(jsonPayload.request, \".*quantity=(\\d+).*\")", "type": "string" }, "version": { @@ -6822,7 +7058,7 @@ "type": "string" }, "writerIdentity": { - "description": "Output only. An IAM identity\u2014a service account or group\u2014under which Cloud Logging writes the exported log entries to the sink's destination. This field is set by sinks.create and sinks.update based on the value of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting Access for a Resource (https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.Sinks that have a destination that is a log bucket in the same project as the sink do not have a writer_identity and no additional permissions are required.", + "description": "Output only. An IAM identity\u2014a service account or group\u2014under which Cloud Logging writes the exported log entries to the sink's destination. This field is either set by specifying custom_writer_identity or set automatically by sinks.create and sinks.update based on the value of unique_writer_identity in those methods.Until you grant this identity write-access to the destination, log entry exports from this sink will fail. For more information, see Granting Access for a Resource (https://cloud.google.com/iam/docs/granting-roles-to-service-accounts#granting_access_to_a_service_account_for_a_resource). Consult the destination service's documentation to determine the appropriate IAM roles to assign to the identity.Sinks that have a destination that is a log bucket in the same project as the sink cannot have a writer_identity and no additional permissions are required.", "readOnly": true, "type": "string" } @@ -7267,6 +7503,10 @@ }, "type": "array" }, + "spanId": { + "description": "Stackdriver Trace span identifier for this request.", + "type": "string" + }, "startTime": { "description": "Time when the request started.", "format": "google-datetime", @@ -7439,7 +7679,7 @@ "type": "string" }, "filter": { - "description": "Optional. A filter that chooses which log entries to return. See Advanced Logs Filters (https://cloud.google.com/logging/docs/view/advanced_filters). 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 in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.", + "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.", "type": "string" }, "resourceNames": { @@ -7506,7 +7746,7 @@ "type": "string" }, "partialSuccess": { - "description": "Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.", + "description": "Optional. Whether a batch's valid entries should be written even if some other entry failed due to a permanent error such as INVALID_ARGUMENT or PERMISSION_DENIED. If any entry failed, then the response status is the response status of one of the failed entries. The response will include error details in WriteLogEntriesPartialErrors.log_entry_errors keyed by the entries' zero-based index in the entries. Failed requests for which no entries are written will not include per-entry errors.", "type": "boolean" }, "resource": { diff --git a/etc/api/managedidentities/v1/managedidentities-api.json b/etc/api/managedidentities/v1/managedidentities-api.json index cc47914aad..1ee94110e2 100644 --- a/etc/api/managedidentities/v1/managedidentities-api.json +++ b/etc/api/managedidentities/v1/managedidentities-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -295,6 +295,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "extendSchema": { + "description": "Extend Schema for Domain", + "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}:extendSchema", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.extendSchema", + "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}:extendSchema", + "request": { + "$ref": "ExtendSchemaRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets information about a domain.", "flatPath": "v1/projects/{projectsId}/locations/global/domains/{domainsId}", @@ -336,7 +364,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -550,7 +578,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -578,7 +606,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -761,7 +789,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -866,7 +894,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -894,7 +922,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -1215,7 +1243,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1320,7 +1348,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1348,7 +1376,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1375,7 +1403,7 @@ } } }, - "revision": "20220216", + "revision": "20221227", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1468,7 +1496,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1535,7 +1563,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1686,7 +1714,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1714,6 +1742,26 @@ }, "type": "object" }, + "ExtendSchemaRequest": { + "description": "ExtendSchemaRequest is the request message for ExtendSchema method.", + "id": "ExtendSchemaRequest", + "properties": { + "description": { + "description": "Required. Description for Schema Change.", + "type": "string" + }, + "fileContents": { + "description": "File uploaded as a byte stream input.", + "format": "byte", + "type": "string" + }, + "gcsPath": { + "description": "File stored in Cloud Storage bucket and represented in the form projects/{project_id}/buckets/{bucket_name}/objects/{object_name} File should be in the same project as the domain.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudManagedidentitiesV1OpMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudManagedidentitiesV1OpMetadata", @@ -1845,7 +1893,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -1859,7 +1907,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -1874,14 +1922,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -1999,7 +2047,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -2024,6 +2072,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -2309,7 +2371,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -2631,7 +2693,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -2712,7 +2774,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2871,12 +2933,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, diff --git a/etc/api/managedidentities/v1alpha1/managedidentities-api.json b/etc/api/managedidentities/v1alpha1/managedidentities-api.json index e8dc12a200..a6f0d5c824 100644 --- a/etc/api/managedidentities/v1alpha1/managedidentities-api.json +++ b/etc/api/managedidentities/v1alpha1/managedidentities-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -209,6 +209,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "checkMigrationPermission": { + "description": "AuditMigration API gets the current state of DomainMigration", + "flatPath": "v1alpha1/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": "v1alpha1/{+domain}:checkMigrationPermission", + "request": { + "$ref": "CheckMigrationPermissionRequest" + }, + "response": { + "$ref": "CheckMigrationPermissionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Microsoft AD Domain in a given project. Operation", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains", @@ -295,6 +323,118 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "disableMigration": { + "description": "Disable Domain Migration", + "flatPath": "v1alpha1/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": "v1alpha1/{+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": "v1alpha1/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": "v1alpha1/{+domain}:domainJoinMachine", + "request": { + "$ref": "DomainJoinMachineRequest" + }, + "response": { + "$ref": "DomainJoinMachineResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enableMigration": { + "description": "Enable Domain Migration", + "flatPath": "v1alpha1/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": "v1alpha1/{+domain}:enableMigration", + "request": { + "$ref": "EnableMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "extendSchema": { + "description": "Extend Schema for Domain", + "flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:extendSchema", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.extendSchema", + "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": "v1alpha1/{+domain}:extendSchema", + "request": { + "$ref": "ExtendSchemaRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single Domain.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}", @@ -336,7 +476,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -550,7 +690,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -578,7 +718,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -761,7 +901,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -866,7 +1006,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -894,7 +1034,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -1215,7 +1355,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1320,7 +1460,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1348,7 +1488,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1375,7 +1515,7 @@ } } }, - "revision": "20220216", + "revision": "20221227", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1398,6 +1538,10 @@ "readOnly": true, "type": "string" }, + "description": { + "description": "Optional. A short description of the backup.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -1439,12 +1583,14 @@ "enum": [ "TYPE_UNSPECIFIED", "ON_DEMAND", - "SCHEDULED" + "SCHEDULED", + "SCHEMA_EXTENSION" ], "enumDescriptions": [ + "Backup type not specified.", "Backup was manually created.", - "Backup was manually created.", - "Backup was automatically created." + "Backup was automatically created.", + "Backup was taken as part of Schema Extension request." ], "readOnly": true, "type": "string" @@ -1467,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1517,6 +1663,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", @@ -1534,7 +1716,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1584,6 +1766,12 @@ }, "type": "object" }, + "DisableMigrationRequest": { + "description": "DisableMigrationRequest is the request message for DisableMigration method.", + "id": "DisableMigrationRequest", + "properties": {}, + "type": "object" + }, "Domain": { "description": "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", @@ -1677,12 +1865,52 @@ }, "type": "object" }, + "DomainJoinMachineRequest": { + "description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", + "id": "DomainJoinMachineRequest", + "properties": { + "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); } 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": "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", @@ -1706,6 +1934,26 @@ }, "type": "object" }, + "ExtendSchemaRequest": { + "description": "ExtendSchemaRequest is the request message for ExtendSchema method.", + "id": "ExtendSchemaRequest", + "properties": { + "description": { + "description": "Required. Description for Schema Change.", + "type": "string" + }, + "fileContents": { + "description": "File uploaded as a byte stream input.", + "format": "byte", + "type": "string" + }, + "gcsPath": { + "description": "File stored in Cloud Storage bucket and represented in the form projects/{project_id}/buckets/{bucket_name}/objects/{object_name} File should be in the same project as the domain.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudManagedidentitiesV1OpMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudManagedidentitiesV1OpMetadata", @@ -1837,7 +2085,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -1851,7 +2099,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -1866,14 +2114,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -1991,7 +2239,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -2016,6 +2264,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -2300,7 +2562,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -2364,6 +2626,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", @@ -2656,7 +2958,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -2693,7 +2995,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2847,12 +3149,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, diff --git a/etc/api/managedidentities/v1beta1/managedidentities-api.json b/etc/api/managedidentities/v1beta1/managedidentities-api.json index 0bc152aa7c..30e679932e 100644 --- a/etc/api/managedidentities/v1beta1/managedidentities-api.json +++ b/etc/api/managedidentities/v1beta1/managedidentities-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -209,6 +209,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "checkMigrationPermission": { + "description": "CheckMigrationPermission API gets the current state of DomainMigration", + "flatPath": "v1beta1/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": "v1beta1/{+domain}:checkMigrationPermission", + "request": { + "$ref": "CheckMigrationPermissionRequest" + }, + "response": { + "$ref": "CheckMigrationPermissionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Microsoft AD domain.", "flatPath": "v1beta1/projects/{projectsId}/locations/global/domains", @@ -295,6 +323,118 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "disableMigration": { + "description": "Disable Domain Migration", + "flatPath": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+domain}:domainJoinMachine", + "request": { + "$ref": "DomainJoinMachineRequest" + }, + "response": { + "$ref": "DomainJoinMachineResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enableMigration": { + "description": "Enable Domain Migration", + "flatPath": "v1beta1/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": "v1beta1/{+domain}:enableMigration", + "request": { + "$ref": "EnableMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "extendSchema": { + "description": "Extend Schema for Domain", + "flatPath": "v1beta1/projects/{projectsId}/locations/global/domains/{domainsId}:extendSchema", + "httpMethod": "POST", + "id": "managedidentities.projects.locations.global.domains.extendSchema", + "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": "v1beta1/{+domain}:extendSchema", + "request": { + "$ref": "ExtendSchemaRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets information about a domain.", "flatPath": "v1beta1/projects/{projectsId}/locations/global/domains/{domainsId}", @@ -336,7 +476,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -550,7 +690,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -578,7 +718,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+$", "required": true, @@ -761,7 +901,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -866,7 +1006,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -894,7 +1034,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/domains/[^/]+/backups/[^/]+$", "required": true, @@ -1215,7 +1355,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1320,7 +1460,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1348,7 +1488,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/peerings/[^/]+$", "required": true, @@ -1375,7 +1515,7 @@ } } }, - "revision": "20220216", + "revision": "20221227", "rootUrl": "https://managedidentities.googleapis.com/", "schemas": { "AttachTrustRequest": { @@ -1399,6 +1539,10 @@ "readOnly": true, "type": "string" }, + "description": { + "description": "Optional. A short description of the backup.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -1440,12 +1584,14 @@ "enum": [ "TYPE_UNSPECIFIED", "ON_DEMAND", - "SCHEDULED" + "SCHEDULED", + "SCHEMA_EXTENSION" ], "enumDescriptions": [ + "Backup type not specified.", "Backup was manually created.", - "Backup was manually created.", - "Backup was automatically created." + "Backup was automatically created.", + "Backup was taken as part of Schema Extension request." ], "readOnly": true, "type": "string" @@ -1468,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1518,6 +1664,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", @@ -1535,7 +1717,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1586,6 +1768,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", @@ -1686,12 +1874,52 @@ }, "type": "object" }, + "DomainJoinMachineRequest": { + "description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", + "id": "DomainJoinMachineRequest", + "properties": { + "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" + }, + "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": "The response is the offline domain join blob that is returned after running the djoin command. To correctly use the response of the API, please refer to the sample usage.", + "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); } 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": "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", @@ -1715,6 +1943,26 @@ }, "type": "object" }, + "ExtendSchemaRequest": { + "description": "ExtendSchemaRequest is the request message for ExtendSchema method.", + "id": "ExtendSchemaRequest", + "properties": { + "description": { + "description": "Required. Description for Schema Change.", + "type": "string" + }, + "fileContents": { + "description": "File uploaded as a byte stream input.", + "format": "byte", + "type": "string" + }, + "gcsPath": { + "description": "File stored in Cloud Storage bucket and represented in the form projects/{project_id}/buckets/{bucket_name}/objects/{object_name} File should be in the same project as the domain.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudManagedidentitiesV1OpMetadata": { "description": "Represents the metadata of the long-running operation.", "id": "GoogleCloudManagedidentitiesV1OpMetadata", @@ -1846,7 +2094,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -1860,7 +2108,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -1875,14 +2123,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -2000,7 +2248,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -2025,6 +2273,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -2310,7 +2572,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -2374,6 +2636,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", @@ -2632,7 +2934,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -2713,7 +3015,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2872,12 +3174,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, diff --git a/etc/api/manufacturers/v1/manufacturers-api.json b/etc/api/manufacturers/v1/manufacturers-api.json index ea9f56bee1..65cfb8ed87 100644 --- a/etc/api/manufacturers/v1/manufacturers-api.json +++ b/etc/api/manufacturers/v1/manufacturers-api.json @@ -15,6 +15,7 @@ "description": "Public API for managing Manufacturer Center related data.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/manufacturers/", + "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" @@ -287,7 +288,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://manufacturers.googleapis.com/", "schemas": { "Attributes": { @@ -355,6 +356,10 @@ "description": "The target gender of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#gender.", "type": "string" }, + "grocery": { + "$ref": "Grocery", + "description": "Grocery Attributes. See more at https://support.google.com/manufacturers/answer/12098458#grocery." + }, "gtin": { "description": "The Global Trade Item Number (GTIN) of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#gtin.", "items": { @@ -385,6 +390,10 @@ "description": "The Manufacturer Part Number (MPN) of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#mpn.", "type": "string" }, + "nutrition": { + "$ref": "Nutrition", + "description": "Nutrition Attributes. See more at https://support.google.com/manufacturers/answer/12098458#food-servings." + }, "pattern": { "description": "The pattern of the product. For more information, see https://support.google.com/manufacturers/answer/6124116#pattern.", "type": "string" @@ -538,7 +547,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -562,6 +571,71 @@ }, "type": "object" }, + "FloatUnit": { + "description": "Combination of float amount and unit.", + "id": "FloatUnit", + "properties": { + "amount": { + "description": "amount.", + "format": "double", + "type": "number" + }, + "unit": { + "description": "unit.", + "type": "string" + } + }, + "type": "object" + }, + "Grocery": { + "id": "Grocery", + "properties": { + "activeIngredients": { + "description": "Active ingredients.", + "type": "string" + }, + "alcoholByVolume": { + "description": "Alcohol by volume.", + "format": "double", + "type": "number" + }, + "allergens": { + "description": "Allergens.", + "type": "string" + }, + "derivedNutritionClaim": { + "description": "Derived nutrition claim.", + "items": { + "type": "string" + }, + "type": "array" + }, + "directions": { + "description": "Directions.", + "type": "string" + }, + "indications": { + "description": "Indications.", + "type": "string" + }, + "ingredients": { + "description": "Ingredients.", + "type": "string" + }, + "nutritionClaim": { + "description": "Nutrition claim.", + "items": { + "type": "string" + }, + "type": "array" + }, + "storageInstructions": { + "description": "Storage instructions.", + "type": "string" + } + }, + "type": "object" + }, "Image": { "description": "An image.", "id": "Image", @@ -700,6 +774,203 @@ }, "type": "object" }, + "Nutrition": { + "id": "Nutrition", + "properties": { + "addedSugars": { + "$ref": "FloatUnit", + "description": "Added sugars." + }, + "addedSugarsDailyPercentage": { + "description": "Added sugars daily percentage.", + "format": "double", + "type": "number" + }, + "calcium": { + "$ref": "FloatUnit", + "description": "Calcium." + }, + "calciumDailyPercentage": { + "description": "Calcium daily percentage.", + "format": "double", + "type": "number" + }, + "cholesterol": { + "$ref": "FloatUnit", + "description": "Cholesterol." + }, + "cholesterolDailyPercentage": { + "description": "Cholesterol daily percentage.", + "format": "double", + "type": "number" + }, + "dietaryFiber": { + "$ref": "FloatUnit", + "description": "Dietary fiber." + }, + "dietaryFiberDailyPercentage": { + "description": "Dietary fiber daily percentage.", + "format": "double", + "type": "number" + }, + "energy": { + "$ref": "FloatUnit", + "description": "Mandatory Nutrition Facts. Energy." + }, + "energyFromFat": { + "$ref": "FloatUnit", + "description": "Energy from fat." + }, + "folateDailyPercentage": { + "description": "Folate daily percentage.", + "format": "double", + "type": "number" + }, + "folateFolicAcid": { + "$ref": "FloatUnit", + "description": "Folate folic acid." + }, + "folateMcgDfe": { + "description": "Folate mcg DFE.", + "format": "double", + "type": "number" + }, + "iron": { + "$ref": "FloatUnit", + "description": "Iron." + }, + "ironDailyPercentage": { + "description": "Iron daily percentage.", + "format": "double", + "type": "number" + }, + "monounsaturatedFat": { + "$ref": "FloatUnit", + "description": "Monounsaturated fat." + }, + "nutritionFactMeasure": { + "description": "Nutrition fact measure.", + "type": "string" + }, + "polyols": { + "$ref": "FloatUnit", + "description": "Polyols." + }, + "polyunsaturatedFat": { + "$ref": "FloatUnit", + "description": "Polyunsaturated fat." + }, + "potassium": { + "$ref": "FloatUnit", + "description": "Potassium." + }, + "potassiumDailyPercentage": { + "description": "Potassium daily percentage.", + "format": "double", + "type": "number" + }, + "preparedSizeDescription": { + "description": "Prepared size description.", + "type": "string" + }, + "protein": { + "$ref": "FloatUnit", + "description": "Protein." + }, + "proteinDailyPercentage": { + "description": "Protein daily percentage.", + "format": "double", + "type": "number" + }, + "saturatedFat": { + "$ref": "FloatUnit", + "description": "Saturated fat." + }, + "saturatedFatDailyPercentage": { + "description": "Saturated fat daily percentage.", + "format": "double", + "type": "number" + }, + "servingSizeDescription": { + "description": "Food Serving Size. Serving size description.", + "type": "string" + }, + "servingSizeMeasure": { + "$ref": "FloatUnit", + "description": "Serving size measure." + }, + "servingsPerContainer": { + "description": "Servings per container.", + "type": "string" + }, + "sodium": { + "$ref": "FloatUnit", + "description": "Sodium." + }, + "sodiumDailyPercentage": { + "description": "Sodium daily percentage.", + "format": "double", + "type": "number" + }, + "starch": { + "$ref": "FloatUnit", + "description": "Starch." + }, + "totalCarbohydrate": { + "$ref": "FloatUnit", + "description": "Total carbohydrate." + }, + "totalCarbohydrateDailyPercentage": { + "description": "Total carbohydrate daily percentage.", + "format": "double", + "type": "number" + }, + "totalFat": { + "$ref": "FloatUnit", + "description": "Total fat." + }, + "totalFatDailyPercentage": { + "description": "Total fat daily percentage.", + "format": "double", + "type": "number" + }, + "totalSugars": { + "$ref": "FloatUnit", + "description": "Total sugars." + }, + "totalSugarsDailyPercentage": { + "description": "Total sugars daily percentage.", + "format": "double", + "type": "number" + }, + "transFat": { + "$ref": "FloatUnit", + "description": "Trans fat." + }, + "transFatDailyPercentage": { + "description": "Trans fat daily percentage.", + "format": "double", + "type": "number" + }, + "vitaminD": { + "$ref": "FloatUnit", + "description": "Vitamin D." + }, + "vitaminDDailyPercentage": { + "description": "Vitamin D daily percentage.", + "format": "double", + "type": "number" + }, + "voluntaryNutritionFact": { + "description": "Voluntary nutrition fact.", + "items": { + "$ref": "VoluntaryNutritionFact" + }, + "type": "array" + } + }, + "type": "object" + }, "Price": { "description": "A price.", "id": "Price", @@ -778,6 +1049,26 @@ } }, "type": "object" + }, + "VoluntaryNutritionFact": { + "description": "Voluntary Nutrition Facts.", + "id": "VoluntaryNutritionFact", + "properties": { + "dailyPercentage": { + "description": "Daily percentage.", + "format": "double", + "type": "number" + }, + "name": { + "description": "Name.", + "type": "string" + }, + "value": { + "$ref": "FloatUnit", + "description": "Value." + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/memcache/v1/memcache-api.json b/etc/api/memcache/v1/memcache-api.json index a9279d8e92..1bbb4b5a55 100644 --- a/etc/api/memcache/v1/memcache-api.json +++ b/etc/api/memcache/v1/memcache-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -370,6 +370,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rescheduleMaintenance": { + "description": "Reschedules upcoming maintenance event.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", + "httpMethod": "POST", + "id": "memcache.projects.locations.instances.rescheduleMaintenance", + "parameterOrder": [ + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Memcache instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+instance}:rescheduleMaintenance", + "request": { + "$ref": "RescheduleMaintenanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateParameters": { "description": "Updates the defined Memcached parameters for an existing instance. This method only stages the parameters, it must be followed by `ApplyParameters` to apply the parameters to nodes of the Memcached instance.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:updateParameters", @@ -528,7 +556,7 @@ } } }, - "revision": "20220224", + "revision": "20230103", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -572,7 +600,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -613,7 +641,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -633,6 +661,36 @@ }, "type": "object" }, + "GoogleCloudMemcacheV1MaintenancePolicy": { + "description": "Maintenance policy per instance.", + "id": "GoogleCloudMemcacheV1MaintenancePolicy", + "properties": { + "createTime": { + "description": "Output only. The time when the policy was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the policy was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "weeklyMaintenanceWindow": { + "description": "Required. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_windows is expected to be one.", + "items": { + "$ref": "WeeklyMaintenanceWindow" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudMemcacheV1OperationMetadata": { "description": "Represents the metadata of a long-running operation.", "id": "GoogleCloudMemcacheV1OperationMetadata", @@ -696,7 +754,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -710,7 +768,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -725,14 +783,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -850,7 +908,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -875,6 +933,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -978,6 +1050,15 @@ "description": "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" }, + "maintenancePolicy": { + "$ref": "GoogleCloudMemcacheV1MaintenancePolicy", + "description": "The maintenance policy for the instance. If not provided, the maintenance event will be performed based on Memorystore internal rollout schedule." + }, + "maintenanceSchedule": { + "$ref": "MaintenanceSchedule", + "description": "Output only. Published maintenance schedule.", + "readOnly": true + }, "memcacheFullVersion": { "description": "Output only. The full version of memcached server running on this instance. System automatically determines the full memcached version for an instance based on the input MemcacheVersion. The full version format will be \"memcached-1.5.16\".", "readOnly": true, @@ -1190,7 +1271,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -1239,6 +1320,31 @@ }, "type": "object" }, + "MaintenanceSchedule": { + "description": "Upcoming maintenance schedule.", + "id": "MaintenanceSchedule", + "properties": { + "endTime": { + "description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "scheduleDeadlineTime": { + "description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MaintenanceWindow": { "description": "MaintenanceWindow definition.", "id": "MaintenanceWindow", @@ -1418,6 +1524,34 @@ }, "type": "object" }, + "RescheduleMaintenanceRequest": { + "description": "Request for RescheduleMaintenance.", + "id": "RescheduleMaintenanceRequest", + "properties": { + "rescheduleType": { + "description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", + "enum": [ + "RESCHEDULE_TYPE_UNSPECIFIED", + "IMMEDIATE", + "NEXT_AVAILABLE_WINDOW", + "SPECIFIC_TIME" + ], + "enumDescriptions": [ + "Not set.", + "If the user wants to schedule the maintenance to happen now.", + "If the user wants to use the existing maintenance policy to find the next available window.", + "If the user wants to reschedule the maintenance to a specific time." + ], + "type": "string" + }, + "scheduleTime": { + "description": "Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Schedule": { "description": "Configure the schedule.", "id": "Schedule", @@ -1537,12 +1671,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, @@ -1574,6 +1714,46 @@ }, "type": "object" }, + "WeeklyMaintenanceWindow": { + "description": "Time window specified for weekly operations.", + "id": "WeeklyMaintenanceWindow", + "properties": { + "day": { + "description": "Required. 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": "Required. Duration of the time window.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Required. Start time of the window in UTC." + } + }, + "type": "object" + }, "ZoneMetadata": { "id": "ZoneMetadata", "properties": {}, diff --git a/etc/api/memcache/v1beta2/memcache-api.json b/etc/api/memcache/v1beta2/memcache-api.json index da48c51cab..ced8306f4b 100644 --- a/etc/api/memcache/v1beta2/memcache-api.json +++ b/etc/api/memcache/v1beta2/memcache-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -398,6 +398,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rescheduleMaintenance": { + "description": "Performs the apply phase of the RescheduleMaintenance verb.", + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", + "httpMethod": "POST", + "id": "memcache.projects.locations.instances.rescheduleMaintenance", + "parameterOrder": [ + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Memcache instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+instance}:rescheduleMaintenance", + "request": { + "$ref": "RescheduleMaintenanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateParameters": { "description": "Updates the defined Memcached parameters for an existing instance. This method only stages the parameters, it must be followed by `ApplyParameters` to apply the parameters to nodes of the Memcached instance.", "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:updateParameters", @@ -556,7 +584,7 @@ } } }, - "revision": "20220224", + "revision": "20230103", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -618,7 +646,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -659,7 +687,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -679,6 +707,36 @@ }, "type": "object" }, + "GoogleCloudMemcacheV1beta2MaintenancePolicy": { + "description": "Maintenance policy per instance.", + "id": "GoogleCloudMemcacheV1beta2MaintenancePolicy", + "properties": { + "createTime": { + "description": "Output only. The time when the policy was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the policy was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "weeklyMaintenanceWindow": { + "description": "Required. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_windows is expected to be one.", + "items": { + "$ref": "WeeklyMaintenanceWindow" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudMemcacheV1beta2OperationMetadata": { "description": "Represents the metadata of a long-running operation.", "id": "GoogleCloudMemcacheV1beta2OperationMetadata", @@ -742,7 +800,7 @@ "type": "string" }, "instanceType": { - "description": "Optional. The instance_type of this instance of format: projects/{project_id}/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.", + "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": { @@ -756,7 +814,7 @@ "additionalProperties": { "type": "string" }, - "description": "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. 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.", "type": "object" }, "maintenanceSchedules": { @@ -771,14 +829,14 @@ "description": "Optional. The MaintenanceSettings associated with instance." }, "name": { - "description": "Unique name of the resource. It uses the form: `projects/{project_id|project_number}/locations/{location_id}/instances/{instance_id}` Note: Either project_id or project_number can be used, but keep it consistent with other APIs (e.g. RescheduleUpdate)", + "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": { - "type": "string" + "$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" }, - "description": "Optional. notification_parameters 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.", + "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": { @@ -896,7 +954,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 (like in the deprecated Instance.maintenance_policy_names field) 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 complete details of MaintenancePolicy, please refer to go/cloud-saas-mw-ug. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -921,6 +979,20 @@ }, "type": "object" }, + "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { + "description": "Contains notification related data.", + "id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", "id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", @@ -1024,6 +1096,15 @@ "description": "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" }, + "maintenancePolicy": { + "$ref": "GoogleCloudMemcacheV1beta2MaintenancePolicy", + "description": "The maintenance policy for the instance. If not provided, the maintenance event will be performed based on Memorystore internal rollout schedule." + }, + "maintenanceSchedule": { + "$ref": "MaintenanceSchedule", + "description": "Output only. Published maintenance schedule.", + "readOnly": true + }, "memcacheFullVersion": { "description": "Output only. The full version of memcached server running on this instance. System automatically determines the full memcached version for an instance based on the input MemcacheVersion. The full version format will be \"memcached-1.5.16\".", "readOnly": true, @@ -1241,7 +1322,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "Defines policies to service maintenance events.", + "description": "LINT.IfChange Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -1290,6 +1371,31 @@ }, "type": "object" }, + "MaintenanceSchedule": { + "description": "Upcoming maintenance schedule.", + "id": "MaintenanceSchedule", + "properties": { + "endTime": { + "description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "scheduleDeadlineTime": { + "description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MaintenanceWindow": { "description": "MaintenanceWindow definition.", "id": "MaintenanceWindow", @@ -1474,6 +1580,34 @@ }, "type": "object" }, + "RescheduleMaintenanceRequest": { + "description": "Request for RescheduleMaintenance.", + "id": "RescheduleMaintenanceRequest", + "properties": { + "rescheduleType": { + "description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", + "enum": [ + "RESCHEDULE_TYPE_UNSPECIFIED", + "IMMEDIATE", + "NEXT_AVAILABLE_WINDOW", + "SPECIFIC_TIME" + ], + "enumDescriptions": [ + "Not set.", + "If the user wants to schedule the maintenance to happen now.", + "If the user wants to use the existing maintenance policy to find the next available window.", + "If the user wants to reschedule the maintenance to a specific time." + ], + "type": "string" + }, + "scheduleTime": { + "description": "Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Schedule": { "description": "Configure the schedule.", "id": "Schedule", @@ -1593,12 +1727,18 @@ "enum": [ "UPDATE_CHANNEL_UNSPECIFIED", "EARLIER", - "LATER" + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" ], "enumDescriptions": [ "Unspecified channel.", "Early channel within a customer project.", - "Later 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" }, @@ -1630,6 +1770,46 @@ }, "type": "object" }, + "WeeklyMaintenanceWindow": { + "description": "Time window specified for weekly operations.", + "id": "WeeklyMaintenanceWindow", + "properties": { + "day": { + "description": "Required. 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": "Required. Duration of the time window.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Required. Start time of the window in UTC." + } + }, + "type": "object" + }, "ZoneMetadata": { "id": "ZoneMetadata", "properties": {}, diff --git a/etc/api/metastore/v1alpha/metastore-api.json b/etc/api/metastore/v1alpha/metastore-api.json index 1bb29c4c2a..db58aace63 100644 --- a/etc/api/metastore/v1alpha/metastore-api.json +++ b/etc/api/metastore/v1alpha/metastore-api.json @@ -177,6 +177,275 @@ } }, "resources": { + "federations": { + "methods": { + "create": { + "description": "Creates a metastore federation in a project and location.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/federations", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "federationId": { + "description": "Required. The ID of the metastore federation, which is used as the final component of the metastore federation's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the location in which to create a federation service, in the following form:projects/{project_number}/locations/{location_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "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/{+parent}/federations", + "request": { + "$ref": "Federation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single federation.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "DELETE", + "id": "metastore.projects.locations.federations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the metastore federation to delete, in the following form:projects/{project_number}/locations/{location_id}/federations/{federation_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "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" + ] + }, + "get": { + "description": "Gets the details of a single federation.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the metastore federation to retrieve, in the following form:projects/{project_number}/locations/{location_id}/federations/{federation_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "Federation" + }, + "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}/federations/{federationsId}:getIamPolicy", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists federations in a project and location.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/federations", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter to apply to list results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of federations to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous ListFederationServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to ListFederationServices must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the location of metastore federations to list, in the following form: projects/{project_number}/locations/{location_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/federations", + "response": { + "$ref": "ListFederationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the fields of a federation.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "PATCH", + "id": "metastore.projects.locations.federations.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The relative resource name of the federation, of the form: projects/{project_number}/locations/{location_id}/federations/{federation_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "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" + }, + "updateMask": { + "description": "Required. A field mask used to specify the fields to be overwritten in the metastore federation resource 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "request": { + "$ref": "Federation" + }, + "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}/federations/{federationsId}:setIamPolicy", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "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}/federations/{federationsId}:testIamPermissions", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "delete": { @@ -274,6 +543,34 @@ }, "services": { "methods": { + "alterLocation": { + "description": "Alter metadata resource location. The metadata resource can be a database, table, or partition. This functionality only updates the parent directory for the respective metadata resource and does not transfer any existing data to the new location.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterLocation", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.alterLocation", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to mutate metadata, 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}:alterLocation", + "request": { + "$ref": "AlterMetadataResourceLocationRequest" + }, + "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", @@ -411,7 +708,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -472,6 +769,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "moveTableToDatabase": { + "description": "Move a table to another database.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:moveTableToDatabase", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.moveTableToDatabase", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to mutate metadata, 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}:moveTableToDatabase", + "request": { + "$ref": "MoveTableToDatabaseRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates the parameters of a single service.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", @@ -482,7 +807,7 @@ ], "parameters": { "name": { - "description": "Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.", + "description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -511,6 +836,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "queryMetadata": { + "description": "Query DPMS metadata.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.queryMetadata", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to query metadata, 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}:queryMetadata", + "request": { + "$ref": "QueryMetadataRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeIamPolicy": { "description": "Removes the attached IAM policies for a resource", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/{servicesId1}:removeIamPolicy", @@ -577,7 +930,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -605,7 +958,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -736,7 +1089,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -807,7 +1160,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -835,7 +1188,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -873,7 +1226,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -898,7 +1251,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -926,7 +1279,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -964,7 +1317,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -989,7 +1342,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -1017,7 +1370,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -1198,9 +1551,30 @@ } } }, - "revision": "20220222", + "revision": "20230111", "rootUrl": "https://metastore.googleapis.com/", "schemas": { + "AlterMetadataResourceLocationRequest": { + "description": "Request message for DataprocMetastore.AlterMetadataResourceLocation.", + "id": "AlterMetadataResourceLocationRequest", + "properties": { + "locationUri": { + "description": "Required. The new location URI for the metadata resource.", + "type": "string" + }, + "resourceName": { + "description": "Required. The relative metadata resource name in the following format.databases/{database_id} or databases/{database_id}/tables/{table_id} or databases/{database_id}/tables/{table_id}/partitions/{partition_id}", + "type": "string" + } + }, + "type": "object" + }, + "AlterMetadataResourceLocationResponse": { + "description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", + "id": "AlterMetadataResourceLocationResponse", + "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", @@ -1272,6 +1646,31 @@ }, "type": "object" }, + "BackendMetastore": { + "description": "Represents a backend metastore for the federation.", + "id": "BackendMetastore", + "properties": { + "metastoreType": { + "description": "The type of the backend metastore.", + "enum": [ + "METASTORE_TYPE_UNSPECIFIED", + "BIGQUERY", + "DATAPROC_METASTORE" + ], + "enumDescriptions": [ + "The metastore type is not set.", + "The backend metastore is BigQuery.", + "The backend metastore is Dataproc Metastore." + ], + "type": "string" + }, + "name": { + "description": "The relative resource name of the metastore that is being federated. The formats of the relative resource names for the currently supported metastores are listed below: BigQuery projects/{project_id} Dataproc Metastore projects/{project_id}/locations/{location}/services/{service_id}", + "type": "string" + } + }, + "type": "object" + }, "Backup": { "description": "The details of a backup resource.", "id": "Backup", @@ -1342,7 +1741,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 Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-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.", "items": { "type": "string" }, @@ -1365,7 +1764,7 @@ "type": "string" }, "subnetwork": { - "description": "The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint. It is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network. There must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:`projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}", + "description": "Immutable. The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint. It is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network. There must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}", "type": "string" } }, @@ -1438,7 +1837,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1506,6 +1905,83 @@ }, "type": "object" }, + "Federation": { + "description": "Represents a federation of multiple backend metastores.", + "id": "Federation", + "properties": { + "backendMetastores": { + "additionalProperties": { + "$ref": "BackendMetastore" + }, + "description": "A map from BackendMetastore rank to BackendMetastores from which the federation service serves metadata at query time. The map key represents the order in which BackendMetastores should be evaluated to resolve database names at query time and should be greater than or equal to zero. A BackendMetastore with a lower number will be evaluated before a BackendMetastore with a higher number.", + "type": "object" + }, + "createTime": { + "description": "Output only. The time when the metastore federation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endpointUri": { + "description": "Output only. The federation endpoint.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels for the metastore federation.", + "type": "object" + }, + "name": { + "description": "Immutable. The relative resource name of the federation, of the form: projects/{project_number}/locations/{location_id}/federations/{federation_id}`.", + "type": "string" + }, + "state": { + "description": "Output only. The current state of the federation.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "ERROR" + ], + "enumDescriptions": [ + "The state of the metastore federation is unknown.", + "The metastore federation is in the process of being created.", + "The metastore federation is running and ready to serve queries.", + "The metastore federation is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", + "The metastore federation is undergoing deletion. It cannot be used.", + "The metastore federation has encountered an error and cannot be used. The metastore federation should be deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. Additional information about the current state of the metastore federation, if available.", + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. The globally unique resource identifier of the metastore federation.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the metastore federation was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "Immutable. The Apache Hive metastore version of the federation. All backend metastore versions must be compatible with the federation version.", + "type": "string" + } + }, + "type": "object" + }, "HiveMetastoreConfig": { "description": "Specifies configuration information specific to running Hive metastore software as the metastore service.", "id": "HiveMetastoreConfig", @@ -1619,6 +2095,31 @@ }, "type": "object" }, + "ListFederationsResponse": { + "description": "Response message for ListFederations", + "id": "ListFederationsResponse", + "properties": { + "federations": { + "description": "The services in the specified location.", + "items": { + "$ref": "Federation" + }, + "type": "array" + }, + "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" + }, + "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", @@ -1941,6 +2442,31 @@ }, "type": "object" }, + "MoveTableToDatabaseRequest": { + "description": "Request message for DataprocMetastore.MoveTableToDatabase.", + "id": "MoveTableToDatabaseRequest", + "properties": { + "dbName": { + "description": "Required. The name of the database where the table resides.", + "type": "string" + }, + "destinationDbName": { + "description": "Required. The name of the database where the table should be moved.", + "type": "string" + }, + "tableName": { + "description": "Required. The name of the table to be moved.", + "type": "string" + } + }, + "type": "object" + }, + "MoveTableToDatabaseResponse": { + "description": "Response message for DataprocMetastore.MoveTableToDatabase.", + "id": "MoveTableToDatabaseResponse", + "properties": {}, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.", "id": "NetworkConfig", @@ -2065,10 +2591,37 @@ }, "type": "object" }, + "QueryMetadataRequest": { + "description": "Request message for DataprocMetastore.QueryMetadata.", + "id": "QueryMetadataRequest", + "properties": { + "query": { + "description": "Required. A read-only SQL query to execute against the metadata database. The query cannot change or mutate the data.", + "type": "string" + } + }, + "type": "object" + }, + "QueryMetadataResponse": { + "description": "Response message for DataprocMetastore.QueryMetadata.", + "id": "QueryMetadataResponse", + "properties": { + "resultManifestUri": { + "description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", + "type": "string" + } + }, + "type": "object" + }, "RemoveIamPolicyRequest": { "description": "Request message for DataprocMetastore.RemoveIamPolicy.", "id": "RemoveIamPolicyRequest", - "properties": {}, + "properties": { + "asynchronous": { + "description": "Optional. Removes IAM policy attached to database or table asynchronously when it is set. The default is false.", + "type": "boolean" + } + }, "type": "object" }, "RemoveIamPolicyResponse": { @@ -2076,7 +2629,7 @@ "id": "RemoveIamPolicyResponse", "properties": { "success": { - "description": "whether related policies are removed", + "description": "True if the policy is successfully removed.", "type": "boolean" } }, @@ -2248,7 +2801,7 @@ "readOnly": true }, "name": { - "description": "Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.", + "description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", "type": "string" }, "network": { @@ -2257,7 +2810,7 @@ }, "networkConfig": { "$ref": "NetworkConfig", - "description": "Immutable. The configuration specifying the network settings for the Dataproc Metastore service." + "description": "The configuration specifying the network settings for the Dataproc Metastore service." }, "port": { "description": "The TCP port at which the metastore service is reached. Default: 9083.", @@ -2308,6 +2861,10 @@ "readOnly": true, "type": "string" }, + "telemetryConfig": { + "$ref": "TelemetryConfig", + "description": "The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON." + }, "tier": { "description": "The tier of the service.", "enum": [ @@ -2342,7 +2899,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used:paths: \"bindings, etag\"", @@ -2379,12 +2936,33 @@ }, "type": "object" }, + "TelemetryConfig": { + "description": "Telemetry Configuration for the Dataproc Metastore service.", + "id": "TelemetryConfig", + "properties": { + "logFormat": { + "description": "The output format of the Dataproc Metastore service's logs.", + "enum": [ + "LOG_FORMAT_UNSPECIFIED", + "LEGACY", + "JSON" + ], + "enumDescriptions": [ + "The LOG_FORMAT is not set.", + "Logging output uses the legacy textPayload format.", + "Logging output uses the jsonPayload format." + ], + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for TestIamPermissions method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the resource. Permissions with wildcards (such as * or storage.*) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/metastore/v1beta/metastore-api.json b/etc/api/metastore/v1beta/metastore-api.json index 4ed1bac830..5d911bddf8 100644 --- a/etc/api/metastore/v1beta/metastore-api.json +++ b/etc/api/metastore/v1beta/metastore-api.json @@ -177,6 +177,275 @@ } }, "resources": { + "federations": { + "methods": { + "create": { + "description": "Creates a metastore federation in a project and location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/federations", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "federationId": { + "description": "Required. The ID of the metastore federation, which is used as the final component of the metastore federation's name.This value must be between 2 and 63 characters long inclusive, begin with a letter, end with a letter or number, and consist of alpha-numeric ASCII characters or hyphens.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the location in which to create a federation service, in the following form:projects/{project_number}/locations/{location_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "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/{+parent}/federations", + "request": { + "$ref": "Federation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single federation.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "DELETE", + "id": "metastore.projects.locations.federations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the metastore federation to delete, in the following form:projects/{project_number}/locations/{location_id}/federations/{federation_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "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" + ] + }, + "get": { + "description": "Gets the details of a single federation.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the metastore federation to retrieve, in the following form:projects/{project_number}/locations/{location_id}/federations/{federation_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "Federation" + }, + "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}/federations/{federationsId}:getIamPolicy", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists federations in a project and location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/federations", + "httpMethod": "GET", + "id": "metastore.projects.locations.federations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter to apply to list results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of federations to return. The response may contain less than the maximum number. If unspecified, no more than 500 services are returned. The maximum value is 1000; values above 1000 are changed to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous ListFederationServices call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to ListFederationServices must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the location of metastore federations to list, in the following form: projects/{project_number}/locations/{location_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/federations", + "response": { + "$ref": "ListFederationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the fields of a federation.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/federations/{federationsId}", + "httpMethod": "PATCH", + "id": "metastore.projects.locations.federations.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The relative resource name of the federation, of the form: projects/{project_number}/locations/{location_id}/federations/{federation_id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/federations/[^/]+$", + "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" + }, + "updateMask": { + "description": "Required. A field mask used to specify the fields to be overwritten in the metastore federation resource 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "Federation" + }, + "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}/federations/{federationsId}:setIamPolicy", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "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}/federations/{federationsId}:testIamPermissions", + "httpMethod": "POST", + "id": "metastore.projects.locations.federations.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/[^/]+/federations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "delete": { @@ -274,6 +543,34 @@ }, "services": { "methods": { + "alterLocation": { + "description": "Alter metadata resource location. The metadata resource can be a database, table, or partition. This functionality only updates the parent directory for the respective metadata resource and does not transfer any existing data to the new location.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterLocation", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.alterLocation", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to mutate metadata, 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}:alterLocation", + "request": { + "$ref": "AlterMetadataResourceLocationRequest" + }, + "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", @@ -411,7 +708,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -472,6 +769,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "moveTableToDatabase": { + "description": "Move a table to another database.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:moveTableToDatabase", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.moveTableToDatabase", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to mutate metadata, 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}:moveTableToDatabase", + "request": { + "$ref": "MoveTableToDatabaseRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates the parameters of a single service.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", @@ -482,7 +807,7 @@ ], "parameters": { "name": { - "description": "Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.", + "description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -511,6 +836,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "queryMetadata": { + "description": "Query DPMS metadata.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.queryMetadata", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to query metadata, 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}:queryMetadata", + "request": { + "$ref": "QueryMetadataRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeIamPolicy": { "description": "Removes the attached IAM policies for a resource", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/{servicesId1}:removeIamPolicy", @@ -577,7 +930,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -605,7 +958,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -736,7 +1089,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -807,7 +1160,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -835,7 +1188,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/backups/[^/]+$", "required": true, @@ -873,7 +1226,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -898,7 +1251,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -926,7 +1279,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+$", "required": true, @@ -964,7 +1317,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -989,7 +1342,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -1017,7 +1370,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+/databases/[^/]+/tables/[^/]+$", "required": true, @@ -1198,9 +1551,30 @@ } } }, - "revision": "20220222", + "revision": "20230111", "rootUrl": "https://metastore.googleapis.com/", "schemas": { + "AlterMetadataResourceLocationRequest": { + "description": "Request message for DataprocMetastore.AlterMetadataResourceLocation.", + "id": "AlterMetadataResourceLocationRequest", + "properties": { + "locationUri": { + "description": "Required. The new location URI for the metadata resource.", + "type": "string" + }, + "resourceName": { + "description": "Required. The relative metadata resource name in the following format.databases/{database_id} or databases/{database_id}/tables/{table_id} or databases/{database_id}/tables/{table_id}/partitions/{partition_id}", + "type": "string" + } + }, + "type": "object" + }, + "AlterMetadataResourceLocationResponse": { + "description": "Response message for DataprocMetastore.AlterMetadataResourceLocation.", + "id": "AlterMetadataResourceLocationResponse", + "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", @@ -1272,6 +1646,31 @@ }, "type": "object" }, + "BackendMetastore": { + "description": "Represents a backend metastore for the federation.", + "id": "BackendMetastore", + "properties": { + "metastoreType": { + "description": "The type of the backend metastore.", + "enum": [ + "METASTORE_TYPE_UNSPECIFIED", + "BIGQUERY", + "DATAPROC_METASTORE" + ], + "enumDescriptions": [ + "The metastore type is not set.", + "The backend metastore is BigQuery.", + "The backend metastore is Dataproc Metastore." + ], + "type": "string" + }, + "name": { + "description": "The relative resource name of the metastore that is being federated. The formats of the relative resource names for the currently supported metastores are listed below: BigQuery projects/{project_id} Dataproc Metastore projects/{project_id}/locations/{location}/services/{service_id}", + "type": "string" + } + }, + "type": "object" + }, "Backup": { "description": "The details of a backup resource.", "id": "Backup", @@ -1342,7 +1741,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 Cloud Platform resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-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.", "items": { "type": "string" }, @@ -1365,7 +1764,7 @@ "type": "string" }, "subnetwork": { - "description": "The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint. It is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network. There must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:`projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}", + "description": "Immutable. The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint. It is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network. There must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:projects/{project_number}/regions/{region_id}/subnetworks/{subnetwork_id}", "type": "string" } }, @@ -1438,7 +1837,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1506,6 +1905,83 @@ }, "type": "object" }, + "Federation": { + "description": "Represents a federation of multiple backend metastores.", + "id": "Federation", + "properties": { + "backendMetastores": { + "additionalProperties": { + "$ref": "BackendMetastore" + }, + "description": "A map from BackendMetastore rank to BackendMetastores from which the federation service serves metadata at query time. The map key represents the order in which BackendMetastores should be evaluated to resolve database names at query time and should be greater than or equal to zero. A BackendMetastore with a lower number will be evaluated before a BackendMetastore with a higher number.", + "type": "object" + }, + "createTime": { + "description": "Output only. The time when the metastore federation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endpointUri": { + "description": "Output only. The federation endpoint.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels for the metastore federation.", + "type": "object" + }, + "name": { + "description": "Immutable. The relative resource name of the federation, of the form: projects/{project_number}/locations/{location_id}/federations/{federation_id}`.", + "type": "string" + }, + "state": { + "description": "Output only. The current state of the federation.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "ERROR" + ], + "enumDescriptions": [ + "The state of the metastore federation is unknown.", + "The metastore federation is in the process of being created.", + "The metastore federation is running and ready to serve queries.", + "The metastore federation is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", + "The metastore federation is undergoing deletion. It cannot be used.", + "The metastore federation has encountered an error and cannot be used. The metastore federation should be deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. Additional information about the current state of the metastore federation, if available.", + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. The globally unique resource identifier of the metastore federation.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the metastore federation was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "version": { + "description": "Immutable. The Apache Hive metastore version of the federation. All backend metastore versions must be compatible with the federation version.", + "type": "string" + } + }, + "type": "object" + }, "HiveMetastoreConfig": { "description": "Specifies configuration information specific to running Hive metastore software as the metastore service.", "id": "HiveMetastoreConfig", @@ -1619,6 +2095,31 @@ }, "type": "object" }, + "ListFederationsResponse": { + "description": "Response message for ListFederations", + "id": "ListFederationsResponse", + "properties": { + "federations": { + "description": "The services in the specified location.", + "items": { + "$ref": "Federation" + }, + "type": "array" + }, + "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" + }, + "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", @@ -1941,6 +2442,31 @@ }, "type": "object" }, + "MoveTableToDatabaseRequest": { + "description": "Request message for DataprocMetastore.MoveTableToDatabase.", + "id": "MoveTableToDatabaseRequest", + "properties": { + "dbName": { + "description": "Required. The name of the database where the table resides.", + "type": "string" + }, + "destinationDbName": { + "description": "Required. The name of the database where the table should be moved.", + "type": "string" + }, + "tableName": { + "description": "Required. The name of the table to be moved.", + "type": "string" + } + }, + "type": "object" + }, + "MoveTableToDatabaseResponse": { + "description": "Response message for DataprocMetastore.MoveTableToDatabase.", + "id": "MoveTableToDatabaseResponse", + "properties": {}, + "type": "object" + }, "NetworkConfig": { "description": "Network configuration for the Dataproc Metastore service.", "id": "NetworkConfig", @@ -2065,10 +2591,37 @@ }, "type": "object" }, + "QueryMetadataRequest": { + "description": "Request message for DataprocMetastore.QueryMetadata.", + "id": "QueryMetadataRequest", + "properties": { + "query": { + "description": "Required. A read-only SQL query to execute against the metadata database. The query cannot change or mutate the data.", + "type": "string" + } + }, + "type": "object" + }, + "QueryMetadataResponse": { + "description": "Response message for DataprocMetastore.QueryMetadata.", + "id": "QueryMetadataResponse", + "properties": { + "resultManifestUri": { + "description": "The manifest URI is link to a JSON instance in Cloud Storage. This instance manifests immediately along with QueryMetadataResponse. The content of the URI is not retriable until the long-running operation query against the metadata finishes.", + "type": "string" + } + }, + "type": "object" + }, "RemoveIamPolicyRequest": { "description": "Request message for DataprocMetastore.RemoveIamPolicy.", "id": "RemoveIamPolicyRequest", - "properties": {}, + "properties": { + "asynchronous": { + "description": "Optional. Removes IAM policy attached to database or table asynchronously when it is set. The default is false.", + "type": "boolean" + } + }, "type": "object" }, "RemoveIamPolicyResponse": { @@ -2076,7 +2629,7 @@ "id": "RemoveIamPolicyResponse", "properties": { "success": { - "description": "whether related policies are removed", + "description": "True if the policy is successfully removed.", "type": "boolean" } }, @@ -2248,7 +2801,7 @@ "readOnly": true }, "name": { - "description": "Immutable. The relative resource name of the metastore service, of the form:projects/{project_number}/locations/{location_id}/services/{service_id}.", + "description": "Immutable. The relative resource name of the metastore service, in the following format:projects/{project_number}/locations/{location_id}/services/{service_id}.", "type": "string" }, "network": { @@ -2257,7 +2810,7 @@ }, "networkConfig": { "$ref": "NetworkConfig", - "description": "Immutable. The configuration specifying the network settings for the Dataproc Metastore service." + "description": "The configuration specifying the network settings for the Dataproc Metastore service." }, "port": { "description": "The TCP port at which the metastore service is reached. Default: 9083.", @@ -2308,6 +2861,10 @@ "readOnly": true, "type": "string" }, + "telemetryConfig": { + "$ref": "TelemetryConfig", + "description": "The configuration specifying telemetry settings for the Dataproc Metastore service. If unspecified defaults to JSON." + }, "tier": { "description": "The tier of the service.", "enum": [ @@ -2342,7 +2899,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used:paths: \"bindings, etag\"", @@ -2379,12 +2936,33 @@ }, "type": "object" }, + "TelemetryConfig": { + "description": "Telemetry Configuration for the Dataproc Metastore service.", + "id": "TelemetryConfig", + "properties": { + "logFormat": { + "description": "The output format of the Dataproc Metastore service's logs.", + "enum": [ + "LOG_FORMAT_UNSPECIFIED", + "LEGACY", + "JSON" + ], + "enumDescriptions": [ + "The LOG_FORMAT is not set.", + "Logging output uses the legacy textPayload format.", + "Logging output uses the jsonPayload format." + ], + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for TestIamPermissions method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the resource. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the resource. Permissions with wildcards (such as * or storage.*) are not allowed. For more information see IAM Overview (https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/ml/v1/ml-api.json b/etc/api/ml/v1/ml-api.json index 3473be2f18..d852620781 100644 --- a/etc/api/ml/v1/ml-api.json +++ b/etc/api/ml/v1/ml-api.json @@ -293,7 +293,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -394,7 +394,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -422,7 +422,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -1051,7 +1051,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/models/[^/]+$", "required": true, @@ -1152,7 +1152,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/models/[^/]+$", "required": true, @@ -1180,7 +1180,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/models/[^/]+$", "required": true, @@ -1486,7 +1486,7 @@ } } }, - "revision": "20220212", + "revision": "20230106", "rootUrl": "https://ml.googleapis.com/", "schemas": { "GoogleApi__HttpBody": { @@ -2655,7 +2655,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. One or more labels that you can add, to organize your models. Each label is a key-value pair, where both the key and the value are arbitrary strings that you supply. For more information, see the documentation on using labels.", + "description": "Optional. One or more labels that you can add, to organize your models. Each label is a key-value pair, where both the key and the value are arbitrary strings that you supply. For more information, see the documentation on using labels. Note that this field is not updatable for mls1* models.", "type": "object" }, "name": { @@ -3551,7 +3551,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. One or more labels that you can add, to organize your model versions. Each label is a key-value pair, where both the key and the value are arbitrary strings that you supply. For more information, see the documentation on using labels.", + "description": "Optional. One or more labels that you can add, to organize your model versions. Each label is a key-value pair, where both the key and the value are arbitrary strings that you supply. For more information, see the documentation on using labels. Note that this field is not updatable for mls1* models.", "type": "object" }, "lastMigrationModelId": { @@ -3649,7 +3649,7 @@ "type": "object" }, "GoogleIamV1__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.", + "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": "GoogleIamV1__AuditConfig", "properties": { "auditLogConfigs": { @@ -3705,7 +3705,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -3755,7 +3755,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1__Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3770,7 +3770,7 @@ "id": "GoogleIamV1__TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -3847,7 +3847,7 @@ "type": "object" }, "GoogleProtobuf__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); } 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": "GoogleProtobuf__Empty", "properties": {}, "type": "object" diff --git a/etc/api/monitoring/v1/monitoring-api.json b/etc/api/monitoring/v1/monitoring-api.json index 111452764a..6fcc50366f 100644 --- a/etc/api/monitoring/v1/monitoring-api.json +++ b/etc/api/monitoring/v1/monitoring-api.json @@ -446,6 +446,43 @@ "resources": { "v1": { "methods": { + "labels": { + "description": "Lists labels for metrics.", + "flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/labels", + "httpMethod": "POST", + "id": "monitoring.projects.location.prometheus.api.v1.labels", + "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 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" + } + }, + "path": "v1/{+name}/location/{location}/prometheus/api/v1/labels", + "request": { + "$ref": "ListLabelsRequest" + }, + "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": { "description": "Evaluate a PromQL query at a single point in time.", "flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query", @@ -619,6 +656,59 @@ } } }, + "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": { @@ -679,7 +769,7 @@ } } }, - "revision": "20220218", + "revision": "20230115", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -886,6 +976,21 @@ }, "type": "object" }, + "ColumnSettings": { + "description": "The persistent settings for a table's columns.", + "id": "ColumnSettings", + "properties": { + "column": { + "description": "Required. The id of the column.", + "type": "string" + }, + "visible": { + "description": "Required. Whether the column should be visible on page load.", + "type": "boolean" + } + }, + "type": "object" + }, "Dashboard": { "description": "A Google Stackdriver dashboard. Dashboards define the content and layout of pages in the Stackdriver web application.", "id": "Dashboard", @@ -894,6 +999,13 @@ "$ref": "ColumnLayout", "description": "The content is divided into equally spaced columns and the widgets are arranged vertically." }, + "dashboardFilters": { + "description": "Filters to reduce the amount of data charted based on the filter criteria.", + "items": { + "$ref": "DashboardFilter" + }, + "type": "array" + }, "displayName": { "description": "Required. The mutable, human-readable name.", "type": "string" @@ -928,6 +1040,45 @@ }, "type": "object" }, + "DashboardFilter": { + "description": "A filter to reduce the amount of data charted in relevant widgets.", + "id": "DashboardFilter", + "properties": { + "filterType": { + "description": "The specified filter type", + "enum": [ + "FILTER_TYPE_UNSPECIFIED", + "RESOURCE_LABEL", + "METRIC_LABEL", + "USER_METADATA_LABEL", + "SYSTEM_METADATA_LABEL", + "GROUP" + ], + "enumDescriptions": [ + "Filter type is unspecified. This is not valid in a well-formed request.", + "Filter on a resource label value", + "Filter on a metrics label value", + "Filter on a user metadata label value", + "Filter on a system metadata label value", + "Filter on a group id" + ], + "type": "string" + }, + "labelKey": { + "description": "Required. The key for the label", + "type": "string" + }, + "stringValue": { + "description": "A variable-length string value.", + "type": "string" + }, + "templateVariable": { + "description": "The placeholder text that can be referenced in a filter string or MQL query. If omitted, the dashboard filter will be applied to all relevant widgets in the dashboard.", + "type": "string" + } + }, + "type": "object" + }, "DataSet": { "description": "Groups a time series query definition with charting options.", "id": "DataSet", @@ -995,7 +1146,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1187,6 +1338,25 @@ }, "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", @@ -1543,7 +1713,7 @@ "description": "Will cause the scorecard to show a spark chart." }, "thresholds": { - "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', }Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", + "description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", "items": { "$ref": "Threshold" }, @@ -1684,7 +1854,7 @@ "id": "TableDisplayOptions", "properties": { "shownColumns": { - "description": "Optional. Columns to display in the table. Leave empty to display all available columns. Note: This field is for future features and is not currently used.", + "description": "Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings", "items": { "type": "string" }, @@ -1865,6 +2035,10 @@ "description": "TimeSeriesQuery collects the set of supported methods for querying time series data from the Stackdriver metrics API.", "id": "TimeSeriesQuery", "properties": { + "prometheusQuery": { + "description": "A query used to fetch time series with PromQL.", + "type": "string" + }, "timeSeriesFilter": { "$ref": "TimeSeriesFilter", "description": "Filter parameters to fetch time series." @@ -1874,7 +2048,7 @@ "description": "Parameters to fetch a ratio between two time series filters." }, "timeSeriesQueryLanguage": { - "description": "A query used to fetch time series.", + "description": "A query used to fetch time series with MQL.", "type": "string" }, "unitOverride": { @@ -1888,12 +2062,33 @@ "description": "A table that displays time series data.", "id": "TimeSeriesTable", "properties": { + "columnSettings": { + "description": "Optional. The list of the persistent column settings for the table.", + "items": { + "$ref": "ColumnSettings" + }, + "type": "array" + }, "dataSets": { "description": "Required. The data displayed in this table.", "items": { "$ref": "TableDataSet" }, "type": "array" + }, + "metricVisualization": { + "description": "Optional. Store rendering strategy", + "enum": [ + "METRIC_VISUALIZATION_UNSPECIFIED", + "NUMBER", + "BAR" + ], + "enumDescriptions": [ + "Unspecified state", + "Default text rendering", + "Horizontal bar rendering" + ], + "type": "string" } }, "type": "object" diff --git a/etc/api/monitoring/v3/monitoring-api.json b/etc/api/monitoring/v3/monitoring-api.json index 47a4eb9f14..23e16457e4 100644 --- a/etc/api/monitoring/v3/monitoring-api.json +++ b/etc/api/monitoring/v3/monitoring-api.json @@ -665,7 +665,7 @@ "alertPolicies": { "methods": { "create": { - "description": "Creates a new alerting policy.", + "description": "Creates a new alerting policy.Design your application to single-thread API calls that modify the state of alerting policies in a single project. This includes calls to CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.", "flatPath": "v3/projects/{projectsId}/alertPolicies", "httpMethod": "POST", "id": "monitoring.projects.alertPolicies.create", @@ -674,7 +674,7 @@ ], "parameters": { "name": { - "description": "Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the alerting policy. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policy will be written, not the name of the created policy. |name| must be a host project of a workspace, otherwise INVALID_ARGUMENT error will return. The alerting policy that is returned will have a name that contains a normalized representation of this name as a prefix but adds a suffix of the form /alertPolicies/[ALERT_POLICY_ID], identifying the policy in the container.", + "description": "Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which to create the alerting policy. The format is: projects/[PROJECT_ID_OR_NUMBER] Note that this field names the parent container in which the alerting policy will be written, not the name of the created policy. |name| must be a host project of a Metrics Scope, otherwise INVALID_ARGUMENT error will return. The alerting policy that is returned will have a name that contains a normalized representation of this name as a prefix but adds a suffix of the form /alertPolicies/[ALERT_POLICY_ID], identifying the policy in the container.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -694,7 +694,7 @@ ] }, "delete": { - "description": "Deletes an alerting policy.", + "description": "Deletes an alerting policy.Design your application to single-thread API calls that modify the state of alerting policies in a single project. This includes calls to CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.", "flatPath": "v3/projects/{projectsId}/alertPolicies/{alertPoliciesId}", "httpMethod": "DELETE", "id": "monitoring.projects.alertPolicies.delete", @@ -795,7 +795,7 @@ ] }, "patch": { - "description": "Updates an alerting policy. You can either replace the entire policy with a new one or replace only certain fields in the current alerting policy by specifying the fields to be updated via updateMask. Returns the updated alerting policy.", + "description": "Updates an alerting policy. You can either replace the entire policy with a new one or replace only certain fields in the current alerting policy by specifying the fields to be updated via updateMask. Returns the updated alerting policy.Design your application to single-thread API calls that modify the state of alerting policies in a single project. This includes calls to CreateAlertPolicy, DeleteAlertPolicy and UpdateAlertPolicy.", "flatPath": "v3/projects/{projectsId}/alertPolicies/{alertPoliciesId}", "httpMethod": "PATCH", "id": "monitoring.projects.alertPolicies.patch", @@ -804,7 +804,7 @@ ], "parameters": { "name": { - "description": "Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [ALERT_POLICY_ID] is assigned by Stackdriver Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the name field in the alerting policy passed as part of the request.", + "description": "Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [ALERT_POLICY_ID] is assigned by Cloud Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the name field in the alerting policy passed as part of the request.", "location": "path", "pattern": "^projects/[^/]+/alertPolicies/[^/]+$", "required": true, @@ -834,7 +834,7 @@ "collectdTimeSeries": { "methods": { "create": { - "description": "Stackdriver Monitoring Agent only: Creates a new time series.This method is only for use by the Stackdriver Monitoring Agent. Use projects.timeSeries.create instead.", + "description": "Cloud Monitoring Agent only: Creates a new time series.This method is only for use by the Cloud Monitoring Agent. Use projects.timeSeries.create instead.", "flatPath": "v3/projects/{projectsId}/collectdTimeSeries", "httpMethod": "POST", "id": "monitoring.projects.collectdTimeSeries.create", @@ -1112,7 +1112,7 @@ "metricDescriptors": { "methods": { "create": { - "description": "Creates a new metric descriptor. The creation is executed asynchronously and callers may check the returned operation to track its progress. User-created metric descriptors define custom metrics (https://cloud.google.com/monitoring/custom-metrics).", + "description": "Creates a new metric descriptor. The creation is executed asynchronously. User-created metric descriptors define custom metrics (https://cloud.google.com/monitoring/custom-metrics). The metric descriptor is updated if it already exists, except that metric labels are never removed.", "flatPath": "v3/projects/{projectsId}/metricDescriptors", "httpMethod": "POST", "id": "monitoring.projects.metricDescriptors.create", @@ -1389,7 +1389,7 @@ "notificationChannels": { "methods": { "create": { - "description": "Creates a new notification channel, representing a single notification endpoint such as an email address, SMS number, or PagerDuty service.", + "description": "Creates a new notification channel, representing a single notification endpoint such as an email address, SMS number, or PagerDuty service.Design your application to single-thread API calls that modify the state of notification channels in a single project. This includes calls to CreateNotificationChannel, DeleteNotificationChannel and UpdateNotificationChannel.", "flatPath": "v3/projects/{projectsId}/notificationChannels", "httpMethod": "POST", "id": "monitoring.projects.notificationChannels.create", @@ -1418,7 +1418,7 @@ ] }, "delete": { - "description": "Deletes a notification channel.", + "description": "Deletes a notification channel.Design your application to single-thread API calls that modify the state of notification channels in a single project. This includes calls to CreateNotificationChannel, DeleteNotificationChannel and UpdateNotificationChannel.", "flatPath": "v3/projects/{projectsId}/notificationChannels/{notificationChannelsId}", "httpMethod": "DELETE", "id": "monitoring.projects.notificationChannels.delete", @@ -1553,7 +1553,7 @@ ] }, "patch": { - "description": "Updates a notification channel. Fields not specified in the field mask remain unchanged.", + "description": "Updates a notification channel. Fields not specified in the field mask remain unchanged.Design your application to single-thread API calls that modify the state of notification channels in a single project. This includes calls to CreateNotificationChannel, DeleteNotificationChannel and UpdateNotificationChannel.", "flatPath": "v3/projects/{projectsId}/notificationChannels/{notificationChannelsId}", "httpMethod": "PATCH", "id": "monitoring.projects.notificationChannels.patch", @@ -1647,6 +1647,144 @@ } } }, + "snoozes": { + "methods": { + "create": { + "description": "Creates a Snooze that will prevent alerts, which match the provided criteria, from being opened. The Snooze applies for a specific time interval.", + "flatPath": "v3/projects/{projectsId}/snoozes", + "httpMethod": "POST", + "id": "monitoring.projects.snoozes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) in which a Snooze should be created. The format is: projects/[PROJECT_ID_OR_NUMBER] ", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/snoozes", + "request": { + "$ref": "Snooze" + }, + "response": { + "$ref": "Snooze" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ] + }, + "get": { + "description": "Retrieves a Snooze by name.", + "flatPath": "v3/projects/{projectsId}/snoozes/{snoozesId}", + "httpMethod": "GET", + "id": "monitoring.projects.snoozes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ID of the Snooze to retrieve. The format is: projects/[PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID] ", + "location": "path", + "pattern": "^projects/[^/]+/snoozes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Snooze" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ] + }, + "list": { + "description": "Lists the Snoozes associated with a project. Can optionally pass in filter, which specifies predicates to match Snoozes.", + "flatPath": "v3/projects/{projectsId}/snoozes", + "httpMethod": "GET", + "id": "monitoring.projects.snoozes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Optional filter to restrict results to the given criteria. The following fields are supported. interval.start_time interval.end_timeFor example: ``` interval.start_time > \"2022-03-11T00:00:00-08:00\" AND interval.end_time < \"2022-03-12T00:00:00-08:00\" ``` ", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of results to return for a single query. The server may further constrain the maximum number of results returned in a single page. The value should be in the range 1, 1000. If the value given is outside this range, the server will decide the number of results to be returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token from a previous call to ListSnoozesRequest to get the next page of results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project (https://cloud.google.com/monitoring/api/v3#project_name) whose Snoozes should be listed. The format is: projects/[PROJECT_ID_OR_NUMBER] ", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/snoozes", + "response": { + "$ref": "ListSnoozesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read" + ] + }, + "patch": { + "description": "Updates a Snooze, identified by its name, with the parameters in the given Snooze object.", + "flatPath": "v3/projects/{projectsId}/snoozes/{snoozesId}", + "httpMethod": "PATCH", + "id": "monitoring.projects.snoozes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the Snooze. The format is: projects/[PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID] The ID of the Snooze will be generated by the system.", + "location": "path", + "pattern": "^projects/[^/]+/snoozes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The fields to update.For each field listed in update_mask: If the Snooze object supplied in the UpdateSnoozeRequest has a value for that field, the value of the field in the existing Snooze will be set to the value of the field in the supplied Snooze. If the field does not have a value in the supplied Snooze, the field in the existing Snooze is set to its default value.Fields not listed retain their existing value.The following are the field names that are accepted in update_mask: display_name interval.start_time interval.end_timeThat said, the start time and end time of the Snooze determines which fields can legally be updated. Before attempting an update, users should consult the documentation for UpdateSnoozeRequest, which talks about which fields can be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v3/{+name}", + "request": { + "$ref": "Snooze" + }, + "response": { + "$ref": "Snooze" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring" + ] + } + } + }, "timeSeries": { "methods": { "create": { @@ -2099,6 +2237,11 @@ "parent" ], "parameters": { + "filter": { + "description": "If provided, this field specifies the criteria that must be met by uptime checks to be included in the response.For more details, see Filtering syntax (https://cloud.google.com/monitoring/api/v3/sorting-and-filtering#filter_syntax).", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of results to return in a single response. The server may further constrain the maximum number of results returned in a single page. If the page_size is <=0, the server will decide the number of results to be returned.", "format": "int32", @@ -2179,7 +2322,7 @@ ], "parameters": { "parent": { - "description": "Required. Resource name (https://cloud.google.com/monitoring/api/v3#project_name) of the parent workspace. The format is: projects/[PROJECT_ID_OR_NUMBER] ", + "description": "Required. Resource name (https://cloud.google.com/monitoring/api/v3#project_name) of the parent Metrics Scope. The format is: projects/[PROJECT_ID_OR_NUMBER] ", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -2257,7 +2400,7 @@ ] }, "list": { - "description": "List Services for this workspace.", + "description": "List Services for this Metrics Scope.", "flatPath": "v3/{v3Id}/{v3Id1}/services", "httpMethod": "GET", "id": "monitoring.services.list", @@ -2266,7 +2409,7 @@ ], "parameters": { "filter": { - "description": "A filter specifying what Services to return. The filter currently supports the following fields: - `identifier_case` - `app_engine.module_id` - `cloud_endpoints.service` (reserved for future use) - `mesh_istio.mesh_uid` - `mesh_istio.service_namespace` - `mesh_istio.service_name` - `cluster_istio.location` (deprecated) - `cluster_istio.cluster_name` (deprecated) - `cluster_istio.service_namespace` (deprecated) - `cluster_istio.service_name` (deprecated) identifier_case refers to which option in the identifier oneof is populated. For example, the filter identifier_case = \"CUSTOM\" would match all services with a value for the custom field. Valid options are \"CUSTOM\", \"APP_ENGINE\", \"MESH_ISTIO\", plus \"CLUSTER_ISTIO\" (deprecated) and \"CLOUD_ENDPOINTS\" (reserved for future use).", + "description": "A filter specifying what Services to return. The filter supports filtering on a particular service-identifier type or one of its attributes.To filter on a particular service-identifier type, the identifier_case refers to which option in the identifier field is populated. For example, the filter identifier_case = \"CUSTOM\" would match all services with a value for the custom field. Valid options include \"CUSTOM\", \"APP_ENGINE\", \"MESH_ISTIO\", and the other options listed at https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#ServiceTo filter on an attribute of a service-identifier type, apply the filter name by using the snake case of the service-identifier type and the attribute of that service-identifier type, and join the two with a period. For example, to filter by the meshUid field of the MeshIstio service-identifier type, you must filter on mesh_istio.mesh_uid = \"123\" to match all services with mesh UID \"123\". Service-identifier types and their attributes are described at https://cloud.google.com/monitoring/api/ref_v3/rest/v3/services#Service", "location": "query", "type": "string" }, @@ -2282,7 +2425,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent containing the listed services, either a project (https://cloud.google.com/monitoring/api/v3#project_name) or a Monitoring Workspace. The formats are: projects/[PROJECT_ID_OR_NUMBER] workspaces/[HOST_PROJECT_ID_OR_NUMBER] ", + "description": "Required. Resource name of the parent containing the listed services, either a project (https://cloud.google.com/monitoring/api/v3#project_name) or a Monitoring Metrics Scope. The formats are: projects/[PROJECT_ID_OR_NUMBER] workspaces/[HOST_PROJECT_ID_OR_NUMBER] ", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -2466,7 +2609,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent containing the listed SLOs, either a project or a Monitoring Workspace. The formats are: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] workspaces/[HOST_PROJECT_ID_OR_NUMBER]/services/- ", + "description": "Required. Resource name of the parent containing the listed SLOs, either a project or a Monitoring Metrics Scope. The formats are: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] workspaces/[HOST_PROJECT_ID_OR_NUMBER]/services/- ", "location": "path", "pattern": "^[^/]+/[^/]+/services/[^/]+$", "required": true, @@ -2571,7 +2714,7 @@ } } }, - "revision": "20220218", + "revision": "20230115", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -2727,7 +2870,7 @@ "description": "A read-only record of the most recent change to the alerting policy. If provided in a call to create or update, this field will be ignored." }, "name": { - "description": "Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [ALERT_POLICY_ID] is assigned by Stackdriver Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the name field in the alerting policy passed as part of the request.", + "description": "Required if the policy exists. The resource name for this policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] [ALERT_POLICY_ID] is assigned by Cloud Monitoring when the policy is created. When calling the alertPolicies.create method, do not include the name field in the alerting policy passed as part of the request.", "type": "string" }, "notificationChannels": { @@ -2772,7 +2915,7 @@ "id": "AppEngine", "properties": { "moduleId": { - "description": "The ID of the App Engine module underlying this service. Corresponds to the module_id resource label in the gae_app monitored resource: https://cloud.google.com/monitoring/api/resources#tag_gae_app", + "description": "The ID of the App Engine module underlying this service. Corresponds to the module_id resource label in the gae_app monitored resource (https://cloud.google.com/monitoring/api/resources#tag_gae_app).", "type": "string" } }, @@ -2799,6 +2942,24 @@ }, "type": "object" }, + "BasicService": { + "description": "A well-known service type, defined by its service type and service labels. Documentation and examples here (https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).", + "id": "BasicService", + "properties": { + "serviceLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels that specify the resource that emits the monitoring data which is used for SLO reporting of this Service. Documentation and valid values for given service types here (https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).", + "type": "object" + }, + "serviceType": { + "description": "The type of service that this basic service defines, e.g. APP_ENGINE service type. Documentation and valid values here (https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).", + "type": "string" + } + }, + "type": "object" + }, "BasicSli": { "description": "An SLI measuring performance on a well-known service type. Performance will be computed on the basis of pre-defined metrics. The type of the service_resource determines the metrics to use and the service_resource.labels and metric_labels are used to construct a monitoring filter to filter that metric down to just the data relevant to this service.", "id": "BasicSli", @@ -2859,7 +3020,22 @@ "id": "CloudEndpoints", "properties": { "service": { - "description": "The name of the Cloud Endpoints service underlying this service. Corresponds to the service resource label in the api monitored resource: https://cloud.google.com/monitoring/api/resources#tag_api", + "description": "The name of the Cloud Endpoints service underlying this service. Corresponds to the service resource label in the api monitored resource (https://cloud.google.com/monitoring/api/resources#tag_api).", + "type": "string" + } + }, + "type": "object" + }, + "CloudRun": { + "description": "Cloud Run service. Learn more at https://cloud.google.com/run.", + "id": "CloudRun", + "properties": { + "location": { + "description": "The location the service is run. Corresponds to the location resource label in the cloud_run_revision monitored resource (https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).", + "type": "string" + }, + "serviceName": { + "description": "The name of the Cloud Run service. Corresponds to the service_name resource label in the cloud_run_revision monitored resource (https://cloud.google.com/monitoring/api/resources#tag_cloud_run_revision).", "type": "string" } }, @@ -3032,7 +3208,7 @@ "type": "string" }, "name": { - "description": "Required if the condition exists. The unique resource name for this condition. Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID] [CONDITION_ID] is assigned by Stackdriver Monitoring when the condition is created as part of a new or updated alerting policy.When calling the alertPolicies.create method, do not include the name field in the conditions of the requested alerting policy. Stackdriver Monitoring creates the condition identifiers and includes them in the new policy.When calling the alertPolicies.update method to update a policy, including a condition name causes the existing condition to be updated. Conditions without names are added to the updated policy. Existing conditions are deleted if they are not updated.Best practice is to preserve [CONDITION_ID] if you make only small changes, such as those to condition thresholds, durations, or trigger values. Otherwise, treat the change as a new condition and let the existing condition be deleted.", + "description": "Required if the condition exists. The unique resource name for this condition. Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID] [CONDITION_ID] is assigned by Cloud Monitoring when the condition is created as part of a new or updated alerting policy.When calling the alertPolicies.create method, do not include the name field in the conditions of the requested alerting policy. Cloud Monitoring creates the condition identifiers and includes them in the new policy.When calling the alertPolicies.update method to update a policy, including a condition name causes the existing condition to be updated. Conditions without names are added to the updated policy. Existing conditions are deleted if they are not updated.Best practice is to preserve [CONDITION_ID] if you make only small changes, such as those to condition thresholds, durations, or trigger values. Otherwise, treat the change as a new condition and let the existing condition be deleted.", "type": "string" } }, @@ -3046,6 +3222,10 @@ "description": "String, regex or JSON content to match. Maximum 1024 bytes. An empty content string indicates no content matching is to be performed.", "type": "string" }, + "jsonPathMatcher": { + "$ref": "JsonPathMatcher", + "description": "Matcher information for MATCHES_JSON_PATH and NOT_MATCHES_JSON_PATH" + }, "matcher": { "description": "The type of content matcher that will be applied to the server output, compared to the content string when the check is run.", "enum": [ @@ -3053,14 +3233,18 @@ "CONTAINS_STRING", "NOT_CONTAINS_STRING", "MATCHES_REGEX", - "NOT_MATCHES_REGEX" + "NOT_MATCHES_REGEX", + "MATCHES_JSON_PATH", + "NOT_MATCHES_JSON_PATH" ], "enumDescriptions": [ "No content matcher type specified (maintained for backward compatibility, but deprecated for future use). Treated as CONTAINS_STRING.", "Selects substring matching. The match succeeds if the output contains the content string. This is the default value for checks without a matcher option, or where the value of matcher is CONTENT_MATCHER_OPTION_UNSPECIFIED.", "Selects negation of substring matching. The match succeeds if the output does NOT contain the content string.", "Selects regular-expression matching. The match succeeds if the output matches the regular expression specified in the content string. Regex matching is only supported for HTTP/HTTPS checks.", - "Selects negation of regular-expression matching. The match succeeds if the output does NOT match the regular expression specified in the content string. Regex matching is only supported for HTTP/HTTPS checks." + "Selects negation of regular-expression matching. The match succeeds if the output does NOT match the regular expression specified in the content string. Regex matching is only supported for HTTP/HTTPS checks.", + "Selects JSONPath matching. See JsonPathMatcher for details on when the match succeeds. JSONPath matching is only supported for HTTP/HTTPS checks.", + "Selects JSONPath matching. See JsonPathMatcher for details on when the match succeeds. Succeeds when output does NOT match as specified. JSONPath is only supported for HTTP/HTTPS checks." ], "type": "string" } @@ -3145,8 +3329,22 @@ }, "type": "object" }, + "Criteria": { + "description": "Criteria specific to the AlertPolicys that this Snooze applies to. The Snooze will suppress alerts that come from one of the AlertPolicys whose names are supplied.", + "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Custom": { - "description": "Custom view of service telemetry. Currently a place-holder pending final design.", + "description": "Use a custom service to designate a service that you want to monitor when none of the other service types (like App Engine, Cloud Run, or a GKE type) matches your intended service.", "id": "Custom", "properties": {}, "type": "object" @@ -3216,7 +3414,7 @@ "id": "Documentation", "properties": { "content": { - "description": "The text of the documentation, interpreted according to mime_type. The content may not exceed 8,192 Unicode characters and may not exceed more than 10,240 bytes when encoded in UTF-8 format, whichever is smaller. This text can be templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-variables).", + "description": "The body of the documentation, interpreted according to mime_type. The content may not exceed 8,192 Unicode characters and may not exceed more than 10,240 bytes when encoded in UTF-8 format, whichever is smaller. This text can be templatized by using variables (https://cloud.google.com/monitoring/alerts/doc-variables).", "type": "string" }, "mimeType": { @@ -3241,7 +3439,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -3433,6 +3631,18 @@ }, "type": "object" }, + "ForecastOptions": { + "description": "Options used when forecasting the time series and testing the predicted value against the threshold.", + "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.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GetNotificationChannelVerificationCodeRequest": { "description": "The GetNotificationChannelVerificationCode request.", "id": "GetNotificationChannelVerificationCodeRequest", @@ -3461,6 +3671,90 @@ }, "type": "object" }, + "GkeNamespace": { + "description": "GKE Namespace. The field names correspond to the resource metadata labels on monitored resources that fall under a namespace (for example, k8s_container or k8s_pod).", + "id": "GkeNamespace", + "properties": { + "clusterName": { + "description": "The name of the parent cluster.", + "type": "string" + }, + "location": { + "description": "The location of the parent cluster. This may be a zone or region.", + "type": "string" + }, + "namespaceName": { + "description": "The name of this namespace.", + "type": "string" + }, + "projectId": { + "description": "Output only. The project this resource lives in. For legacy services migrated from the Custom type, this may be a distinct project from the one parenting the service itself.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GkeService": { + "description": "GKE Service. The \"service\" here represents a Kubernetes service object (https://kubernetes.io/docs/concepts/services-networking/service). The field names correspond to the resource labels on k8s_service monitored resources (https://cloud.google.com/monitoring/api/resources#tag_k8s_service).", + "id": "GkeService", + "properties": { + "clusterName": { + "description": "The name of the parent cluster.", + "type": "string" + }, + "location": { + "description": "The location of the parent cluster. This may be a zone or region.", + "type": "string" + }, + "namespaceName": { + "description": "The name of the parent namespace.", + "type": "string" + }, + "projectId": { + "description": "Output only. The project this resource lives in. For legacy services migrated from the Custom type, this may be a distinct project from the one parenting the service itself.", + "readOnly": true, + "type": "string" + }, + "serviceName": { + "description": "The name of this service.", + "type": "string" + } + }, + "type": "object" + }, + "GkeWorkload": { + "description": "A GKE Workload (Deployment, StatefulSet, etc). The field names correspond to the metadata labels on monitored resources that fall under a workload (for example, k8s_container or k8s_pod).", + "id": "GkeWorkload", + "properties": { + "clusterName": { + "description": "The name of the parent cluster.", + "type": "string" + }, + "location": { + "description": "The location of the parent cluster. This may be a zone or region.", + "type": "string" + }, + "namespaceName": { + "description": "The name of the parent namespace.", + "type": "string" + }, + "projectId": { + "description": "Output only. The project this resource lives in. For legacy services migrated from the Custom type, this may be a distinct project from the one parenting the service itself.", + "readOnly": true, + "type": "string" + }, + "topLevelControllerName": { + "description": "The name of this workload.", + "type": "string" + }, + "topLevelControllerType": { + "description": "The type of this workload (for example, \"Deployment\" or \"DaemonSet\")", + "type": "string" + } + }, + "type": "object" + }, "GoogleMonitoringV3Range": { "description": "Range of numerical values within min and max.", "id": "GoogleMonitoringV3Range", @@ -3509,6 +3803,13 @@ "description": "Information involved in an HTTP/HTTPS Uptime check request.", "id": "HttpCheck", "properties": { + "acceptedResponseStatusCodes": { + "description": "If present, the check will only pass if the HTTP response status code is in this set of status codes. If empty, the HTTP status code will only pass if the HTTP status code is 200-299.", + "items": { + "$ref": "ResponseStatusCode" + }, + "type": "array" + }, "authInfo": { "$ref": "BasicAuthentication", "description": "The authentication information. Optional when creating an HTTP check; defaults to empty." @@ -3545,6 +3846,10 @@ "description": "Optional (defaults to \"/\"). The path to the page against which to run the check. Will be combined with the host (specified within the monitored_resource) and port to construct the full URL. If the provided path does not begin with \"/\", a \"/\" will be prepended automatically.", "type": "string" }, + "pingConfig": { + "$ref": "PingConfig", + "description": "Contains information needed to add pings to an HTTP check." + }, "port": { "description": "Optional (defaults to 80 when use_ssl is false, and 443 when use_ssl is true). The TCP port on the HTTP server against which to run the check. Will be combined with host (specified within the monitored_resource) and path to construct the full URL.", "format": "int32", @@ -3580,7 +3885,7 @@ "id": "InternalChecker", "properties": { "displayName": { - "description": "The checker's human-readable name. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced.", + "description": "The checker's human-readable name. The display name should be unique within a Cloud Monitoring Metrics Scope in order to make it easier to identify; however, uniqueness is not enforced.", "type": "string" }, "gcpZone": { @@ -3588,7 +3893,7 @@ "type": "string" }, "name": { - "description": "A unique resource name for this InternalChecker. The format is: projects/[PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID] [PROJECT_ID_OR_NUMBER] is the Stackdriver Workspace project for the Uptime check config associated with the internal checker.", + "description": "A unique resource name for this InternalChecker. The format is: projects/[PROJECT_ID_OR_NUMBER]/internalCheckers/[INTERNAL_CHECKER_ID] [PROJECT_ID_OR_NUMBER] is the Cloud Monitoring Metrics Scope project for the Uptime check config associated with the internal checker.", "type": "string" }, "network": { @@ -3596,7 +3901,7 @@ "type": "string" }, "peerProjectId": { - "description": "The GCP project ID where the internal checker lives. Not necessary the same as the Workspace project.", + "description": "The GCP project ID where the internal checker lives. Not necessary the same as the Metrics Scope project.", "type": "string" }, "state": { @@ -3635,6 +3940,31 @@ }, "type": "object" }, + "JsonPathMatcher": { + "description": "Information needed to perform a JSONPath content match. Used for ContentMatcherOption::MATCHES_JSON_PATH and ContentMatcherOption::NOT_MATCHES_JSON_PATH.", + "id": "JsonPathMatcher", + "properties": { + "jsonMatcher": { + "description": "The type of JSONPath match that will be applied to the JSON output (ContentMatcher.content)", + "enum": [ + "JSON_PATH_MATCHER_OPTION_UNSPECIFIED", + "EXACT_MATCH", + "REGEX_MATCH" + ], + "enumDescriptions": [ + "No JSONPath matcher type specified (not valid).", + "Selects 'exact string' matching. The match succeeds if the content at the json_path within the output is exactly the same as the content string.", + "Selects regular-expression matching. The match succeeds if the content at the json_path within the output matches the regular expression specified in the content string." + ], + "type": "string" + }, + "jsonPath": { + "description": "JSONPath within the response output pointing to the expected ContentMatcher::content to match against.", + "type": "string" + } + }, + "type": "object" + }, "LabelDescriptor": { "description": "A description of a label.", "id": "LabelDescriptor", @@ -3895,6 +4225,24 @@ }, "type": "object" }, + "ListSnoozesResponse": { + "description": "The results of a successful ListSnoozes call, containing the matching Snoozes.", + "id": "ListSnoozesResponse", + "properties": { + "nextPageToken": { + "description": "Page token for repeated calls to ListSnoozes, to fetch additional pages of results. If this is empty or missing, there are no more pages.", + "type": "string" + }, + "snoozes": { + "description": "Snoozes matching this list call.", + "items": { + "$ref": "Snooze" + }, + "type": "array" + } + }, + "type": "object" + }, "ListTimeSeriesResponse": { "description": "The ListTimeSeries response.", "id": "ListTimeSeriesResponse", @@ -4270,7 +4618,7 @@ "enumDescriptions": [ "An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.", "If there is no data to evaluate the condition, then evaluate the condition as false.", - "If there is no data to evaluate the condition, then evaluate the condition as true. The default for conditions with a duration value.", + "If there is no data to evaluate the condition, then evaluate the condition as true.", "Do not evaluate the condition to any value if there is no data." ], "type": "string" @@ -4279,6 +4627,10 @@ "description": "Required. A filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies which time series should be compared with the threshold.The filter is similar to the one that is specified in the ListTimeSeries request (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) (that call is useful to verify the time series that will be retrieved / processed). The filter must specify the metric type and the resource type. Optionally, it can specify resource labels and metric labels. This field must not exceed 2048 Unicode characters in length.", "type": "string" }, + "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." + }, "thresholdValue": { "description": "A value against which to compare the time series.", "format": "double", @@ -4405,7 +4757,7 @@ "enumDescriptions": [ "An unspecified evaluation missing data option. Equivalent to EVALUATION_MISSING_DATA_NO_OP.", "If there is no data to evaluate the condition, then evaluate the condition as false.", - "If there is no data to evaluate the condition, then evaluate the condition as true. The default for conditions with a duration value.", + "If there is no data to evaluate the condition, then evaluate the condition as true.", "Do not evaluate the condition to any value if there is no data." ], "type": "string" @@ -4560,8 +4912,8 @@ ], "enumDescriptions": [ "An invalid sentinel value, used to indicate that a tier has not been provided explicitly.", - "The Stackdriver Basic tier, a free tier of service that provides basic features, a moderate allotment of logs, and access to built-in metrics. A number of features are not available in this tier. For more details, see the service tiers documentation (https://cloud.google.com/monitoring/workspaces/tiers).", - "The Stackdriver Premium tier, a higher, more expensive tier of service that provides access to all Stackdriver features, lets you use Stackdriver with AWS accounts, and has a larger allotments for logs and metrics. For more details, see the service tiers documentation (https://cloud.google.com/monitoring/workspaces/tiers)." + "The Cloud Monitoring Basic tier, a free tier of service that provides basic features, a moderate allotment of logs, and access to built-in metrics. A number of features are not available in this tier. For more details, see the service tiers documentation (https://cloud.google.com/monitoring/workspaces/tiers).", + "The Cloud Monitoring Premium tier, a higher, more expensive tier of service that provides access to all Cloud Monitoring features, lets you use Cloud Monitoring with AWS accounts, and has a larger allotments for logs and metrics. For more details, see the service tiers documentation (https://cloud.google.com/monitoring/workspaces/tiers)." ], "type": "string" }, @@ -4660,6 +5012,18 @@ }, "type": "object" }, + "PingConfig": { + "description": "Information involved in sending ICMP pings alongside public HTTP/TCP checks. For HTTP, the pings are performed for each part of the redirect chain.", + "id": "PingConfig", + "properties": { + "pingsCount": { + "description": "Number of ICMP pings. A maximum of 3 ICMP pings is currently supported.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Point": { "description": "A single data point in a time series.", "id": "Point", @@ -4799,6 +5163,40 @@ }, "type": "object" }, + "ResponseStatusCode": { + "description": "A status to accept. Either a status code class like \"2xx\", or an integer status code like \"200\".", + "id": "ResponseStatusCode", + "properties": { + "statusClass": { + "description": "A class of status codes to accept.", + "enum": [ + "STATUS_CLASS_UNSPECIFIED", + "STATUS_CLASS_1XX", + "STATUS_CLASS_2XX", + "STATUS_CLASS_3XX", + "STATUS_CLASS_4XX", + "STATUS_CLASS_5XX", + "STATUS_CLASS_ANY" + ], + "enumDescriptions": [ + "Default value that matches no status codes.", + "The class of status codes between 100 and 199.", + "The class of status codes between 200 and 299.", + "The class of status codes between 300 and 399.", + "The class of status codes between 400 and 499.", + "The class of status codes between 500 and 599.", + "The class of all status codes." + ], + "type": "string" + }, + "statusValue": { + "description": "A status code to accept.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "SendNotificationChannelVerificationCodeRequest": { "description": "The SendNotificationChannelVerificationCode request.", "id": "SendNotificationChannelVerificationCodeRequest", @@ -4813,10 +5211,18 @@ "$ref": "AppEngine", "description": "Type used for App Engine services." }, + "basicService": { + "$ref": "BasicService", + "description": "Message that contains the service type and service labels of this service if it is a basic service. Documentation and examples here (https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli)." + }, "cloudEndpoints": { "$ref": "CloudEndpoints", "description": "Type used for Cloud Endpoints services." }, + "cloudRun": { + "$ref": "CloudRun", + "description": "Type used for Cloud Run services." + }, "clusterIstio": { "$ref": "ClusterIstio", "description": "Type used for Istio services that live in a Kubernetes cluster." @@ -4829,6 +5235,18 @@ "description": "Name used for UI elements listing this Service.", "type": "string" }, + "gkeNamespace": { + "$ref": "GkeNamespace", + "description": "Type used for GKE Namespaces." + }, + "gkeService": { + "$ref": "GkeService", + "description": "Type used for GKE Services (the Kubernetes concept of a service)." + }, + "gkeWorkload": { + "$ref": "GkeWorkload", + "description": "Type used for GKE Workloads." + }, "istioCanonicalService": { "$ref": "IstioCanonicalService", "description": "Type used for canonical services scoped to an Istio mesh. Metrics for Istio are documented here (https://istio.io/latest/docs/reference/config/metrics/)" @@ -4934,6 +5352,29 @@ }, "type": "object" }, + "Snooze": { + "description": "A Snooze will prevent any alerts from being opened, and close any that are already open. The Snooze will work on alerts that match the criteria defined in the Snooze. The Snooze will be active from interval.start_time through interval.end_time.", + "id": "Snooze", + "properties": { + "criteria": { + "$ref": "Criteria", + "description": "Required. This defines the criteria for applying the Snooze. See Criteria for more information." + }, + "displayName": { + "description": "Required. A display name for the Snooze. This can be, at most, 512 unicode characters.", + "type": "string" + }, + "interval": { + "$ref": "TimeInterval", + "description": "Required. The Snooze will be active from interval.start_time through interval.end_time. interval.start_time cannot be in the past. There is a 15 second clock skew to account for the time it takes for a request to reach the API from the UI." + }, + "name": { + "description": "Required. The name of the Snooze. The format is: projects/[PROJECT_ID_OR_NUMBER]/snoozes/[SNOOZE_ID] The ID of the Snooze will be generated by the system.", + "type": "string" + } + }, + "type": "object" + }, "SourceContext": { "description": "SourceContext represents information about the source of a protobuf element, like the file in which it is defined.", "id": "SourceContext", @@ -4987,6 +5428,10 @@ "description": "Information required for a TCP Uptime check request.", "id": "TcpCheck", "properties": { + "pingConfig": { + "$ref": "PingConfig", + "description": "Contains information needed to add pings to a TCP check." + }, "port": { "description": "The TCP port on the server against which to run the check. Will be combined with host (specified within the monitored_resource) to construct the full URL. Required.", "format": "int32", @@ -5272,7 +5717,7 @@ "type": "array" }, "displayName": { - "description": "A human-friendly name for the Uptime check configuration. The display name should be unique within a Stackdriver Workspace in order to make it easier to identify; however, uniqueness is not enforced. Required.", + "description": "A human-friendly name for the Uptime check configuration. The display name should be unique within a Cloud Monitoring Workspace in order to make it easier to identify; however, uniqueness is not enforced. Required.", "type": "string" }, "httpCheck": { @@ -5292,7 +5737,7 @@ }, "monitoredResource": { "$ref": "MonitoredResource", - "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" + "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.", @@ -5336,6 +5781,13 @@ "description": "The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). Required.", "format": "google-duration", "type": "string" + }, + "userLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-supplied key/value data to be used for organizing and identifying the UptimeCheckConfig 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.", + "type": "object" } }, "type": "object" diff --git a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json index 369080e666..59615ebd22 100644 --- a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json +++ b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessaccountmanagement.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Account Management", - "description": "The My Business Account Management API provides an interface for managing access to a location on Google.", + "description": "The My Business Account Management API provides an interface for managing access to a location on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -148,7 +148,7 @@ "type": "string" }, "pageSize": { - "description": "Optional. How many accounts to fetch per page. The minimum supported page_size is 2. The default and maximum is 20.", + "description": "Optional. How many accounts to fetch per page. The default and maximum is 20.", "format": "int32", "location": "query", "type": "integer" @@ -530,7 +530,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/", "schemas": { "AcceptInvitationRequest": { @@ -577,7 +577,7 @@ "type": "string" }, "primaryOwner": { - "description": "Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}/`.", + "description": "Required. Input only. The resource name of the account which will be the primary owner of the account being created. It should be of the form `accounts/{account_id}`.", "type": "string" }, "role": { @@ -658,6 +658,10 @@ "description": "An administrator of an Account or a location.", "id": "Admin", "properties": { + "account": { + "description": "Immutable. The name of the Account resource that this Admin refers to. Used when calling locations.admins.create to invite a LocationGroup as an admin. If both this field and `admin` are set on `CREATE` requests, this field takes precedence and the email address in `admin` will be ignored. Format: `accounts/{account}`.", + "type": "string" + }, "admin": { "description": "Optional. The name of the admin. When making the initial invitation, this is the invitee's email address. On `GET` calls, the user's email address is returned if the invitation is still pending. Otherwise, it contains the user's first and last names. This field is only needed to be set during admin creation.", "type": "string" @@ -699,7 +703,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -840,7 +844,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { diff --git a/etc/api/mybusinessbusinesscalls/v1/mybusinessbusinesscalls-api.json b/etc/api/mybusinessbusinesscalls/v1/mybusinessbusinesscalls-api.json index 5733d3fc6c..a34848a9c6 100644 --- a/etc/api/mybusinessbusinesscalls/v1/mybusinessbusinesscalls-api.json +++ b/etc/api/mybusinessbusinesscalls/v1/mybusinessbusinesscalls-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessbusinesscalls.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Business Calls", - "description": "The My Business Business Calls API manages business calls information of a location on Google.", + "description": "The My Business Business Calls API manages business calls information of a location on Google and collect insights like the number of missed calls to their location. Additional information about Business calls can be found at https://support.google.com/business/answer/9688285?p=call_history. If the Google Business Profile links to a Google Ads account and call history is turned on, calls that last longer than a specific time, and that can be attributed to an ad interaction, will show in the linked Google Ads account under the \"Calls from Ads\" conversion. If smart bidding and call conversions are used in the optimization strategy, there could be a change in ad spend. Learn more about smart bidding. To view and perform actions on a location's calls, you need to be a `OWNER`, `CO_OWNER` or `MANAGER` of the location. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -198,7 +198,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessbusinesscalls.googleapis.com/", "schemas": { "AggregateMetrics": { diff --git a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json index 1943427cf1..2c7c3c1bde 100644 --- a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json +++ b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessbusinessinformation.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Business Information", - "description": "The My Business Business Information API provides an interface for managing business information on Google.", + "description": "The My Business Business Information API provides an interface for managing business information. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -662,7 +662,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessbusinessinformation.googleapis.com/", "schemas": { "AdWordsLocationExtensions": { @@ -983,7 +983,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1453,7 +1453,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { diff --git a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json index 7e22306517..9490287343 100644 --- a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json +++ b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinesslodging.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Lodging", - "description": "The My Business Lodging API enables managing lodging business information on Google.", + "description": "The My Business Lodging API enables managing lodging business information on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -194,7 +194,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinesslodging.googleapis.com/", "schemas": { "Accessibility": { @@ -1216,6 +1216,26 @@ "Amenity or service availability depends on the day of the week." ], "type": "string" + }, + "kidsFriendly": { + "description": "Kids friendly. The hotel has one or more special features for families with children, such as reduced rates, child-sized beds, kids' club, babysitting service, or suitable place to play on premises.", + "type": "boolean" + }, + "kidsFriendlyException": { + "description": "Kids friendly exception.", + "enum": [ + "EXCEPTION_UNSPECIFIED", + "UNDER_CONSTRUCTION", + "DEPENDENT_ON_SEASON", + "DEPENDENT_ON_DAY_OF_WEEK" + ], + "enumDescriptions": [ + "Default unspecified exception. Use this only if a more specific exception does not match.", + "Amenity or service is unavailable due to ongoing work orders.", + "Amenity or service availability is seasonal.", + "Amenity or service availability depends on the day of the week." + ], + "type": "string" } }, "type": "object" @@ -4982,7 +5002,7 @@ "type": "array" }, "leedCertification": { - "description": "LEED certification.", + "description": "LEED certification. Deprecated: this field is no longer populated. LEED certification status is now provided directly by USGBC.", "enum": [ "LEED_CERTIFICATION_UNSPECIFIED", "NO_LEED_CERTIFICATION", @@ -5002,7 +5022,7 @@ "type": "string" }, "leedCertificationException": { - "description": "LEED certification exception.", + "description": "LEED certification exception. Deprecated: this field is no longer populated. LEED certification status is now provided directly by USGBC.", "enum": [ "EXCEPTION_UNSPECIFIED", "UNDER_CONSTRUCTION", diff --git a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json index 0e4903a25f..159f4850fb 100644 --- a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json +++ b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessnotifications.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Notification Settings", - "description": "The My Business Notification Settings API enables managing notification settings for business accounts.", + "description": "The My Business Notification Settings API enables managing notification settings for business accounts. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -154,7 +154,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessnotifications.googleapis.com/", "schemas": { "NotificationSetting": { @@ -194,7 +194,7 @@ "An answer of the location is updated. The notification will provide the resource name of question and answer.", "Indicates whether there is a change in location metadata's duplicate location field.", "Deprecated: Migrate the existing usages of this value to the more expanded \"VOICE_OF_MERCHANT_UPDATED\".", - "Indicates whether the location has an update in voice of merchant status. Call GetVoiceOfMerchantState rpc for more details" + "Indicates whether the location has an update in Voice of Merchant (VOM) status. VOM dictates whether the location is in good standing and the merchant has control over the business on Google. Any edits made to the location will propagate to Maps after passing the review phase. Call GetVoiceOfMerchantState rpc for more details." ], "type": "string" }, diff --git a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json index abe15e7dbd..380b7e95af 100644 --- a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json +++ b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessplaceactions.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Place Actions", - "description": "The My Business Place Actions API provides an interface for managing place action links of a location on Google.", + "description": "The My Business Place Actions API provides an interface for managing place action links of a location on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -281,11 +281,11 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessplaceactions.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -358,7 +358,8 @@ "DINING_RESERVATION", "FOOD_ORDERING", "FOOD_DELIVERY", - "FOOD_TAKEOUT" + "FOOD_TAKEOUT", + "SHOP_ONLINE" ], "enumDescriptions": [ "Not specified.", @@ -367,7 +368,8 @@ "The action type is making a dining reservation.", "The action type is ordering food for delivery and/or takeout.", "The action type is ordering food for delivery.", - "The action type is ordering food for takeout." + "The action type is ordering food for takeout.", + "The action type is shopping, that can be delivery and/or pickup." ], "type": "string" }, @@ -416,7 +418,8 @@ "DINING_RESERVATION", "FOOD_ORDERING", "FOOD_DELIVERY", - "FOOD_TAKEOUT" + "FOOD_TAKEOUT", + "SHOP_ONLINE" ], "enumDescriptions": [ "Not specified.", @@ -425,7 +428,8 @@ "The action type is making a dining reservation.", "The action type is ordering food for delivery and/or takeout.", "The action type is ordering food for delivery.", - "The action type is ordering food for takeout." + "The action type is ordering food for takeout.", + "The action type is shopping, that can be delivery and/or pickup." ], "type": "string" } diff --git a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json index 576f7c7afc..6d5c4a1a5e 100644 --- a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json +++ b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json @@ -3,7 +3,7 @@ "baseUrl": "https://mybusinessqanda.googleapis.com/", "batchPath": "batch", "canonicalName": "My Business Q&A", - "description": "The My Business Q&A API allows questions and answers to be posted for specific listings.", + "description": "The My Business Q&A API allows questions and answers to be posted for specific listings. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/my-business/", "fullyEncodeReservedExpansion": true, @@ -147,28 +147,6 @@ "$ref": "Empty" } }, - "deleteAnswers": { - "description": "Deletes the answer written by the current user to a question.", - "flatPath": "v1/locations/{locationsId}/questions/{questionsId}/answers", - "httpMethod": "DELETE", - "id": "mybusinessqanda.locations.questions.deleteAnswers", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the question to delete an answer for.", - "location": "path", - "pattern": "^locations/[^/]+/questions/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}/answers", - "response": { - "$ref": "Empty" - } - }, "list": { "description": "Returns the paginated list of questions and some of its answers for a specified location. This operation is only valid if the specified location is verified.", "flatPath": "v1/locations/{locationsId}/questions", @@ -253,6 +231,28 @@ "resources": { "answers": { "methods": { + "delete": { + "description": "Deletes the answer written by the current user to a question.", + "flatPath": "v1/locations/{locationsId}/questions/{questionsId}/answers:delete", + "httpMethod": "DELETE", + "id": "mybusinessqanda.locations.questions.answers.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the question to delete an answer for.", + "location": "path", + "pattern": "^locations/[^/]+/questions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}/answers:delete", + "response": { + "$ref": "Empty" + } + }, "list": { "description": "Returns the paginated list of answers for a specified question.", "flatPath": "v1/locations/{locationsId}/questions/{questionsId}/answers", @@ -281,12 +281,12 @@ "parent": { "description": "Required. The name of the question to fetch answers for.", "location": "path", - "pattern": "^locations/[^/]+/questions/[^/]+/answers$", + "pattern": "^locations/[^/]+/questions/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+parent}", + "path": "v1/{+parent}/answers", "response": { "$ref": "ListAnswersResponse" } @@ -323,7 +323,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessqanda.googleapis.com/", "schemas": { "Answer": { @@ -397,7 +397,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json index e7f7a06023..be6f21beb3 100644 --- a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json +++ b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json @@ -256,7 +256,7 @@ } } }, - "revision": "20220305", + "revision": "20230124", "rootUrl": "https://mybusinessverifications.googleapis.com/", "schemas": { "AddressVerificationData": { @@ -302,9 +302,24 @@ "type": "object" }, "ComplyWithGuidelines": { - "description": "Indicates that the location fails to comply with our [guidelines](https://support.google.com/business/answer/3038177). To fix this issue, consult the [Help Center Article](https://support.google.com/business/answer/4569145).", + "description": "Indicates that the location fails to comply with our [guidelines](https://support.google.com/business/answer/3038177).", "id": "ComplyWithGuidelines", - "properties": {}, + "properties": { + "recommendationReason": { + "description": "The reason why the location is being recommended to comply with guidelines.", + "enum": [ + "RECOMMENDATION_REASON_UNSPECIFIED", + "BUSINESS_LOCATION_SUSPENDED", + "BUSINESS_LOCATION_DISABLED" + ], + "enumDescriptions": [ + "Not specified.", + "The business location is suspended. To fix this issue, consult the [Help Center article](https://support.google.com/business/answer/4569145).", + "The business location is disabled. To fix this issue, consult the [Help Center article](https://support.google.com/business/answer/9334246)." + ], + "type": "string" + } + }, "type": "object" }, "EmailVerificationData": { @@ -361,7 +376,7 @@ "properties": { "location": { "$ref": "Location", - "description": "Required. The target 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" @@ -408,7 +423,7 @@ "type": "string" }, "primaryCategoryId": { - "description": "Required. Id of the category that best describes the core business this location engages in.", + "description": "Required. Id of the category that best describes the core business this location engages in. e.g. gcid:bakery.", "type": "string" }, "primaryPhone": { @@ -423,7 +438,7 @@ "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 i18n-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", + "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", "properties": { "addressLines": { diff --git a/etc/api/networkconnectivity/v1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1/networkconnectivity-api.json index 9af9339b36..df6f17e5da 100644 --- a/etc/api/networkconnectivity/v1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1/networkconnectivity-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://networkconnectivity.googleapis.com/", "batchPath": "batch", "canonicalName": "networkconnectivity", - "description": "The Network Connectivity API provides access to Network Connectivity Center.", + "description": "This API enables connectivity with and between Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest", "fullyEncodeReservedExpansion": true, @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -182,7 +182,7 @@ "hubs": { "methods": { "create": { - "description": "Creates a new hub in the specified project.", + "description": "Creates a new Network Connectivity Center hub in the specified project.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs", "httpMethod": "POST", "id": "networkconnectivity.projects.locations.global.hubs.create", @@ -220,7 +220,7 @@ ] }, "delete": { - "description": "Deletes the specified hub.", + "description": "Deletes a Network Connectivity Center hub.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "DELETE", "id": "networkconnectivity.projects.locations.global.hubs.delete", @@ -250,7 +250,7 @@ ] }, "get": { - "description": "Gets details about the specified hub.", + "description": "Gets details about a Network Connectivity Center hub.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.get", @@ -290,7 +290,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -306,7 +306,7 @@ ] }, "list": { - "description": "Lists hubs in a given project.", + "description": "Lists the Network Connectivity Center hubs associated with a given project.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.list", @@ -352,7 +352,7 @@ ] }, "patch": { - "description": "Updates the description and/or labels of the specified hub.", + "description": "Updates the description and/or labels of a Network Connectivity Center hub.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "PATCH", "id": "networkconnectivity.projects.locations.global.hubs.patch", @@ -400,7 +400,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -428,7 +428,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -466,7 +466,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/policyBasedRoutes/[^/]+$", "required": true, @@ -491,7 +491,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/policyBasedRoutes/[^/]+$", "required": true, @@ -519,7 +519,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/policyBasedRoutes/[^/]+$", "required": true, @@ -541,6 +541,188 @@ } } }, + "internalRanges": { + "methods": { + "create": { + "description": "Creates a new internal range in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/internalRanges", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.internalRanges.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "internalRangeId": { + "description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/internalRanges/foo') See https://google.aip.dev/122#resource-id-segments Unique per location.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name of the internal range.", + "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 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/{+parent}/internalRanges", + "request": { + "$ref": "InternalRange" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single internal range.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.internalRanges.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the internal range to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "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 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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single internal range.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.internalRanges.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InternalRange to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InternalRange" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists internal ranges in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/internalRanges", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.internalRanges.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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/internalRanges", + "response": { + "$ref": "ListInternalRangesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single internal range.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "PATCH", + "id": "networkconnectivity.projects.locations.internalRanges.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "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 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": "Optional. Field mask is used to specify the fields to be overwritten in the InternalRange 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": "InternalRange" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -664,10 +846,283 @@ } } }, + "serviceClasses": { + "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}/serviceClasses/{serviceClassesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceClasses.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/[^/]+/serviceClasses/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "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", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceClasses.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/[^/]+/serviceClasses/[^/]+$", + "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}/serviceClasses/{serviceClassesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceClasses.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/[^/]+/serviceClasses/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "serviceConnectionMaps": { + "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}/serviceConnectionMaps/{serviceConnectionMapsId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.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/[^/]+/serviceConnectionMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "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", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.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/[^/]+/serviceConnectionMaps/[^/]+$", + "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}/serviceConnectionMaps/{serviceConnectionMapsId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionMaps.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/[^/]+/serviceConnectionMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "serviceConnectionPolicies": { + "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}/serviceConnectionPolicies/{serviceConnectionPoliciesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.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/[^/]+/serviceConnectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "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", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.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/[^/]+/serviceConnectionPolicies/[^/]+$", + "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}/serviceConnectionPolicies/{serviceConnectionPoliciesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.serviceConnectionPolicies.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/[^/]+/serviceConnectionPolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "spokes": { "methods": { "create": { - "description": "Creates a spoke in the specified project and location.", + "description": "Creates a Network Connectivity Center spoke.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spokes", "httpMethod": "POST", "id": "networkconnectivity.projects.locations.spokes.create", @@ -705,7 +1160,7 @@ ] }, "delete": { - "description": "Deletes the specified spoke.", + "description": "Deletes a Network Connectivity Center spoke.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "DELETE", "id": "networkconnectivity.projects.locations.spokes.delete", @@ -735,7 +1190,7 @@ ] }, "get": { - "description": "Gets details about the specified spoke.", + "description": "Gets details about a Network Connectivity Center spoke.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.spokes.get", @@ -775,7 +1230,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -791,7 +1246,7 @@ ] }, "list": { - "description": "Lists the spokes in the specified project and location.", + "description": "Lists the Network Connectivity Center spokes in a specified project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spokes", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.spokes.list", @@ -837,7 +1292,7 @@ ] }, "patch": { - "description": "Updates the parameters of the specified spoke.", + "description": "Updates the parameters of a Network Connectivity Center spoke.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "PATCH", "id": "networkconnectivity.projects.locations.spokes.patch", @@ -885,7 +1340,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -913,7 +1368,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -938,11 +1393,11 @@ } } }, - "revision": "20220210", + "revision": "20230105", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -998,7 +1453,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1012,7 +1467,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1127,7 +1582,7 @@ "type": "object" }, "Hub": { - "description": "A hub is a collection of spokes. A single hub can contain spokes from multiple regions. However, if any of a hub's spokes use the data transfer feature, the resources associated with those spokes must all reside in the same VPC network. Spokes that do not use data transfer can be associated with any VPC network in your project.", + "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", "properties": { "createTime": { @@ -1164,13 +1619,15 @@ "STATE_UNSPECIFIED", "CREATING", "ACTIVE", - "DELETING" + "DELETING", + "UPDATING" ], "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 Delete operation is in progress", + "The resource's Update operation is in progress" ], "readOnly": true, "type": "string" @@ -1189,6 +1646,111 @@ }, "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", + "properties": { + "createTime": { + "description": "Time when the internal range was created.", + "format": "google-datetime", + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "ipCidrRange": { + "description": "The IP range that this internal range defines.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "network": { + "description": "The URL or resource ID of the network in which to reserve the internal range. The network cannot be deleted if there are any reserved internal ranges referring to it. Legacy networks are not supported. This can only be specified for a global internal address. Example: - URL: /compute/v1/projects/{project}/global/networks/{resourceId} - ID: network123", + "type": "string" + }, + "overlaps": { + "description": "Optional. Types of resources that are allowed to overlap with the current internal range.", + "items": { + "enum": [ + "OVERLAP_UNSPECIFIED", + "OVERLAP_ROUTE_RANGE" + ], + "enumDescriptions": [ + "No overlap overrides.", + "Allow creation of static routes more specific that the current internal range." + ], + "type": "string" + }, + "type": "array" + }, + "peering": { + "description": "The type of peering set for this internal range.", + "enum": [ + "PEERING_UNSPECIFIED", + "FOR_SELF", + "FOR_PEER", + "NOT_SHARED" + ], + "enumDescriptions": [ + "If Peering is left unspecified in CreateInternalRange or UpdateInternalRange, it will be defaulted to FOR_SELF.", + "This is the default behavior and represents the case that this internal range is intended to be used in the VPC in which it is created and is accessible from its peers. This implies that peers or peers-of-peers cannot use this range.", + "This behavior can be set when the internal range is being reserved for usage by peers. This means that no resource within the VPC in which it is being created can use this to associate with a VPC resource, but one of the peers can. This represents donating a range for peers to use.", + "This behavior can be set when the internal range is being reserved for usage by the VPC in which it is created, but not shared with peers. In a sense, it is local to the VPC. This can be used to create internal ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for Interconnect routes that are not shared with peers. This also implies that peers cannot use this range in a way that is visible to this VPC, but can re-use this range as long as it is NOT_SHARED from the peer VPC, too." + ], + "type": "string" + }, + "prefixLength": { + "description": "An alternate to ip_cidr_range. Can be set when trying to create a reservation that automatically finds a free range of the given size. If both ip_cidr_range and prefix_length are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.", + "format": "int32", + "type": "integer" + }, + "targetCidrRange": { + "description": "Optional. Can be set to narrow down or pick a different address space while searching for a free range. If not set, defaults to the \"10.0.0.0/8\" address space. This can be used to search in other rfc-1918 address spaces like \"172.16.0.0/12\" and \"192.168.0.0/16\" or non-rfc-1918 address spaces used in the VPC.", + "items": { + "type": "string" + }, + "type": "array" + }, + "updateTime": { + "description": "Time when the internal range was updated.", + "format": "google-datetime", + "type": "string" + }, + "usage": { + "description": "The type of usage set for this InternalRange.", + "enum": [ + "USAGE_UNSPECIFIED", + "FOR_VPC", + "EXTERNAL_TO_VPC" + ], + "enumDescriptions": [ + "Unspecified usage is allowed in calls which identify the resource by other fields and do not need Usage set to complete. These are, i.e.: GetInternalRange and DeleteInternalRange. Usage needs to be specified explicitly in CreateInternalRange or UpdateInternalRange calls.", + "A VPC resource can use the reserved CIDR block by associating it with the internal range resource if usage is set to FOR_VPC.", + "Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC resources and are meant to block out address ranges for various use cases, like for example, usage on-prem, with dynamic route announcements via interconnect." + ], + "type": "string" + }, + "users": { + "description": "Output only. The list of resources that refer to this internal range. Resources that use the internal range for their range allocation are referred to as users of the range. Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range referred to. Can be empty.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "LinkedInterconnectAttachments": { "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.", "id": "LinkedInterconnectAttachments", @@ -1203,6 +1765,11 @@ "type": "string" }, "type": "array" + }, + "vpcNetwork": { + "description": "Output only. The VPC network where these VLAN attachments are located.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1221,6 +1788,11 @@ "siteToSiteDataTransfer": { "description": "A value that controls whether site-to-site data transfer is enabled for these resources. Data transfer is available only in [supported locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).", "type": "boolean" + }, + "vpcNetwork": { + "description": "Output only. The VPC network where these router appliance instances are located.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1239,6 +1811,11 @@ "type": "string" }, "type": "array" + }, + "vpcNetwork": { + "description": "Output only. The VPC network where these VPN tunnels are located.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1268,6 +1845,31 @@ }, "type": "object" }, + "ListInternalRangesResponse": { + "description": "Response for InternalRange.ListInternalRanges", + "id": "ListInternalRangesResponse", + "properties": { + "internalRanges": { + "description": "Internal ranges to be returned.", + "items": { + "$ref": "InternalRange" + }, + "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.", + "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", @@ -1460,7 +2062,7 @@ "type": "object" }, "RoutingVPC": { - "description": "RoutingVPC contains information about the VPC networks that are associated with a hub's spokes.", + "description": "RoutingVPC contains information about the VPC networks associated with the spokes of a Network Connectivity Center hub.", "id": "RoutingVPC", "properties": { "requiredForNewSiteToSiteDataTransferSpokes": { @@ -1481,7 +2083,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1492,7 +2094,7 @@ "type": "object" }, "Spoke": { - "description": "A spoke represents a connection between your Google Cloud network resources and a non-Google-Cloud network. 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", "id": "Spoke", "properties": { "createTime": { @@ -1538,13 +2140,15 @@ "STATE_UNSPECIFIED", "CREATING", "ACTIVE", - "DELETING" + "DELETING", + "UPDATING" ], "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 Delete operation is in progress", + "The resource's Update operation is in progress" ], "readOnly": true, "type": "string" @@ -1568,7 +2172,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json index 563016ea73..94d1ff42c3 100644 --- a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://networkconnectivity.googleapis.com/", "batchPath": "batch", "canonicalName": "networkconnectivity", - "description": "The Network Connectivity API provides access to Network Connectivity Center.", + "description": "This API enables connectivity with and between Google Cloud resources.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest", "fullyEncodeReservedExpansion": true, @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -182,7 +182,7 @@ "hubs": { "methods": { "create": { - "description": "Creates a new Hub in a given project and location.", + "description": "Creates a new Network Connectivity Center hub in the specified project.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs", "httpMethod": "POST", "id": "networkconnectivity.projects.locations.global.hubs.create", @@ -220,7 +220,7 @@ ] }, "delete": { - "description": "Deletes a single Hub.", + "description": "Deletes a Network Connectivity Center hub.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "DELETE", "id": "networkconnectivity.projects.locations.global.hubs.delete", @@ -250,7 +250,7 @@ ] }, "get": { - "description": "Gets details of a single Hub.", + "description": "Gets details about a Network Connectivity Center hub.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.get", @@ -290,7 +290,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -306,7 +306,7 @@ ] }, "list": { - "description": "Lists Hubs in a given project and location.", + "description": "Lists the Network Connectivity Center hubs associated with a given project.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.list", @@ -352,7 +352,7 @@ ] }, "patch": { - "description": "Updates the parameters of a single Hub.", + "description": "Updates the description and/or labels of a Network Connectivity Center hub.", "flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", "httpMethod": "PATCH", "id": "networkconnectivity.projects.locations.global.hubs.patch", @@ -400,7 +400,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -428,7 +428,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -452,6 +452,99 @@ }, "internalRanges": { "methods": { + "create": { + "description": "Creates a new internal range in a given project and location.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges", + "httpMethod": "POST", + "id": "networkconnectivity.projects.locations.internalRanges.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "internalRangeId": { + "description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/internalRanges/foo') See https://google.aip.dev/122#resource-id-segments Unique per location.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource's name of the InternalRange.", + "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 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).", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/internalRanges", + "request": { + "$ref": "InternalRange" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single internal range.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "DELETE", + "id": "networkconnectivity.projects.locations.internalRanges.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the InternalRange to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "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 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).", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single internal range.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.internalRanges.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InternalRange to get.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "InternalRange" + }, + "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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}:getIamPolicy", @@ -468,7 +561,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/internalRanges/[^/]+$", "required": true, @@ -483,6 +576,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists internal ranges in a given project and location.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges", + "httpMethod": "GET", + "id": "networkconnectivity.projects.locations.internalRanges.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/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/internalRanges", + "response": { + "$ref": "ListInternalRangesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single internal range.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", + "httpMethod": "PATCH", + "id": "networkconnectivity.projects.locations.internalRanges.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", + "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 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).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the internal range 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": "v1alpha1/{+name}", + "request": { + "$ref": "InternalRange" + }, + "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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}:setIamPolicy", @@ -493,7 +671,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/internalRanges/[^/]+$", "required": true, @@ -521,7 +699,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/internalRanges/[^/]+$", "required": true, @@ -667,7 +845,7 @@ "spokes": { "methods": { "create": { - "description": "Creates a new Spoke in a given project and location.", + "description": "Creates a Network Connectivity Center spoke.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes", "httpMethod": "POST", "id": "networkconnectivity.projects.locations.spokes.create", @@ -705,7 +883,7 @@ ] }, "delete": { - "description": "Deletes a single Spoke.", + "description": "Deletes a Network Connectivity Center spoke.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "DELETE", "id": "networkconnectivity.projects.locations.spokes.delete", @@ -735,7 +913,7 @@ ] }, "get": { - "description": "Gets details of a single Spoke.", + "description": "Gets details about a Network Connectivity Center spoke.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.spokes.get", @@ -775,7 +953,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -791,7 +969,7 @@ ] }, "list": { - "description": "Lists Spokes in a given project and location.", + "description": "Lists the Network Connectivity Center spokes in a specified project and location.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.spokes.list", @@ -837,7 +1015,7 @@ ] }, "patch": { - "description": "Updates the parameters of a single Spoke.", + "description": "Updates the parameters of a Network Connectivity Center spoke.", "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", "httpMethod": "PATCH", "id": "networkconnectivity.projects.locations.spokes.patch", @@ -885,7 +1063,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -913,7 +1091,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/spokes/[^/]+$", "required": true, @@ -938,11 +1116,11 @@ } } }, - "revision": "20220210", + "revision": "20230105", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -998,7 +1176,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1012,7 +1190,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1164,13 +1342,15 @@ "STATE_UNSPECIFIED", "CREATING", "ACTIVE", - "DELETING" + "DELETING", + "UPDATING" ], "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 Delete operation is in progress", + "The resource's Update operation is in progress" ], "readOnly": true, "type": "string" @@ -1188,6 +1368,111 @@ }, "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", + "properties": { + "createTime": { + "description": "Time when the internal range was created.", + "format": "google-datetime", + "type": "string" + }, + "description": { + "description": "A description of this resource.", + "type": "string" + }, + "ipCidrRange": { + "description": "IP range that this internal range defines.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels.", + "type": "object" + }, + "name": { + "description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", + "type": "string" + }, + "network": { + "description": "The URL or resource ID of the network in which to reserve the internal range. The network cannot be deleted if there are any reserved internal ranges referring to it. Legacy networks are not supported. This can only be specified for a global internal address. Example: - URL: /compute/v1/projects/{project}/global/networks/{resourceId} - ID: network123", + "type": "string" + }, + "overlaps": { + "description": "Optional. Types of resources that are allowed to overlap with the current internal range.", + "items": { + "enum": [ + "OVERLAP_UNSPECIFIED", + "OVERLAP_ROUTE_RANGE" + ], + "enumDescriptions": [ + "No overlap overrides.", + "Allow creation of static routes more specific than the current internal range." + ], + "type": "string" + }, + "type": "array" + }, + "peering": { + "description": "The type of peering set for this internal range.", + "enum": [ + "PEERING_UNSPECIFIED", + "FOR_SELF", + "FOR_PEER", + "NOT_SHARED" + ], + "enumDescriptions": [ + "If Peering is left unspecified in CreateInternalRange or UpdateInternalRange, it will be defaulted to FOR_SELF.", + "This is the default behavior and represents the case that this internal range is intended to be used in the VPC in which it is created and is accessible from its peers. This implies that peers or peers-of-peers cannot use this range.", + "This behavior can be set when the internal range is being reserved for usage by the peers. This means that no resource within the VPC in which it is being created can use this to associate with a VPC resource, but one of the peers can. This represents donating a range for peers to use.", + "This behavior can be set when the internal range is being reserved for usage by the VPC in which it is created but not shared with the peers. In a sense it is local to the VPC. This can be used to create internal ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for Interconnect routes that are not shared with peers. This also implies that peers cannot use this range in a way that is visible to this VPC, but can re-use this range as long as it is NOT_SHARED from the peer VPC, too." + ], + "type": "string" + }, + "prefixLength": { + "description": "An alternative to ip_cidr_range. Can be set when trying to create a reservation that automatically finds a free range of the given size. If both ip_cidr_range and prefix_length are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size.", + "format": "int32", + "type": "integer" + }, + "targetCidrRange": { + "description": "Optional. Can be set to narrow down or pick a different address space while searching for a free range. If not set, defaults to the \"10.0.0.0/8\" address space. This can be used to search in other rfc-1918 address spaces like \"172.16.0.0/12\" and \"192.168.0.0/16\" or non-rfc-1918 address spaces used in the VPC.", + "items": { + "type": "string" + }, + "type": "array" + }, + "updateTime": { + "description": "Time when the internal range was updated.", + "format": "google-datetime", + "type": "string" + }, + "usage": { + "description": "The type of usage set for this internal range.", + "enum": [ + "USAGE_UNSPECIFIED", + "FOR_VPC", + "EXTERNAL_TO_VPC" + ], + "enumDescriptions": [ + "Unspecified usage is allowed in calls which identify the resource by other fields and do not need Usage set to complete. These are, i.e.: GetInternalRange and DeleteInternalRange. Usage needs to be specified explicitly in CreateInternalRange or UpdateInternalRange calls.", + "A VPC resource can use the reserved CIDR block by associating it with the internal range resource if usage is set to FOR_VPC.", + "Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC resources and are meant to block out address ranges for various use cases such as usage on-premises, with dynamic route announcements via Interconnect." + ], + "type": "string" + }, + "users": { + "description": "Output only. The list of resources that refer to this internal range. Resources that use the internal range for their range allocation are referred to as users of the range. Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range that is referred to. Can be empty.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListHubsResponse": { "description": "Response for HubService.ListHubs method.", "id": "ListHubsResponse", @@ -1213,6 +1498,31 @@ }, "type": "object" }, + "ListInternalRangesResponse": { + "description": "Response for InternalRange.ListInternalRanges", + "id": "ListInternalRangesResponse", + "properties": { + "internalRanges": { + "description": "Internal range to be returned.", + "items": { + "$ref": "InternalRange" + }, + "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.", + "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", @@ -1389,7 +1699,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1454,13 +1764,15 @@ "STATE_UNSPECIFIED", "CREATING", "ACTIVE", - "DELETING" + "DELETING", + "UPDATING" ], "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 Delete operation is in progress", + "The resource's Update operation is in progress" ], "readOnly": true, "type": "string" @@ -1483,7 +1795,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/networkmanagement/v1/networkmanagement-api.json b/etc/api/networkmanagement/v1/networkmanagement-api.json index 8b6bfaeeb9..ce80be1f6c 100644 --- a/etc/api/networkmanagement/v1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1/networkmanagement-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -280,7 +280,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -413,7 +413,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -441,7 +441,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -591,7 +591,7 @@ } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -616,7 +616,9 @@ "MISMATCHED_SOURCE_NETWORK", "DESTINATION_ENDPOINT_NOT_FOUND", "MISMATCHED_DESTINATION_NETWORK", - "UNSUPPORTED" + "UNSUPPORTED", + "MISMATCHED_IP_VERSION", + "GKE_KONNECTIVITY_PROXY_UNSUPPORTED" ], "enumDescriptions": [ "Cause is unspecified.", @@ -634,10 +636,19 @@ "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 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." ], "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.", + "items": { + "type": "string" + }, + "type": "array" + }, "resourceUri": { "description": "URI of the resource that caused the abort.", "type": "string" @@ -645,8 +656,42 @@ }, "type": "object" }, + "AppEngineVersionEndpoint": { + "description": "Wrapper for app engine service version attributes.", + "id": "AppEngineVersionEndpoint", + "properties": { + "uri": { + "description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions) name.", + "type": "string" + } + }, + "type": "object" + }, + "AppEngineVersionInfo": { + "description": "For display only. Metadata associated with an App Engine version.", + "id": "AppEngineVersionInfo", + "properties": { + "displayName": { + "description": "Name of an App Engine version.", + "type": "string" + }, + "environment": { + "description": "App Engine execution environment for a version.", + "type": "string" + }, + "runtime": { + "description": "Runtime of the App Engine version.", + "type": "string" + }, + "uri": { + "description": "URI of an App Engine version.", + "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -702,7 +747,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -721,6 +766,75 @@ "properties": {}, "type": "object" }, + "CloudFunctionEndpoint": { + "description": "Wrapper for Cloud Function attributes.", + "id": "CloudFunctionEndpoint", + "properties": { + "uri": { + "description": "A [Cloud Function](https://cloud.google.com/functions) name.", + "type": "string" + } + }, + "type": "object" + }, + "CloudFunctionInfo": { + "description": "For display only. Metadata associated with a Cloud Function.", + "id": "CloudFunctionInfo", + "properties": { + "displayName": { + "description": "Name of a Cloud Function.", + "type": "string" + }, + "location": { + "description": "Location in which the Cloud Function is deployed.", + "type": "string" + }, + "uri": { + "description": "URI of a Cloud Function.", + "type": "string" + }, + "versionId": { + "description": "Latest successfully deployed version id of the Cloud Function.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CloudRunRevisionEndpoint": { + "description": "Wrapper for Cloud Run revision attributes.", + "id": "CloudRunRevisionEndpoint", + "properties": { + "uri": { + "description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) URI. The format is: projects/{project}/locations/{location}/revisions/{revision}", + "type": "string" + } + }, + "type": "object" + }, + "CloudRunRevisionInfo": { + "description": "For display only. Metadata associated with a Cloud Run revision.", + "id": "CloudRunRevisionInfo", + "properties": { + "displayName": { + "description": "Name of a Cloud Run revision.", + "type": "string" + }, + "location": { + "description": "Location in which this revision is deployed.", + "type": "string" + }, + "serviceUri": { + "description": "URI of Cloud Run service this revision belongs to.", + "type": "string" + }, + "uri": { + "description": "URI of a Cloud Run revision.", + "type": "string" + } + }, + "type": "object" + }, "CloudSQLInstanceInfo": { "description": "For display only. Metadata associated with a Cloud SQL instance.", "id": "CloudSQLInstanceInfo", @@ -831,7 +945,10 @@ "INTERNET", "GOOGLE_API", "GKE_MASTER", - "CLOUD_SQL_INSTANCE" + "CLOUD_SQL_INSTANCE", + "PSC_PUBLISHED_SERVICE", + "PSC_GOOGLE_API", + "PSC_VPC_SC" ], "enumDescriptions": [ "Target not specified.", @@ -839,7 +956,10 @@ "Target is the internet.", "Target is a Google API.", "Target is a Google Kubernetes Engine cluster master.", - "Target is a Cloud SQL instance." + "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)." ], "type": "string" } @@ -865,16 +985,30 @@ "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", + "GKE_CLUSTER_NOT_RUNNING", + "CLOUD_SQL_INSTANCE_NOT_RUNNING", "TRAFFIC_TYPE_BLOCKED", "GKE_MASTER_UNAUTHORIZED_ACCESS", "CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS", "DROPPED_INSIDE_GKE_SERVICE", "DROPPED_INSIDE_CLOUD_SQL_SERVICE", "GOOGLE_MANAGED_SERVICE_NO_PEERING", - "CLOUD_SQL_INSTANCE_NO_IP_ADDRESS" + "CLOUD_SQL_INSTANCE_NO_IP_ADDRESS", + "GKE_CONTROL_PLANE_REGION_MISMATCH", + "PUBLIC_GKE_CONTROL_PLANE_TO_PRIVATE_DESTINATION", + "GKE_CONTROL_PLANE_NO_ROUTE", + "CLOUD_SQL_INSTANCE_NOT_CONFIGURED_FOR_EXTERNAL_TRAFFIC", + "PUBLIC_CLOUD_SQL_INSTANCE_TO_PRIVATE_DESTINATION", + "CLOUD_SQL_INSTANCE_NO_ROUTE", + "CLOUD_FUNCTION_NOT_ACTIVE", + "VPC_CONNECTOR_NOT_SET", + "VPC_CONNECTOR_NOT_RUNNING", + "PSC_CONNECTION_NOT_ACCEPTED", + "CLOUD_RUN_REVISION_NOT_READY" ], "enumDescriptions": [ "Cause is unspecified.", @@ -889,16 +1023,30 @@ "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.", + "Packet sent from or to a GKE cluster that is not in running state.", + "Packet sent from or to a Cloud SQL instance that is not in running state.", "The type of traffic is blocked and the user cannot configure a firewall rule to enable it. See [Always blocked traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for more details.", "Access to Google Kubernetes Engine cluster master's endpoint is not authorized. See [Access to the cluster endpoints](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints) for more details.", "Access to the Cloud SQL instance endpoint is not authorized. See [Authorizing with authorized networks](https://cloud.google.com/sql/docs/mysql/authorize-networks) for more details.", "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 Cloud SQL instance has neither a private nor a public IP address." + "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.", + "Packet was dropped because there is no route from a GKE cluster control plane to a destination network.", + "Packet sent from a Cloud SQL instance to an external IP address is not allowed. The Cloud SQL instance is not configured to send packets to external IP addresses.", + "Packet sent from a Cloud SQL instance with only a public IP address to a private IP address.", + "Packet was dropped because there is no route from a Cloud SQL instance to a destination network.", + "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.", + "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." ], "type": "string" }, @@ -910,7 +1058,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -919,6 +1067,18 @@ "description": "Source or destination of the Connectivity Test.", "id": "Endpoint", "properties": { + "appEngineVersion": { + "$ref": "AppEngineVersionEndpoint", + "description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions)." + }, + "cloudFunction": { + "$ref": "CloudFunctionEndpoint", + "description": "A [Cloud Function](https://cloud.google.com/functions)." + }, + "cloudRunRevision": { + "$ref": "CloudRunRevisionEndpoint", + "description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get)" + }, "cloudSqlInstance": { "description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", "type": "string" @@ -1047,13 +1207,17 @@ "FIREWALL_RULE_TYPE_UNSPECIFIED", "HIERARCHICAL_FIREWALL_POLICY_RULE", "VPC_FIREWALL_RULE", - "IMPLIED_VPC_FIREWALL_RULE" + "IMPLIED_VPC_FIREWALL_RULE", + "SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", + "NETWORK_FIREWALL_POLICY_RULE" ], "enumDescriptions": [ "Unspecified type.", "Hierarchical firewall policy rule. For details, see [Hierarchical firewall policies overview](https://cloud.google.com/vpc/docs/firewall-policies).", "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)." + "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)." ], "type": "string" }, @@ -1108,7 +1272,8 @@ "INTERCONNECT", "GKE_MASTER", "IMPORTED_CUSTOM_ROUTE_NEXT_HOP", - "CLOUD_SQL_INSTANCE" + "CLOUD_SQL_INSTANCE", + "ANOTHER_PROJECT" ], "enumDescriptions": [ "Target not specified.", @@ -1117,7 +1282,8 @@ "Forwarded to a Cloud Interconnect connection.", "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 Cloud SQL instance.", + "Forwarded to a VPC network in another project." ], "type": "string" } @@ -1337,12 +1503,14 @@ "enum": [ "BACKEND_TYPE_UNSPECIFIED", "BACKEND_SERVICE", - "TARGET_POOL" + "TARGET_POOL", + "TARGET_INSTANCE" ], "enumDescriptions": [ "Type is unspecified.", "Backend Service as the load balancer's backend.", - "Target Pool as the load balancer's backend." + "Target Pool as the load balancer's backend.", + "Target Instance as the load balancer's backend." ], "type": "string" }, @@ -1595,6 +1763,13 @@ "description": "Destination IP range of the route.", "type": "string" }, + "destPortRanges": { + "description": "Destination port ranges of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "type": "array" + }, "displayName": { "description": "Name of a Compute Engine route.", "type": "string" @@ -1651,6 +1826,13 @@ "format": "int32", "type": "integer" }, + "protocols": { + "description": "Protocols of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "type": "array" + }, "routeType": { "description": "Type of route.", "enum": [ @@ -1660,7 +1842,8 @@ "DYNAMIC", "PEERING_SUBNET", "PEERING_STATIC", - "PEERING_DYNAMIC" + "PEERING_DYNAMIC", + "POLICY_BASED" ], "enumDescriptions": [ "Unspecified type. Default value.", @@ -1669,10 +1852,22 @@ "Dynamic route exchanged between BGP peers.", "A subnet route received from peering network.", "A static route received from peering network.", - "A dynamic route received from peering network." + "A dynamic route received from peering network.", + "Policy based route." ], "type": "string" }, + "srcIpRange": { + "description": "Source IP address range of the route. Policy based routes only.", + "type": "string" + }, + "srcPortRanges": { + "description": "Source port ranges of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "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.", "type": "string" @@ -1686,7 +1881,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1731,10 +1926,22 @@ "$ref": "AbortInfo", "description": "Display information of the final state \"abort\" and reason." }, + "appEngineVersion": { + "$ref": "AppEngineVersionInfo", + "description": "Display information of an App Engine service version." + }, "causesDrop": { "description": "This is a step that leads to the final state Drop.", "type": "boolean" }, + "cloudFunction": { + "$ref": "CloudFunctionInfo", + "description": "Display information of a Cloud Function." + }, + "cloudRunRevision": { + "$ref": "CloudRunRevisionInfo", + "description": "Display information of a Cloud Run revision." + }, "cloudSqlInstance": { "$ref": "CloudSQLInstanceInfo", "description": "Display information of a Cloud SQL instance." @@ -1800,6 +2007,9 @@ "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", "APPLY_INGRESS_FIREWALL_RULE", "APPLY_EGRESS_FIREWALL_RULE", "APPLY_ROUTE", @@ -1810,6 +2020,7 @@ "ARRIVE_AT_EXTERNAL_LOAD_BALANCER", "ARRIVE_AT_VPN_GATEWAY", "ARRIVE_AT_VPN_TUNNEL", + "ARRIVE_AT_VPC_CONNECTOR", "NAT", "PROXY_CONNECTION", "DELIVER", @@ -1825,6 +2036,9 @@ "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.", "Config checking state: verify ingress firewall rule.", "Config checking state: verify egress firewall rule.", "Config checking state: verify route.", @@ -1835,6 +2049,7 @@ "Forwarding state: arriving at a Compute Engine external load balancer.", "Forwarding state: arriving at a Cloud VPN gateway.", "Forwarding state: arriving at a Cloud VPN tunnel.", + "Forwarding state: arriving at a VPC connector.", "Transition state: packet header translated.", "Transition state: original connection is terminated and a new proxied connection is initiated.", "Final state: packet could be delivered.", @@ -1845,6 +2060,10 @@ ], "type": "string" }, + "vpcConnector": { + "$ref": "VpcConnectorInfo", + "description": "Display information of a VPC connector." + }, "vpnGateway": { "$ref": "VpnGatewayInfo", "description": "Display information of a Compute Engine VPN gateway." @@ -1861,7 +2080,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1902,6 +2121,25 @@ }, "type": "object" }, + "VpcConnectorInfo": { + "description": "For display only. Metadata associated with a VPC connector.", + "id": "VpcConnectorInfo", + "properties": { + "displayName": { + "description": "Name of a VPC connector.", + "type": "string" + }, + "location": { + "description": "Location in which the VPC connector is deployed.", + "type": "string" + }, + "uri": { + "description": "URI of a VPC connector.", + "type": "string" + } + }, + "type": "object" + }, "VpnGatewayInfo": { "description": "For display only. Metadata associated with a Compute Engine VPN gateway.", "id": "VpnGatewayInfo", diff --git a/etc/api/networkmanagement/v1beta1/networkmanagement-api.json b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json index a1e11095ad..e6cc1a7556 100644 --- a/etc/api/networkmanagement/v1beta1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -280,7 +280,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -413,7 +413,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -441,7 +441,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/connectivityTests/[^/]+$", "required": true, @@ -591,7 +591,7 @@ } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -616,7 +616,9 @@ "MISMATCHED_SOURCE_NETWORK", "DESTINATION_ENDPOINT_NOT_FOUND", "MISMATCHED_DESTINATION_NETWORK", - "UNSUPPORTED" + "UNSUPPORTED", + "MISMATCHED_IP_VERSION", + "GKE_KONNECTIVITY_PROXY_UNSUPPORTED" ], "enumDescriptions": [ "Cause is unspecified.", @@ -634,10 +636,19 @@ "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 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." ], "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.", + "items": { + "type": "string" + }, + "type": "array" + }, "resourceUri": { "description": "URI of the resource that caused the abort.", "type": "string" @@ -645,6 +656,17 @@ }, "type": "object" }, + "AppEngineVersionEndpoint": { + "description": "Wrapper for app engine service version attributes.", + "id": "AppEngineVersionEndpoint", + "properties": { + "uri": { + "description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions) name.", + "type": "string" + } + }, + "type": "object" + }, "AppEngineVersionInfo": { "description": "For display only. Metadata associated with an App Engine version.", "id": "AppEngineVersionInfo", @@ -669,7 +691,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -725,7 +747,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -745,40 +767,78 @@ "type": "object" }, "CloudFunctionEndpoint": { - "description": "Wrapper for cloud function attributes.", + "description": "Wrapper for Cloud Function attributes.", "id": "CloudFunctionEndpoint", "properties": { "uri": { - "description": "A [Cloud function](https://cloud.google.com/functions) name.", + "description": "A [Cloud Function](https://cloud.google.com/functions) name.", "type": "string" } }, "type": "object" }, "CloudFunctionInfo": { - "description": "For display only. Metadata associated with a Cloud function.", + "description": "For display only. Metadata associated with a Cloud Function.", "id": "CloudFunctionInfo", "properties": { "displayName": { - "description": "Name of a Cloud function.", + "description": "Name of a Cloud Function.", "type": "string" }, "location": { - "description": "Location in which the Cloud function is deployed.", + "description": "Location in which the Cloud Function is deployed.", "type": "string" }, "uri": { - "description": "URI of a Cloud function.", + "description": "URI of a Cloud Function.", "type": "string" }, "versionId": { - "description": "Latest successfully deployed version id of the Cloud function.", + "description": "Latest successfully deployed version id of the Cloud Function.", "format": "int64", "type": "string" } }, "type": "object" }, + "CloudRunRevisionEndpoint": { + "description": "Wrapper for Cloud Run revision attributes.", + "id": "CloudRunRevisionEndpoint", + "properties": { + "uri": { + "description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get) URI. The format is: projects/{project}/locations/{location}/revisions/{revision}", + "type": "string" + } + }, + "type": "object" + }, + "CloudRunRevisionInfo": { + "description": "For display only. Metadata associated with a Cloud Run revision.", + "id": "CloudRunRevisionInfo", + "properties": { + "displayName": { + "description": "Name of a Cloud Run revision.", + "type": "string" + }, + "location": { + "description": "Location in which this revision is deployed.", + "type": "string" + }, + "serviceName": { + "description": "ID of Cloud Run Service this revision belongs to.", + "type": "string" + }, + "serviceUri": { + "description": "URI of Cloud Run service this revision belongs to.", + "type": "string" + }, + "uri": { + "description": "URI of a Cloud Run revision.", + "type": "string" + } + }, + "type": "object" + }, "CloudSQLInstanceInfo": { "description": "For display only. Metadata associated with a Cloud SQL instance.", "id": "CloudSQLInstanceInfo", @@ -906,9 +966,9 @@ "Target is a Google API.", "Target is a Google Kubernetes Engine cluster master.", "Target is a Cloud SQL instance.", - "Target is a published service using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).", - "Target is all Google APIs using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis).", - "Target is VPC-SC using [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis)." + "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)." ], "type": "string" } @@ -934,26 +994,36 @@ "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", + "GKE_CLUSTER_NOT_RUNNING", + "CLOUD_SQL_INSTANCE_NOT_RUNNING", "TRAFFIC_TYPE_BLOCKED", "GKE_MASTER_UNAUTHORIZED_ACCESS", "CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS", "DROPPED_INSIDE_GKE_SERVICE", "DROPPED_INSIDE_CLOUD_SQL_SERVICE", "GOOGLE_MANAGED_SERVICE_NO_PEERING", + "GKE_PSC_ENDPOINT_MISSING", "CLOUD_SQL_INSTANCE_NO_IP_ADDRESS", + "GKE_CONTROL_PLANE_REGION_MISMATCH", + "PUBLIC_GKE_CONTROL_PLANE_TO_PRIVATE_DESTINATION", + "GKE_CONTROL_PLANE_NO_ROUTE", + "CLOUD_SQL_INSTANCE_NOT_CONFIGURED_FOR_EXTERNAL_TRAFFIC", + "PUBLIC_CLOUD_SQL_INSTANCE_TO_PRIVATE_DESTINATION", + "CLOUD_SQL_INSTANCE_NO_ROUTE", "CLOUD_FUNCTION_NOT_ACTIVE", "VPC_CONNECTOR_NOT_SET", "VPC_CONNECTOR_NOT_RUNNING", - "FORWARDING_RULE_REGION_MISMATCH", - "PSC_CONNECTION_NOT_ACCEPTED" + "PSC_CONNECTION_NOT_ACCEPTED", + "CLOUD_RUN_REVISION_NOT_READY" ], "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.", + "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 invalid route. Route's next hop is a blackhole.", @@ -963,21 +1033,31 @@ "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.", + "Packet sent from or to a GKE cluster that is not in running state.", + "Packet sent from or to a Cloud SQL instance that is not in running state.", "The type of traffic is blocked and the user cannot configure a firewall rule to enable it. See [Always blocked traffic](https://cloud.google.com/vpc/docs/firewalls#blockedtraffic) for more details.", "Access to Google Kubernetes Engine cluster master's endpoint is not authorized. See [Access to the cluster endpoints](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints) for more details.", "Access to the Cloud SQL instance endpoint is not authorized. See [Authorizing with authorized networks](https://cloud.google.com/sql/docs/mysql/authorize-networks) for more details.", "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 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 could be dropped because the Cloud function is not in an active status.", + "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.", + "Packet was dropped because there is no route from a GKE cluster control plane to a destination network.", + "Packet sent from a Cloud SQL instance to an external IP address is not allowed. The Cloud SQL instance is not configured to send packets to external IP addresses.", + "Packet sent from a Cloud SQL instance with only a public IP address to a private IP address.", + "Packet was dropped because there is no route from a Cloud SQL instance to a destination network.", + "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.", - "Privte Service Connect (PSC) connection is not in accepted state." + "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." ], "type": "string" }, @@ -988,8 +1068,19 @@ }, "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" + }, "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); } 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": "Empty", "properties": {}, "type": "object" @@ -998,9 +1089,17 @@ "description": "Source or destination of the Connectivity Test.", "id": "Endpoint", "properties": { + "appEngineVersion": { + "$ref": "AppEngineVersionEndpoint", + "description": "An [App Engine](https://cloud.google.com/appengine) [service version](https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions)." + }, "cloudFunction": { "$ref": "CloudFunctionEndpoint", - "description": "A [Cloud function](https://cloud.google.com/functions)." + "description": "A [Cloud Function](https://cloud.google.com/functions)." + }, + "cloudRunRevision": { + "$ref": "CloudRunRevisionEndpoint", + "description": "A [Cloud Run](https://cloud.google.com/run) [revision](https://cloud.google.com/run/docs/reference/rest/v1/namespaces.revisions/get)" }, "cloudSqlInstance": { "description": "A [Cloud SQL](https://cloud.google.com/sql) instance URI.", @@ -1134,13 +1233,17 @@ "FIREWALL_RULE_TYPE_UNSPECIFIED", "HIERARCHICAL_FIREWALL_POLICY_RULE", "VPC_FIREWALL_RULE", - "IMPLIED_VPC_FIREWALL_RULE" + "IMPLIED_VPC_FIREWALL_RULE", + "SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", + "NETWORK_FIREWALL_POLICY_RULE" ], "enumDescriptions": [ "Unspecified type.", "Hierarchical firewall policy rule. For details, see [Hierarchical firewall policies overview](https://cloud.google.com/vpc/docs/firewall-policies).", "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)." + "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)." ], "type": "string" }, @@ -1195,7 +1298,8 @@ "INTERCONNECT", "GKE_MASTER", "IMPORTED_CUSTOM_ROUTE_NEXT_HOP", - "CLOUD_SQL_INSTANCE" + "CLOUD_SQL_INSTANCE", + "ANOTHER_PROJECT" ], "enumDescriptions": [ "Target not specified.", @@ -1204,7 +1308,8 @@ "Forwarded to a Cloud Interconnect connection.", "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 Cloud SQL instance.", + "Forwarded to a VPC network in another project." ], "type": "string" } @@ -1455,12 +1560,14 @@ "enum": [ "BACKEND_TYPE_UNSPECIFIED", "BACKEND_SERVICE", - "TARGET_POOL" + "TARGET_POOL", + "TARGET_INSTANCE" ], "enumDescriptions": [ "Type is unspecified.", "Backend Service as the load balancer's backend.", - "Target Pool as the load balancer's backend." + "Target Pool as the load balancer's backend.", + "Target Instance as the load balancer's backend." ], "type": "string" }, @@ -1676,6 +1783,10 @@ ], "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." @@ -1779,6 +1890,13 @@ "description": "Destination IP range of the route.", "type": "string" }, + "destPortRanges": { + "description": "Destination port ranges of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "type": "array" + }, "displayName": { "description": "Name of a Compute Engine route.", "type": "string" @@ -1835,6 +1953,13 @@ "format": "int32", "type": "integer" }, + "protocols": { + "description": "Protocols of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "type": "array" + }, "routeType": { "description": "Type of route.", "enum": [ @@ -1844,7 +1969,8 @@ "DYNAMIC", "PEERING_SUBNET", "PEERING_STATIC", - "PEERING_DYNAMIC" + "PEERING_DYNAMIC", + "POLICY_BASED" ], "enumDescriptions": [ "Unspecified type. Default value.", @@ -1853,10 +1979,22 @@ "Dynamic route exchanged between BGP peers.", "A subnet route received from peering network.", "A static route received from peering network.", - "A dynamic route received from peering network." + "A dynamic route received from peering network.", + "Policy based route." ], "type": "string" }, + "srcIpRange": { + "description": "Source IP address range of the route. Policy based routes only.", + "type": "string" + }, + "srcPortRanges": { + "description": "Source port ranges of the route. Policy based routes only.", + "items": { + "type": "string" + }, + "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.", "type": "string" @@ -1870,7 +2008,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1915,7 +2053,7 @@ "$ref": "AbortInfo", "description": "Display information of the final state \"abort\" and reason." }, - "appEngineVersionInfo": { + "appEngineVersion": { "$ref": "AppEngineVersionInfo", "description": "Display information of an App Engine service version." }, @@ -1925,7 +2063,11 @@ }, "cloudFunction": { "$ref": "CloudFunctionInfo", - "description": "Display information of a Cloud function." + "description": "Display information of a Cloud Function." + }, + "cloudRunRevision": { + "$ref": "CloudRunRevisionInfo", + "description": "Display information of a Cloud Run revision." }, "cloudSqlInstance": { "$ref": "CloudSQLInstanceInfo", @@ -1994,6 +2136,7 @@ "START_FROM_CLOUD_SQL_INSTANCE", "START_FROM_CLOUD_FUNCTION", "START_FROM_APP_ENGINE_VERSION", + "START_FROM_CLOUD_RUN_REVISION", "APPLY_INGRESS_FIREWALL_RULE", "APPLY_EGRESS_FIREWALL_RULE", "APPLY_ROUTE", @@ -2020,8 +2163,9 @@ "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 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.", "Config checking state: verify ingress firewall rule.", "Config checking state: verify egress firewall rule.", "Config checking state: verify route.", @@ -2063,7 +2207,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/networksecurity/v1/networksecurity-api.json b/etc/api/networksecurity/v1/networksecurity-api.json index ce4ae6a760..aec39adc20 100644 --- a/etc/api/networksecurity/v1/networksecurity-api.json +++ b/etc/api/networksecurity/v1/networksecurity-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -278,7 +278,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -373,7 +373,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -401,7 +401,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -522,7 +522,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -617,7 +617,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -645,7 +645,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -889,7 +889,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -984,7 +984,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -1012,7 +1012,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -1037,7 +1037,7 @@ } } }, - "revision": "20220223", + "revision": "20230106", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AuthorizationPolicy": { @@ -1166,7 +1166,7 @@ "id": "Destination", "properties": { "hosts": { - "description": "Required. List of host names to match. Matched against the \":authority\" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example \"mydomain.*\") or a suffix match (example // *.myorg.com\") or a presence(any) match \"*\".", + "description": "Required. List of host names to match. Matched against the \":authority\" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example \"mydomain.*\") or a suffix match (example \"*.myorg.com\") or a presence (any) match \"*\".", "items": { "type": "string" }, @@ -1195,7 +1195,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1243,14 +1243,14 @@ "id": "GoogleCloudNetworksecurityV1GrpcEndpoint", "properties": { "targetUri": { - "description": "Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with \u201cunix:\u201d.", + "description": "Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with \"unix:\".", "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.", + "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", "properties": { "auditLogConfigs": { @@ -1306,7 +1306,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1356,7 +1356,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1371,7 +1371,7 @@ "id": "GoogleIamV1TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1395,7 +1395,7 @@ "type": "object" }, "HttpHeaderMatch": { - "description": "Specification of HTTP header match atrributes.", + "description": "Specification of HTTP header match attributes.", "id": "HttpHeaderMatch", "properties": { "headerName": { @@ -1648,11 +1648,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.", "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.", + "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.", "type": "boolean" }, "createTime": { @@ -1705,7 +1705,7 @@ "type": "array" }, "principals": { - "description": "Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, \"namespace/*\") or a suffix match (example, // */service-account\") or a presence match \"*\". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure.", + "description": "Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, \"namespace/*\") or a suffix match (example, \"*/service-account\") or a presence match \"*\". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure.", "items": { "type": "string" }, diff --git a/etc/api/networksecurity/v1beta1/networksecurity-api.json b/etc/api/networksecurity/v1beta1/networksecurity-api.json index 0e35b50c82..30d15a0b85 100644 --- a/etc/api/networksecurity/v1beta1/networksecurity-api.json +++ b/etc/api/networksecurity/v1beta1/networksecurity-api.json @@ -105,6 +105,137 @@ }, "protocol": "rest", "resources": { + "organizations": { + "resources": { + "locations": { + "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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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`. 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.", + "flatPath": "v1beta1/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": "v1beta1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "projects": { "resources": { "locations": { @@ -144,7 +275,7 @@ ], "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).", + "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" }, @@ -177,6 +308,97 @@ } }, "resources": { + "addressGroups": { + "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}/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+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": "v1beta1/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": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "authorizationPolicies": { "methods": { "create": { @@ -278,7 +500,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -373,7 +595,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -401,7 +623,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/authorizationPolicies/[^/]+$", "required": true, @@ -522,7 +744,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -617,7 +839,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -645,7 +867,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/clientTlsPolicies/[^/]+$", "required": true, @@ -889,7 +1111,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -984,7 +1206,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -1012,7 +1234,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/serverTlsPolicies/[^/]+$", "required": true, @@ -1037,7 +1259,7 @@ } } }, - "revision": "20220223", + "revision": "20230106", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AuthorizationPolicy": { @@ -1166,7 +1388,7 @@ "id": "Destination", "properties": { "hosts": { - "description": "Required. List of host names to match. Matched against the \":authority\" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example \"mydomain.*\") or a suffix match (example // *.myorg.com\") or a presence(any) match \"*\".", + "description": "Required. List of host names to match. Matched against the \":authority\" header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example \"mydomain.*\") or a suffix match (example \"*.myorg.com\") or a presence (any) match \"*\".", "items": { "type": "string" }, @@ -1195,7 +1417,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1243,14 +1465,14 @@ "id": "GoogleCloudNetworksecurityV1beta1GrpcEndpoint", "properties": { "targetUri": { - "description": "Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with \u201cunix:\u201d.", + "description": "Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with \"unix:\".", "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.", + "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", "properties": { "auditLogConfigs": { @@ -1306,7 +1528,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1356,7 +1578,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1371,7 +1593,7 @@ "id": "GoogleIamV1TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1395,7 +1617,7 @@ "type": "object" }, "HttpHeaderMatch": { - "description": "Specification of HTTP header match atrributes.", + "description": "Specification of HTTP header match attributes.", "id": "HttpHeaderMatch", "properties": { "headerName": { @@ -1648,11 +1870,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.", "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.", + "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.", "type": "boolean" }, "createTime": { @@ -1705,7 +1927,7 @@ "type": "array" }, "principals": { - "description": "Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, \"namespace/*\") or a suffix match (example, // */service-account\") or a presence match \"*\". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure.", + "description": "Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, \"namespace/*\") or a suffix match (example, \"*/service-account\") or a presence match \"*\". Authorization based on the principal name without certificate validation (configured by ServerTlsPolicy resource) is considered insecure.", "items": { "type": "string" }, diff --git a/etc/api/networkservices/v1/networkservices-api.json b/etc/api/networkservices/v1/networkservices-api.json index aee5c4b0c0..1b49547262 100644 --- a/etc/api/networkservices/v1/networkservices-api.json +++ b/etc/api/networkservices/v1/networkservices-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -195,7 +195,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheKeysets/[^/]+$", "required": true, @@ -220,7 +220,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheKeysets/[^/]+$", "required": true, @@ -248,7 +248,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheKeysets/[^/]+$", "required": true, @@ -286,7 +286,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheOrigins/[^/]+$", "required": true, @@ -311,7 +311,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheOrigins/[^/]+$", "required": true, @@ -339,7 +339,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheOrigins/[^/]+$", "required": true, @@ -377,7 +377,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheServices/[^/]+$", "required": true, @@ -402,7 +402,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheServices/[^/]+$", "required": true, @@ -430,7 +430,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/edgeCacheServices/[^/]+$", "required": true, @@ -551,7 +551,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -646,7 +646,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -674,7 +674,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -694,6 +694,808 @@ } } }, + "gateways": { + "methods": { + "create": { + "description": "Creates a new Gateway in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewayId": { + "description": "Required. Short name of the Gateway resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the Gateway. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gateways", + "request": { + "$ref": "Gateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Gateway.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.gateways.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Gateway to delete. Must be in the format `projects/*/locations/*/gateways/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "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 Gateway.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Gateway to get. Must be in the format `projects/*/locations/*/gateways/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Gateway" + }, + "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}/gateways/{gatewaysId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Gateways in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Gateways to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListGatewaysResponse` Indicates that this is a continuation of a prior `ListGateways` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the Gateways should be listed, specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/gateways", + "response": { + "$ref": "ListGatewaysResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single Gateway.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.gateways.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Gateway resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Gateway" + }, + "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}/gateways/{gatewaysId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "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}/gateways/{gatewaysId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "grpcRoutes": { + "methods": { + "create": { + "description": "Creates a new GrpcRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.grpcRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "grpcRouteId": { + "description": "Required. Short name of the GrpcRoute resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the GrpcRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/grpcRoutes", + "request": { + "$ref": "GrpcRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GrpcRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.grpcRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GrpcRoute to delete. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "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 GrpcRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.grpcRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GrpcRoute to get. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GrpcRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GrpcRoutes in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.grpcRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GrpcRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListGrpcRoutesResponse` Indicates that this is a continuation of a prior `ListGrpcRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the GrpcRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/grpcRoutes", + "response": { + "$ref": "ListGrpcRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GrpcRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.grpcRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GrpcRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GrpcRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "httpRoutes": { + "methods": { + "create": { + "description": "Creates a new HttpRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/httpRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.httpRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "httpRouteId": { + "description": "Required. Short name of the HttpRoute resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the HttpRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/httpRoutes", + "request": { + "$ref": "HttpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single HttpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.httpRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the HttpRoute to delete. Must be in the format `projects/*/locations/global/httpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "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 HttpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.httpRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the HttpRoute to get. Must be in the format `projects/*/locations/global/httpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "HttpRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists HttpRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/httpRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.httpRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of HttpRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListHttpRoutesResponse` Indicates that this is a continuation of a prior `ListHttpRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the HttpRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/httpRoutes", + "response": { + "$ref": "ListHttpRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single HttpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.httpRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the HttpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "HttpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "meshes": { + "methods": { + "create": { + "description": "Creates a new Mesh in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/meshes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "meshId": { + "description": "Required. Short name of the Mesh resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the Mesh. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/meshes", + "request": { + "$ref": "Mesh" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Mesh.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.meshes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Mesh to delete. Must be in the format `projects/*/locations/global/meshes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "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 Mesh.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Mesh to get. Must be in the format `projects/*/locations/global/meshes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Mesh" + }, + "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}/meshes/{meshesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Meshes in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/meshes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Meshes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListMeshesResponse` Indicates that this is a continuation of a prior `ListMeshes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the Meshes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/meshes", + "response": { + "$ref": "ListMeshesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single Mesh.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.meshes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Mesh resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Mesh" + }, + "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}/meshes/{meshesId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "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}/meshes/{meshesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -816,17 +1618,541 @@ ] } } + }, + "serviceBindings": { + "methods": { + "create": { + "description": "Creates a new ServiceBinding in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the ServiceBinding. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "serviceBindingId": { + "description": "Required. Short name of the ServiceBinding resource to be created.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceBindings", + "request": { + "$ref": "ServiceBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.serviceBindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceBinding to delete. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceBinding to get. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "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/[^/]+/serviceBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ServiceBinding in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of ServiceBindings to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListServiceBindingsResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the ServiceBindings should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceBindings", + "response": { + "$ref": "ListServiceBindingsResponse" + }, + "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}/serviceBindings/{serviceBindingsId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.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/[^/]+/serviceBindings/[^/]+$", + "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}/serviceBindings/{serviceBindingsId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.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/[^/]+/serviceBindings/[^/]+$", + "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": { + "description": "Creates a new TcpRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.tcpRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TcpRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tcpRouteId": { + "description": "Required. Short name of the TcpRoute resource to be created. E.g. TODO(Add an example).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/tcpRoutes", + "request": { + "$ref": "TcpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TcpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.tcpRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TcpRoute to delete. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "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 TcpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tcpRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TcpRoute to get. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "TcpRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TcpRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tcpRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TcpRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListTcpRoutesResponse` Indicates that this is a continuation of a prior `ListTcpRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the TcpRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/tcpRoutes", + "response": { + "$ref": "ListTcpRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TcpRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.tcpRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TcpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "TcpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "tlsRoutes": { + "methods": { + "create": { + "description": "Creates a new TlsRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.tlsRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TlsRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tlsRouteId": { + "description": "Required. Short name of the TlsRoute resource to be created. E.g. TODO(Add an example).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/tlsRoutes", + "request": { + "$ref": "TlsRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TlsRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.tlsRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsRoute to delete. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "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 TlsRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tlsRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsRoute to get. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "TlsRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TlsRoute in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tlsRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TlsRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListTlsRoutesResponse` Indicates that this is a continuation of a prior `ListTlsRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the TlsRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/tlsRoutes", + "response": { + "$ref": "ListTlsRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TlsRoute.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.tlsRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "TlsRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20220222", + "revision": "20230105", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -882,7 +2208,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -902,7 +2228,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1052,6 +2378,852 @@ }, "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.", + "id": "Gateway", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the Gateway resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", + "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.", + "items": { + "format": "int32", + "type": "integer" + }, + "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.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "serverTlsPolicy": { + "description": "Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS traffic is terminated. If empty, TLS termination is disabled.", + "type": "string" + }, + "type": { + "description": "Immutable. The type of the customer managed gateway. This field is required. If unspecified, an error is returned.", + "enum": [ + "TYPE_UNSPECIFIED", + "OPEN_MESH", + "SECURE_WEB_GATEWAY" + ], + "enumDescriptions": [ + "The type of the customer managed gateway is unspecified.", + "The type of the customer managed gateway is TrafficDirector Open Mesh.", + "The type of the customer managed gateway is SecureWebGateway (SWG)." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GrpcRoute": { + "description": "GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.", + "id": "GrpcRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "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\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the GrpcRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", + "type": "string" + }, + "rules": { + "description": "Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.", + "items": { + "$ref": "GrpcRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteDestination": { + "description": "The destination to which traffic will be routed.", + "id": "GrpcRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicy": { + "description": "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.", + "id": "GrpcRouteFaultInjectionPolicy", + "properties": { + "abort": { + "$ref": "GrpcRouteFaultInjectionPolicyAbort", + "description": "The specification for aborting to client requests." + }, + "delay": { + "$ref": "GrpcRouteFaultInjectionPolicyDelay", + "description": "The specification for injecting delay to client requests." + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicyAbort": { + "description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", + "id": "GrpcRouteFaultInjectionPolicyAbort", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", + "format": "int32", + "type": "integer" + }, + "percentage": { + "description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicyDelay": { + "description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", + "id": "GrpcRouteFaultInjectionPolicyDelay", + "properties": { + "fixedDelay": { + "description": "Specify a fixed delay before forwarding the request.", + "format": "google-duration", + "type": "string" + }, + "percentage": { + "description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteHeaderMatch": { + "description": "A match against a collection of headers.", + "id": "GrpcRouteHeaderMatch", + "properties": { + "key": { + "description": "Required. The key of the header.", + "type": "string" + }, + "type": { + "description": "Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.", + "enum": [ + "TYPE_UNSPECIFIED", + "EXACT", + "REGULAR_EXPRESSION" + ], + "enumDescriptions": [ + "Unspecified.", + "Will only match the exact value provided.", + "Will match paths conforming to the prefix specified by value. RE2 syntax is supported." + ], + "type": "string" + }, + "value": { + "description": "Required. The value of the header.", + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteMethodMatch": { + "description": "Specifies a match against a method.", + "id": "GrpcRouteMethodMatch", + "properties": { + "caseSensitive": { + "description": "Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.", + "type": "boolean" + }, + "grpcMethod": { + "description": "Required. Name of the method to match against. If unspecified, will match all methods.", + "type": "string" + }, + "grpcService": { + "description": "Required. Name of the service to match against. If unspecified, will match all services.", + "type": "string" + }, + "type": { + "description": "Optional. Specifies how to match against the name. If not specified, a default value of \"EXACT\" is used.", + "enum": [ + "TYPE_UNSPECIFIED", + "EXACT", + "REGULAR_EXPRESSION" + ], + "enumDescriptions": [ + "Unspecified.", + "Will only match the exact name provided.", + "Will interpret grpc_method and grpc_service as regexes. RE2 syntax is supported." + ], + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteRetryPolicy": { + "description": "The specifications for retries.", + "id": "GrpcRouteRetryPolicy", + "properties": { + "numRetries": { + "description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", + "format": "uint32", + "type": "integer" + }, + "retryConditions": { + "description": "- connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GrpcRouteRouteAction": { + "description": "Specifies how to route matched traffic.", + "id": "GrpcRouteRouteAction", + "properties": { + "destinations": { + "description": "Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.", + "items": { + "$ref": "GrpcRouteDestination" + }, + "type": "array" + }, + "faultInjectionPolicy": { + "$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" + }, + "retryPolicy": { + "$ref": "GrpcRouteRetryPolicy", + "description": "Optional. Specifies the retry policy associated with this route." + }, + "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", + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteRouteMatch": { + "description": "Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.", + "id": "GrpcRouteRouteMatch", + "properties": { + "headers": { + "description": "Optional. Specifies a collection of headers to match.", + "items": { + "$ref": "GrpcRouteHeaderMatch" + }, + "type": "array" + }, + "method": { + "$ref": "GrpcRouteMethodMatch", + "description": "Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods." + } + }, + "type": "object" + }, + "GrpcRouteRouteRule": { + "description": "Describes how to route traffic.", + "id": "GrpcRouteRouteRule", + "properties": { + "action": { + "$ref": "GrpcRouteRouteAction", + "description": "Required. A detailed rule defining how to route traffic. This field is required." + }, + "matches": { + "description": "Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.", + "items": { + "$ref": "GrpcRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRoute": { + "description": "HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.", + "id": "HttpRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this HttpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "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\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the HttpRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this HttpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. Rules will be matched sequentially based on the RouteMatch specified for the rule.", + "items": { + "$ref": "HttpRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteCorsPolicy": { + "description": "The Specification for allowing client side cross-origin requests.", + "id": "HttpRouteCorsPolicy", + "properties": { + "allowCredentials": { + "description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default value is false.", + "type": "boolean" + }, + "allowHeaders": { + "description": "Specifies the content for Access-Control-Allow-Headers header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowMethods": { + "description": "Specifies the content for Access-Control-Allow-Methods header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOriginRegexes": { + "description": "Specifies the regular expression patterns that match allowed origins. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOrigins": { + "description": "Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allow_origins or an item in allow_origin_regexes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "disabled": { + "description": "If true, the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.", + "type": "boolean" + }, + "exposeHeaders": { + "description": "Specifies the content for Access-Control-Expose-Headers header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maxAge": { + "description": "Specifies how long result of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteDestination": { + "description": "Specifications of a destination to which the request should be routed to.", + "id": "HttpRouteDestination", + "properties": { + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicy": { + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced by client proxy on a percentage of requests before sending those requests to the destination service. Similarly requests can be aborted by client proxy for a percentage of requests.", + "id": "HttpRouteFaultInjectionPolicy", + "properties": { + "abort": { + "$ref": "HttpRouteFaultInjectionPolicyAbort", + "description": "The specification for aborting to client requests." + }, + "delay": { + "$ref": "HttpRouteFaultInjectionPolicyDelay", + "description": "The specification for injecting delay to client requests." + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicyAbort": { + "description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", + "id": "HttpRouteFaultInjectionPolicyAbort", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", + "format": "int32", + "type": "integer" + }, + "percentage": { + "description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicyDelay": { + "description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", + "id": "HttpRouteFaultInjectionPolicyDelay", + "properties": { + "fixedDelay": { + "description": "Specify a fixed delay before forwarding the request.", + "format": "google-duration", + "type": "string" + }, + "percentage": { + "description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteHeaderMatch": { + "description": "Specifies how to select a route rule based on HTTP request headers.", + "id": "HttpRouteHeaderMatch", + "properties": { + "exactMatch": { + "description": "The value of the header should match exactly the content of exact_match.", + "type": "string" + }, + "header": { + "description": "The name of the HTTP header to match against.", + "type": "string" + }, + "invertMatch": { + "description": "If specified, the match result will be inverted before checking. Default value is set to false.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The value of the header must start with the contents of prefix_match.", + "type": "string" + }, + "presentMatch": { + "description": "A header with header_name must exist. The match takes place whether or not the header has a value.", + "type": "boolean" + }, + "rangeMatch": { + "$ref": "HttpRouteHeaderMatchIntegerRange", + "description": "If specified, the rule will match if the request header value is within the range." + }, + "regexMatch": { + "description": "The value of the header must match the regular expression specified in regex_match. For regular expression grammar, please see: https://github.com/google/re2/wiki/Syntax", + "type": "string" + }, + "suffixMatch": { + "description": "The value of the header must end with the contents of suffix_match.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteHeaderMatchIntegerRange": { + "description": "Represents an integer value range.", + "id": "HttpRouteHeaderMatchIntegerRange", + "properties": { + "end": { + "description": "End of the range (exclusive)", + "format": "int32", + "type": "integer" + }, + "start": { + "description": "Start of the range (inclusive)", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteHeaderModifier": { + "description": "The specification for modifying HTTP header in HTTP request and HTTP response.", + "id": "HttpRouteHeaderModifier", + "properties": { + "add": { + "additionalProperties": { + "type": "string" + }, + "description": "Add the headers with given map where key is the name of the header, value is the value of the header.", + "type": "object" + }, + "remove": { + "description": "Remove headers (matching by header names) specified in the list.", + "items": { + "type": "string" + }, + "type": "array" + }, + "set": { + "additionalProperties": { + "type": "string" + }, + "description": "Completely overwrite/replace the headers with given map where key is the name of the header, value is the value of the header.", + "type": "object" + } + }, + "type": "object" + }, + "HttpRouteQueryParameterMatch": { + "description": "Specifications to match a query parameter in the request.", + "id": "HttpRouteQueryParameterMatch", + "properties": { + "exactMatch": { + "description": "The value of the query parameter must exactly match the contents of exact_match. Only one of exact_match, regex_match, or present_match must be set.", + "type": "string" + }, + "presentMatch": { + "description": "Specifies that the QueryParameterMatcher matches if request contains query parameter, irrespective of whether the parameter has a value or not. Only one of exact_match, regex_match, or present_match must be set.", + "type": "boolean" + }, + "queryParameter": { + "description": "The name of the query parameter to match.", + "type": "string" + }, + "regexMatch": { + "description": "The value of the query parameter must match the regular expression specified by regex_match. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match must be set.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteRedirect": { + "description": "The specification for redirecting traffic.", + "id": "HttpRouteRedirect", + "properties": { + "hostRedirect": { + "description": "The host that will be used in the redirect response instead of the one that was supplied in the request.", + "type": "string" + }, + "httpsRedirect": { + "description": "If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request. The default is set to false.", + "type": "boolean" + }, + "pathRedirect": { + "description": "The path that will be used in the redirect response instead of the one that was supplied in the request. path_redirect can not be supplied together with prefix_redirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.", + "type": "string" + }, + "portRedirect": { + "description": "The port that will be used in the redirected request instead of the one that was supplied in the request.", + "format": "int32", + "type": "integer" + }, + "prefixRewrite": { + "description": "Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows URLs be dynamically created based on the request.", + "type": "string" + }, + "responseCode": { + "description": "The HTTP Status code to use for the redirect.", + "enum": [ + "RESPONSE_CODE_UNSPECIFIED", + "MOVED_PERMANENTLY_DEFAULT", + "FOUND", + "SEE_OTHER", + "TEMPORARY_REDIRECT", + "PERMANENT_REDIRECT" + ], + "enumDescriptions": [ + "Default value", + "Corresponds to 301.", + "Corresponds to 302.", + "Corresponds to 303.", + "Corresponds to 307. In this case, the request method will be retained.", + "Corresponds to 308. In this case, the request method will be retained." + ], + "type": "string" + }, + "stripQuery": { + "description": "if set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false.", + "type": "boolean" + } + }, + "type": "object" + }, + "HttpRouteRequestMirrorPolicy": { + "description": "Specifies the policy on how requests are shadowed to a separate mirrored destination service. The proxy does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow.", + "id": "HttpRouteRequestMirrorPolicy", + "properties": { + "destination": { + "$ref": "HttpRouteDestination", + "description": "The destination the requests will be mirrored to. The weight of the destination will be ignored." + } + }, + "type": "object" + }, + "HttpRouteRetryPolicy": { + "description": "The specifications for retries.", + "id": "HttpRouteRetryPolicy", + "properties": { + "numRetries": { + "description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", + "format": "int32", + "type": "integer" + }, + "perTryTimeout": { + "description": "Specifies a non-zero timeout per retry attempt.", + "format": "google-duration", + "type": "string" + }, + "retryConditions": { + "description": "Specifies one or more conditions when this retry policy applies. Valid values are: 5xx: Proxy will attempt a retry if the destination service responds with any 5xx response code, of if the destination service does not respond at all, example: disconnect, reset, read timeout, connection failure and refused streams. gateway-error: Similar to 5xx, but only applies to response codes 502, 503, 504. reset: Proxy will attempt a retry if the destination service does not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will retry on failures connecting to destination for example due to connection timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes. Currently the only retriable error supported is 409. refused-stream: Proxy will retry if the destination resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "HttpRouteRouteAction", + "properties": { + "corsPolicy": { + "$ref": "HttpRouteCorsPolicy", + "description": "The specification for allowing client side cross-origin requests." + }, + "destinations": { + "description": "The destination to which traffic should be forwarded.", + "items": { + "$ref": "HttpRouteDestination" + }, + "type": "array" + }, + "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" + }, + "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." + }, + "requestMirrorPolicy": { + "$ref": "HttpRouteRequestMirrorPolicy", + "description": "Specifies the policy on how requests intended for the routes destination are shadowed to a separate mirrored destination. Proxy will not wait for the shadow destination to respond before returning the response. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow." + }, + "responseHeaderModifier": { + "$ref": "HttpRouteHeaderModifier", + "description": "The specification for modifying the headers of a response prior to sending the response back to the client." + }, + "retryPolicy": { + "$ref": "HttpRouteRetryPolicy", + "description": "Specifies the retry policy associated with this route." + }, + "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", + "type": "string" + }, + "urlRewrite": { + "$ref": "HttpRouteURLRewrite", + "description": "The specification for rewrite URL before forwarding requests to the destination." + } + }, + "type": "object" + }, + "HttpRouteRouteMatch": { + "description": "RouteMatch defines specifications used to match requests. If multiple match types are set, this RouteMatch will match if ALL type of matches are matched.", + "id": "HttpRouteRouteMatch", + "properties": { + "fullPathMatch": { + "description": "The HTTP request path value should exactly match this value. Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + }, + "headers": { + "description": "Specifies a list of HTTP request headers to match against. ALL of the supplied headers must be matched.", + "items": { + "$ref": "HttpRouteHeaderMatch" + }, + "type": "array" + }, + "ignoreCase": { + "description": "Specifies if prefix_match and full_path_match matches are case sensitive. The default value is false.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The HTTP request path value must begin with specified prefix_match. prefix_match must begin with a /. Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + }, + "queryParameters": { + "description": "Specifies a list of query parameters to match against. ALL of the query parameters must be matched.", + "items": { + "$ref": "HttpRouteQueryParameterMatch" + }, + "type": "array" + }, + "regexMatch": { + "description": "The HTTP request path value must satisfy the regular expression specified by regex_match after removing any query parameters and anchor supplied with the original URL. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "HttpRouteRouteRule", + "properties": { + "action": { + "$ref": "HttpRouteRouteAction", + "description": "The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "A list of matches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. If a default rule is desired to be configured, add a rule with no matches specified to the end of the rules list.", + "items": { + "$ref": "HttpRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRouteURLRewrite": { + "description": "The specification for modifying the URL of the request, prior to forwarding the request to the destination.", + "id": "HttpRouteURLRewrite", + "properties": { + "hostRewrite": { + "description": "Prior to forwarding the request to the selected destination, the requests host header is replaced by this value.", + "type": "string" + }, + "pathPrefixRewrite": { + "description": "Prior to forwarding the request to the selected destination, the matching portion of the requests path is replaced by this value.", + "type": "string" + } + }, + "type": "object" + }, "ListEndpointPoliciesResponse": { "description": "Response returned by the ListEndpointPolicies method.", "id": "ListEndpointPoliciesResponse", @@ -1070,6 +3242,60 @@ }, "type": "object" }, + "ListGatewaysResponse": { + "description": "Response returned by the ListGateways method.", + "id": "ListGatewaysResponse", + "properties": { + "gateways": { + "description": "List of Gateway resources.", + "items": { + "$ref": "Gateway" + }, + "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" + }, + "ListGrpcRoutesResponse": { + "description": "Response returned by the ListGrpcRoutes method.", + "id": "ListGrpcRoutesResponse", + "properties": { + "grpcRoutes": { + "description": "List of GrpcRoute resources.", + "items": { + "$ref": "GrpcRoute" + }, + "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" + }, + "ListHttpRoutesResponse": { + "description": "Response returned by the ListHttpRoutes method.", + "id": "ListHttpRoutesResponse", + "properties": { + "httpRoutes": { + "description": "List of HttpRoute resources.", + "items": { + "$ref": "HttpRoute" + }, + "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" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1088,6 +3314,24 @@ }, "type": "object" }, + "ListMeshesResponse": { + "description": "Response returned by the ListMeshes method.", + "id": "ListMeshesResponse", + "properties": { + "meshes": { + "description": "List of Mesh resources.", + "items": { + "$ref": "Mesh" + }, + "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" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1106,6 +3350,60 @@ }, "type": "object" }, + "ListServiceBindingsResponse": { + "description": "Response returned by the ListServiceBindings method.", + "id": "ListServiceBindingsResponse", + "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" + }, + "serviceBindings": { + "description": "List of ServiceBinding resources.", + "items": { + "$ref": "ServiceBinding" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListTcpRoutesResponse": { + "description": "Response returned by the ListTcpRoutes method.", + "id": "ListTcpRoutesResponse", + "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" + }, + "tcpRoutes": { + "description": "List of TcpRoute resources.", + "items": { + "$ref": "TcpRoute" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListTlsRoutesResponse": { + "description": "Response returned by the ListTlsRoutes method.", + "id": "ListTlsRoutesResponse", + "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" + }, + "tlsRoutes": { + "description": "List of TlsRoute resources.", + "items": { + "$ref": "TlsRoute" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "id": "Location", @@ -1140,6 +3438,50 @@ }, "type": "object" }, + "Mesh": { + "description": "Mesh represents a logical configuration grouping for workload to workload communication within a service mesh. Routes that point to mesh dictate how requests are routed within this logical mesh boundary.", + "id": "Mesh", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the Mesh resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "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", @@ -1250,13 +3592,51 @@ }, "type": "object" }, + "ServiceBinding": { + "description": "ServiceBinding is the resource that defines a Service Directory Service to be used in a BackendService resource.", + "id": "ServiceBinding", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the ServiceBinding resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the ServiceBinding resource. It matches pattern `projects/*/locations/global/serviceBindings/service_binding_name`.", + "type": "string" + }, + "service": { + "description": "Required. The full Service Directory Service name of the format projects/*/locations/*/namespaces/*/services/*", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1293,12 +3673,139 @@ }, "type": "object" }, + "TcpRoute": { + "description": "TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.", + "id": "TcpRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the TcpRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", + "items": { + "$ref": "TcpRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TcpRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "TcpRouteRouteAction", + "properties": { + "destinations": { + "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required.", + "items": { + "$ref": "TcpRouteRouteDestination" + }, + "type": "array" + }, + "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.", + "type": "boolean" + } + }, + "type": "object" + }, + "TcpRouteRouteDestination": { + "description": "Describe the destination for traffic to be routed to.", + "id": "TcpRouteRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a BackendService to route traffic to.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TcpRouteRouteMatch": { + "description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "id": "TcpRouteRouteMatch", + "properties": { + "address": { + "description": "Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: \"10.0.0.1\" - matches against this exact IP address. \"10.0.0.0/8\" - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. \"0.0.0.0/0\" - matches against any IP address'.", + "type": "string" + }, + "port": { + "description": "Required. Specifies the destination port to match against.", + "type": "string" + } + }, + "type": "object" + }, + "TcpRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "TcpRouteRouteRule", + "properties": { + "action": { + "$ref": "TcpRouteRouteAction", + "description": "Required. The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "items": { + "$ref": "TcpRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1321,6 +3828,128 @@ }, "type": "object" }, + "TlsRoute": { + "description": "TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.", + "id": "TlsRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "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": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", + "items": { + "$ref": "TlsRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TlsRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "TlsRouteRouteAction", + "properties": { + "destinations": { + "description": "Required. The destination services to which traffic should be forwarded. At least one destination service is required.", + "items": { + "$ref": "TlsRouteRouteDestination" + }, + "type": "array" + } + }, + "type": "object" + }, + "TlsRouteRouteDestination": { + "description": "Describe the destination for traffic to be routed to.", + "id": "TlsRouteRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a BackendService to route traffic to.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TlsRouteRouteMatch": { + "description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"AND\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "id": "TlsRouteRouteMatch", + "properties": { + "alpn": { + "description": "Optional. ALPN (Application-Layer Protocol Negotiation) to match against. Examples: \"http/1.1\", \"h2\". At least one of sni_host and alpn is required. Up to 5 alpns across all matches can be set.", + "items": { + "type": "string" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TlsRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "TlsRouteRouteRule", + "properties": { + "action": { + "$ref": "TlsRouteRouteAction", + "description": "Required. The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "Required. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation.", + "items": { + "$ref": "TlsRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, "TrafficPortSelector": { "description": "Specification of a port-based selector.", "id": "TrafficPortSelector", diff --git a/etc/api/networkservices/v1beta1/networkservices-api.json b/etc/api/networkservices/v1beta1/networkservices-api.json index 1a624662ff..fcfc0ca394 100644 --- a/etc/api/networkservices/v1beta1/networkservices-api.json +++ b/etc/api/networkservices/v1beta1/networkservices-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -278,7 +278,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -373,7 +373,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -401,7 +401,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/endpointPolicies/[^/]+$", "required": true, @@ -421,6 +421,808 @@ } } }, + "gateways": { + "methods": { + "create": { + "description": "Creates a new Gateway in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "gatewayId": { + "description": "Required. Short name of the Gateway resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the Gateway. Must be in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/gateways", + "request": { + "$ref": "Gateway" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Gateway.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.gateways.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Gateway to delete. Must be in the format `projects/*/locations/*/gateways/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "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 Gateway.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Gateway to get. Must be in the format `projects/*/locations/*/gateways/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Gateway" + }, + "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}/gateways/{gatewaysId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Gateways in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways", + "httpMethod": "GET", + "id": "networkservices.projects.locations.gateways.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Gateways to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListGatewaysResponse` Indicates that this is a continuation of a prior `ListGateways` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the Gateways should be listed, specified in the format `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/gateways", + "response": { + "$ref": "ListGatewaysResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single Gateway.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/gateways/{gatewaysId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.gateways.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Gateway resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "Gateway" + }, + "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}/gateways/{gatewaysId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "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}/gateways/{gatewaysId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.gateways.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/[^/]+/gateways/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "grpcRoutes": { + "methods": { + "create": { + "description": "Creates a new GrpcRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.grpcRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "grpcRouteId": { + "description": "Required. Short name of the GrpcRoute resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the GrpcRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/grpcRoutes", + "request": { + "$ref": "GrpcRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single GrpcRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.grpcRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GrpcRoute to delete. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "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 GrpcRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.grpcRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the GrpcRoute to get. Must be in the format `projects/*/locations/global/grpcRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GrpcRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists GrpcRoutes in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.grpcRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of GrpcRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListGrpcRoutesResponse` Indicates that this is a continuation of a prior `ListGrpcRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the GrpcRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/grpcRoutes", + "response": { + "$ref": "ListGrpcRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single GrpcRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/grpcRoutes/{grpcRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.grpcRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/grpcRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the GrpcRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "GrpcRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "httpRoutes": { + "methods": { + "create": { + "description": "Creates a new HttpRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.httpRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "httpRouteId": { + "description": "Required. Short name of the HttpRoute resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the HttpRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/httpRoutes", + "request": { + "$ref": "HttpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single HttpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.httpRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the HttpRoute to delete. Must be in the format `projects/*/locations/global/httpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "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 HttpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.httpRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the HttpRoute to get. Must be in the format `projects/*/locations/global/httpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "HttpRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists HttpRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.httpRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of HttpRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListHttpRoutesResponse` Indicates that this is a continuation of a prior `ListHttpRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the HttpRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/httpRoutes", + "response": { + "$ref": "ListHttpRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single HttpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/httpRoutes/{httpRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.httpRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/httpRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the HttpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "HttpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "meshes": { + "methods": { + "create": { + "description": "Creates a new Mesh in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "meshId": { + "description": "Required. Short name of the Mesh resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the Mesh. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/meshes", + "request": { + "$ref": "Mesh" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Mesh.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.meshes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Mesh to delete. Must be in the format `projects/*/locations/global/meshes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "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 Mesh.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the Mesh to get. Must be in the format `projects/*/locations/global/meshes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Mesh" + }, + "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}/meshes/{meshesId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Meshes in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.meshes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Meshes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListMeshesResponse` Indicates that this is a continuation of a prior `ListMeshes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the Meshes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/meshes", + "response": { + "$ref": "ListMeshesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single Mesh.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/meshes/{meshesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.meshes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the Mesh resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "Mesh" + }, + "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}/meshes/{meshesId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "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}/meshes/{meshesId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.meshes.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/[^/]+/meshes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -645,7 +1447,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, @@ -696,40 +1498,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "patch": { - "description": "Updates the parameters of a single ServiceBinding.", - "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", - "httpMethod": "PATCH", - "id": "networkservices.projects.locations.serviceBindings.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Name of the ServiceBinding resource. It matches pattern `projects/*/locations/global/serviceBindings/service_binding_name>`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceBinding 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": "ServiceBinding" - }, - "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}/serviceBindings/{serviceBindingsId}:setIamPolicy", @@ -740,7 +1508,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, @@ -768,7 +1536,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, @@ -787,17 +1555,331 @@ ] } } + }, + "tcpRoutes": { + "methods": { + "create": { + "description": "Creates a new TcpRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.tcpRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TcpRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tcpRouteId": { + "description": "Required. Short name of the TcpRoute resource to be created. E.g. TODO(Add an example).", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tcpRoutes", + "request": { + "$ref": "TcpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TcpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.tcpRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TcpRoute to delete. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "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 TcpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tcpRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TcpRoute to get. Must be in the format `projects/*/locations/global/tcpRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "TcpRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TcpRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tcpRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TcpRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListTcpRoutesResponse` Indicates that this is a continuation of a prior `ListTcpRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the TcpRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tcpRoutes", + "response": { + "$ref": "ListTcpRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TcpRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tcpRoutes/{tcpRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.tcpRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tcpRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TcpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "TcpRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "tlsRoutes": { + "methods": { + "create": { + "description": "Creates a new TlsRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", + "httpMethod": "POST", + "id": "networkservices.projects.locations.tlsRoutes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the TlsRoute. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "tlsRouteId": { + "description": "Required. Short name of the TlsRoute resource to be created. E.g. TODO(Add an example).", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tlsRoutes", + "request": { + "$ref": "TlsRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single TlsRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.tlsRoutes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsRoute to delete. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "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 TlsRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tlsRoutes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the TlsRoute to get. Must be in the format `projects/*/locations/global/tlsRoutes/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "TlsRoute" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists TlsRoute in a given project and location.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes", + "httpMethod": "GET", + "id": "networkservices.projects.locations.tlsRoutes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of TlsRoutes to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListTlsRoutesResponse` Indicates that this is a continuation of a prior `ListTlsRoutes` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the TlsRoutes should be listed, specified in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/tlsRoutes", + "response": { + "$ref": "ListTlsRoutesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single TlsRoute.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/tlsRoutes/{tlsRoutesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.tlsRoutes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tlsRoutes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the TlsRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "TlsRoute" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20220222", + "revision": "20230105", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -853,7 +1935,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -873,7 +1955,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -980,6 +2062,852 @@ }, "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.", + "id": "Gateway", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the Gateway resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the Gateway resource. It matches pattern `projects/*/locations/*/gateways/`.", + "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.", + "items": { + "format": "int32", + "type": "integer" + }, + "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.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "serverTlsPolicy": { + "description": "Optional. A fully-qualified ServerTLSPolicy URL reference. Specifies how TLS traffic is terminated. If empty, TLS termination is disabled.", + "type": "string" + }, + "type": { + "description": "Immutable. The type of the customer managed gateway. This field is required. If unspecified, an error is returned.", + "enum": [ + "TYPE_UNSPECIFIED", + "OPEN_MESH", + "SECURE_WEB_GATEWAY" + ], + "enumDescriptions": [ + "The type of the customer managed gateway is unspecified.", + "The type of the customer managed gateway is TrafficDirector Open Mesh.", + "The type of the customer managed gateway is SecureWebGateway (SWG)." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GrpcRoute": { + "description": "GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.", + "id": "GrpcRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this GrpcRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "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\").", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the GrpcRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this GrpcRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the GrpcRoute resource. It matches pattern `projects/*/locations/global/grpcRoutes/`", + "type": "string" + }, + "rules": { + "description": "Required. A list of detailed rules defining how to route traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated with the first matching GrpcRoute.RouteRule will be executed. At least one rule must be supplied.", + "items": { + "$ref": "GrpcRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteDestination": { + "description": "The destination to which traffic will be routed.", + "id": "GrpcRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicy": { + "description": "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.", + "id": "GrpcRouteFaultInjectionPolicy", + "properties": { + "abort": { + "$ref": "GrpcRouteFaultInjectionPolicyAbort", + "description": "The specification for aborting to client requests." + }, + "delay": { + "$ref": "GrpcRouteFaultInjectionPolicyDelay", + "description": "The specification for injecting delay to client requests." + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicyAbort": { + "description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", + "id": "GrpcRouteFaultInjectionPolicyAbort", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", + "format": "int32", + "type": "integer" + }, + "percentage": { + "description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteFaultInjectionPolicyDelay": { + "description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", + "id": "GrpcRouteFaultInjectionPolicyDelay", + "properties": { + "fixedDelay": { + "description": "Specify a fixed delay before forwarding the request.", + "format": "google-duration", + "type": "string" + }, + "percentage": { + "description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GrpcRouteHeaderMatch": { + "description": "A match against a collection of headers.", + "id": "GrpcRouteHeaderMatch", + "properties": { + "key": { + "description": "Required. The key of the header.", + "type": "string" + }, + "type": { + "description": "Optional. Specifies how to match against the value of the header. If not specified, a default value of EXACT is used.", + "enum": [ + "TYPE_UNSPECIFIED", + "EXACT", + "REGULAR_EXPRESSION" + ], + "enumDescriptions": [ + "Unspecified.", + "Will only match the exact value provided.", + "Will match paths conforming to the prefix specified by value. RE2 syntax is supported." + ], + "type": "string" + }, + "value": { + "description": "Required. The value of the header.", + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteMethodMatch": { + "description": "Specifies a match against a method.", + "id": "GrpcRouteMethodMatch", + "properties": { + "caseSensitive": { + "description": "Optional. Specifies that matches are case sensitive. The default value is true. case_sensitive must not be used with a type of REGULAR_EXPRESSION.", + "type": "boolean" + }, + "grpcMethod": { + "description": "Required. Name of the method to match against. If unspecified, will match all methods.", + "type": "string" + }, + "grpcService": { + "description": "Required. Name of the service to match against. If unspecified, will match all services.", + "type": "string" + }, + "type": { + "description": "Optional. Specifies how to match against the name. If not specified, a default value of \"EXACT\" is used.", + "enum": [ + "TYPE_UNSPECIFIED", + "EXACT", + "REGULAR_EXPRESSION" + ], + "enumDescriptions": [ + "Unspecified.", + "Will only match the exact name provided.", + "Will interpret grpc_method and grpc_service as regexes. RE2 syntax is supported." + ], + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteRetryPolicy": { + "description": "The specifications for retries.", + "id": "GrpcRouteRetryPolicy", + "properties": { + "numRetries": { + "description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", + "format": "uint32", + "type": "integer" + }, + "retryConditions": { + "description": "- connect-failure: Router will retry on failures connecting to Backend Services, for example due to connection timeouts. - refused-stream: Router will retry if the backend service resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry. - cancelled: Router will retry if the gRPC status code in the response header is set to cancelled - deadline-exceeded: Router will retry if the gRPC status code in the response header is set to deadline-exceeded - resource-exhausted: Router will retry if the gRPC status code in the response header is set to resource-exhausted - unavailable: Router will retry if the gRPC status code in the response header is set to unavailable", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GrpcRouteRouteAction": { + "description": "Specifies how to route matched traffic.", + "id": "GrpcRouteRouteAction", + "properties": { + "destinations": { + "description": "Optional. The destination services to which traffic should be forwarded. If multiple destinations are specified, traffic will be split between Backend Service(s) according to the weight field of these destinations.", + "items": { + "$ref": "GrpcRouteDestination" + }, + "type": "array" + }, + "faultInjectionPolicy": { + "$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" + }, + "retryPolicy": { + "$ref": "GrpcRouteRetryPolicy", + "description": "Optional. Specifies the retry policy associated with this route." + }, + "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", + "type": "string" + } + }, + "type": "object" + }, + "GrpcRouteRouteMatch": { + "description": "Criteria for matching traffic. A RouteMatch will be considered to match when all supplied fields match.", + "id": "GrpcRouteRouteMatch", + "properties": { + "headers": { + "description": "Optional. Specifies a collection of headers to match.", + "items": { + "$ref": "GrpcRouteHeaderMatch" + }, + "type": "array" + }, + "method": { + "$ref": "GrpcRouteMethodMatch", + "description": "Optional. A gRPC method to match against. If this field is empty or omitted, will match all methods." + } + }, + "type": "object" + }, + "GrpcRouteRouteRule": { + "description": "Describes how to route traffic.", + "id": "GrpcRouteRouteRule", + "properties": { + "action": { + "$ref": "GrpcRouteRouteAction", + "description": "Required. A detailed rule defining how to route traffic. This field is required." + }, + "matches": { + "description": "Optional. Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic.", + "items": { + "$ref": "GrpcRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRoute": { + "description": "HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.", + "id": "HttpRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this HttpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "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\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the HttpRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this HttpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the HttpRoute resource. It matches pattern `projects/*/locations/global/httpRoutes/http_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. Rules will be matched sequentially based on the RouteMatch specified for the rule.", + "items": { + "$ref": "HttpRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteCorsPolicy": { + "description": "The Specification for allowing client side cross-origin requests.", + "id": "HttpRouteCorsPolicy", + "properties": { + "allowCredentials": { + "description": "In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This translates to the Access-Control-Allow-Credentials header. Default value is false.", + "type": "boolean" + }, + "allowHeaders": { + "description": "Specifies the content for Access-Control-Allow-Headers header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowMethods": { + "description": "Specifies the content for Access-Control-Allow-Methods header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOriginRegexes": { + "description": "Specifies the regular expression patterns that match allowed origins. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowOrigins": { + "description": "Specifies the list of origins that will be allowed to do CORS requests. An origin is allowed if it matches either an item in allow_origins or an item in allow_origin_regexes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "disabled": { + "description": "If true, the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.", + "type": "boolean" + }, + "exposeHeaders": { + "description": "Specifies the content for Access-Control-Expose-Headers header.", + "items": { + "type": "string" + }, + "type": "array" + }, + "maxAge": { + "description": "Specifies how long result of a preflight request can be cached in seconds. This translates to the Access-Control-Max-Age header.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteDestination": { + "description": "Specifications of a destination to which the request should be routed to.", + "id": "HttpRouteDestination", + "properties": { + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicy": { + "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced by client proxy on a percentage of requests before sending those requests to the destination service. Similarly requests can be aborted by client proxy for a percentage of requests.", + "id": "HttpRouteFaultInjectionPolicy", + "properties": { + "abort": { + "$ref": "HttpRouteFaultInjectionPolicyAbort", + "description": "The specification for aborting to client requests." + }, + "delay": { + "$ref": "HttpRouteFaultInjectionPolicyDelay", + "description": "The specification for injecting delay to client requests." + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicyAbort": { + "description": "Specification of how client requests are aborted as part of fault injection before being sent to a destination.", + "id": "HttpRouteFaultInjectionPolicyAbort", + "properties": { + "httpStatus": { + "description": "The HTTP status code used to abort the request. The value must be between 200 and 599 inclusive.", + "format": "int32", + "type": "integer" + }, + "percentage": { + "description": "The percentage of traffic which will be aborted. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteFaultInjectionPolicyDelay": { + "description": "Specification of how client requests are delayed as part of fault injection before being sent to a destination.", + "id": "HttpRouteFaultInjectionPolicyDelay", + "properties": { + "fixedDelay": { + "description": "Specify a fixed delay before forwarding the request.", + "format": "google-duration", + "type": "string" + }, + "percentage": { + "description": "The percentage of traffic on which delay will be injected. The value must be between [0, 100]", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteHeaderMatch": { + "description": "Specifies how to select a route rule based on HTTP request headers.", + "id": "HttpRouteHeaderMatch", + "properties": { + "exactMatch": { + "description": "The value of the header should match exactly the content of exact_match.", + "type": "string" + }, + "header": { + "description": "The name of the HTTP header to match against.", + "type": "string" + }, + "invertMatch": { + "description": "If specified, the match result will be inverted before checking. Default value is set to false.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The value of the header must start with the contents of prefix_match.", + "type": "string" + }, + "presentMatch": { + "description": "A header with header_name must exist. The match takes place whether or not the header has a value.", + "type": "boolean" + }, + "rangeMatch": { + "$ref": "HttpRouteHeaderMatchIntegerRange", + "description": "If specified, the rule will match if the request header value is within the range." + }, + "regexMatch": { + "description": "The value of the header must match the regular expression specified in regex_match. For regular expression grammar, please see: https://github.com/google/re2/wiki/Syntax", + "type": "string" + }, + "suffixMatch": { + "description": "The value of the header must end with the contents of suffix_match.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteHeaderMatchIntegerRange": { + "description": "Represents an integer value range.", + "id": "HttpRouteHeaderMatchIntegerRange", + "properties": { + "end": { + "description": "End of the range (exclusive)", + "format": "int32", + "type": "integer" + }, + "start": { + "description": "Start of the range (inclusive)", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "HttpRouteHeaderModifier": { + "description": "The specification for modifying HTTP header in HTTP request and HTTP response.", + "id": "HttpRouteHeaderModifier", + "properties": { + "add": { + "additionalProperties": { + "type": "string" + }, + "description": "Add the headers with given map where key is the name of the header, value is the value of the header.", + "type": "object" + }, + "remove": { + "description": "Remove headers (matching by header names) specified in the list.", + "items": { + "type": "string" + }, + "type": "array" + }, + "set": { + "additionalProperties": { + "type": "string" + }, + "description": "Completely overwrite/replace the headers with given map where key is the name of the header, value is the value of the header.", + "type": "object" + } + }, + "type": "object" + }, + "HttpRouteQueryParameterMatch": { + "description": "Specifications to match a query parameter in the request.", + "id": "HttpRouteQueryParameterMatch", + "properties": { + "exactMatch": { + "description": "The value of the query parameter must exactly match the contents of exact_match. Only one of exact_match, regex_match, or present_match must be set.", + "type": "string" + }, + "presentMatch": { + "description": "Specifies that the QueryParameterMatcher matches if request contains query parameter, irrespective of whether the parameter has a value or not. Only one of exact_match, regex_match, or present_match must be set.", + "type": "boolean" + }, + "queryParameter": { + "description": "The name of the query parameter to match.", + "type": "string" + }, + "regexMatch": { + "description": "The value of the query parameter must match the regular expression specified by regex_match. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of exact_match, regex_match, or present_match must be set.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteRedirect": { + "description": "The specification for redirecting traffic.", + "id": "HttpRouteRedirect", + "properties": { + "hostRedirect": { + "description": "The host that will be used in the redirect response instead of the one that was supplied in the request.", + "type": "string" + }, + "httpsRedirect": { + "description": "If set to true, the URL scheme in the redirected request is set to https. If set to false, the URL scheme of the redirected request will remain the same as that of the request. The default is set to false.", + "type": "boolean" + }, + "pathRedirect": { + "description": "The path that will be used in the redirect response instead of the one that was supplied in the request. path_redirect can not be supplied together with prefix_redirect. Supply one alone or neither. If neither is supplied, the path of the original request will be used for the redirect.", + "type": "string" + }, + "portRedirect": { + "description": "The port that will be used in the redirected request instead of the one that was supplied in the request.", + "format": "int32", + "type": "integer" + }, + "prefixRewrite": { + "description": "Indicates that during redirection, the matched prefix (or path) should be swapped with this value. This option allows URLs be dynamically created based on the request.", + "type": "string" + }, + "responseCode": { + "description": "The HTTP Status code to use for the redirect.", + "enum": [ + "RESPONSE_CODE_UNSPECIFIED", + "MOVED_PERMANENTLY_DEFAULT", + "FOUND", + "SEE_OTHER", + "TEMPORARY_REDIRECT", + "PERMANENT_REDIRECT" + ], + "enumDescriptions": [ + "Default value", + "Corresponds to 301.", + "Corresponds to 302.", + "Corresponds to 303.", + "Corresponds to 307. In this case, the request method will be retained.", + "Corresponds to 308. In this case, the request method will be retained." + ], + "type": "string" + }, + "stripQuery": { + "description": "if set to true, any accompanying query portion of the original URL is removed prior to redirecting the request. If set to false, the query portion of the original URL is retained. The default is set to false.", + "type": "boolean" + } + }, + "type": "object" + }, + "HttpRouteRequestMirrorPolicy": { + "description": "Specifies the policy on how requests are shadowed to a separate mirrored destination service. The proxy does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow.", + "id": "HttpRouteRequestMirrorPolicy", + "properties": { + "destination": { + "$ref": "HttpRouteDestination", + "description": "The destination the requests will be mirrored to. The weight of the destination will be ignored." + } + }, + "type": "object" + }, + "HttpRouteRetryPolicy": { + "description": "The specifications for retries.", + "id": "HttpRouteRetryPolicy", + "properties": { + "numRetries": { + "description": "Specifies the allowed number of retries. This number must be > 0. If not specified, default to 1.", + "format": "int32", + "type": "integer" + }, + "perTryTimeout": { + "description": "Specifies a non-zero timeout per retry attempt.", + "format": "google-duration", + "type": "string" + }, + "retryConditions": { + "description": "Specifies one or more conditions when this retry policy applies. Valid values are: 5xx: Proxy will attempt a retry if the destination service responds with any 5xx response code, of if the destination service does not respond at all, example: disconnect, reset, read timeout, connection failure and refused streams. gateway-error: Similar to 5xx, but only applies to response codes 502, 503, 504. reset: Proxy will attempt a retry if the destination service does not respond at all (disconnect/reset/read timeout) connect-failure: Proxy will retry on failures connecting to destination for example due to connection timeouts. retriable-4xx: Proxy will retry fro retriable 4xx response codes. Currently the only retriable error supported is 409. refused-stream: Proxy will retry if the destination resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "HttpRouteRouteAction", + "properties": { + "corsPolicy": { + "$ref": "HttpRouteCorsPolicy", + "description": "The specification for allowing client side cross-origin requests." + }, + "destinations": { + "description": "The destination to which traffic should be forwarded.", + "items": { + "$ref": "HttpRouteDestination" + }, + "type": "array" + }, + "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" + }, + "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." + }, + "requestMirrorPolicy": { + "$ref": "HttpRouteRequestMirrorPolicy", + "description": "Specifies the policy on how requests intended for the routes destination are shadowed to a separate mirrored destination. Proxy will not wait for the shadow destination to respond before returning the response. Prior to sending traffic to the shadow service, the host/authority header is suffixed with -shadow." + }, + "responseHeaderModifier": { + "$ref": "HttpRouteHeaderModifier", + "description": "The specification for modifying the headers of a response prior to sending the response back to the client." + }, + "retryPolicy": { + "$ref": "HttpRouteRetryPolicy", + "description": "Specifies the retry policy associated with this route." + }, + "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", + "type": "string" + }, + "urlRewrite": { + "$ref": "HttpRouteURLRewrite", + "description": "The specification for rewrite URL before forwarding requests to the destination." + } + }, + "type": "object" + }, + "HttpRouteRouteMatch": { + "description": "RouteMatch defines specifications used to match requests. If multiple match types are set, this RouteMatch will match if ALL type of matches are matched.", + "id": "HttpRouteRouteMatch", + "properties": { + "fullPathMatch": { + "description": "The HTTP request path value should exactly match this value. Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + }, + "headers": { + "description": "Specifies a list of HTTP request headers to match against. ALL of the supplied headers must be matched.", + "items": { + "$ref": "HttpRouteHeaderMatch" + }, + "type": "array" + }, + "ignoreCase": { + "description": "Specifies if prefix_match and full_path_match matches are case sensitive. The default value is false.", + "type": "boolean" + }, + "prefixMatch": { + "description": "The HTTP request path value must begin with specified prefix_match. prefix_match must begin with a /. Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + }, + "queryParameters": { + "description": "Specifies a list of query parameters to match against. ALL of the query parameters must be matched.", + "items": { + "$ref": "HttpRouteQueryParameterMatch" + }, + "type": "array" + }, + "regexMatch": { + "description": "The HTTP request path value must satisfy the regular expression specified by regex_match after removing any query parameters and anchor supplied with the original URL. For regular expression grammar, please see https://github.com/google/re2/wiki/Syntax Only one of full_path_match, prefix_match, or regex_match should be used.", + "type": "string" + } + }, + "type": "object" + }, + "HttpRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "HttpRouteRouteRule", + "properties": { + "action": { + "$ref": "HttpRouteRouteAction", + "description": "The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "A list of matches define conditions used for matching the rule against incoming HTTP requests. Each match is independent, i.e. this rule will be matched if ANY one of the matches is satisfied. If no matches field is specified, this rule will unconditionally match traffic. If a default rule is desired to be configured, add a rule with no matches specified to the end of the rules list.", + "items": { + "$ref": "HttpRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, + "HttpRouteURLRewrite": { + "description": "The specification for modifying the URL of the request, prior to forwarding the request to the destination.", + "id": "HttpRouteURLRewrite", + "properties": { + "hostRewrite": { + "description": "Prior to forwarding the request to the selected destination, the requests host header is replaced by this value.", + "type": "string" + }, + "pathPrefixRewrite": { + "description": "Prior to forwarding the request to the selected destination, the matching portion of the requests path is replaced by this value.", + "type": "string" + } + }, + "type": "object" + }, "ListEndpointPoliciesResponse": { "description": "Response returned by the ListEndpointPolicies method.", "id": "ListEndpointPoliciesResponse", @@ -998,6 +2926,60 @@ }, "type": "object" }, + "ListGatewaysResponse": { + "description": "Response returned by the ListGateways method.", + "id": "ListGatewaysResponse", + "properties": { + "gateways": { + "description": "List of Gateway resources.", + "items": { + "$ref": "Gateway" + }, + "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" + }, + "ListGrpcRoutesResponse": { + "description": "Response returned by the ListGrpcRoutes method.", + "id": "ListGrpcRoutesResponse", + "properties": { + "grpcRoutes": { + "description": "List of GrpcRoute resources.", + "items": { + "$ref": "GrpcRoute" + }, + "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" + }, + "ListHttpRoutesResponse": { + "description": "Response returned by the ListHttpRoutes method.", + "id": "ListHttpRoutesResponse", + "properties": { + "httpRoutes": { + "description": "List of HttpRoute resources.", + "items": { + "$ref": "HttpRoute" + }, + "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" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1016,6 +2998,24 @@ }, "type": "object" }, + "ListMeshesResponse": { + "description": "Response returned by the ListMeshes method.", + "id": "ListMeshesResponse", + "properties": { + "meshes": { + "description": "List of Mesh resources.", + "items": { + "$ref": "Mesh" + }, + "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" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1052,6 +3052,42 @@ }, "type": "object" }, + "ListTcpRoutesResponse": { + "description": "Response returned by the ListTcpRoutes method.", + "id": "ListTcpRoutesResponse", + "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" + }, + "tcpRoutes": { + "description": "List of TcpRoute resources.", + "items": { + "$ref": "TcpRoute" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListTlsRoutesResponse": { + "description": "Response returned by the ListTlsRoutes method.", + "id": "ListTlsRoutesResponse", + "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" + }, + "tlsRoutes": { + "description": "List of TlsRoute resources.", + "items": { + "$ref": "TlsRoute" + }, + "type": "array" + } + }, + "type": "object" + }, "Location": { "description": "A resource that represents Google Cloud Platform location.", "id": "Location", @@ -1086,6 +3122,50 @@ }, "type": "object" }, + "Mesh": { + "description": "Mesh represents a logical configuration grouping for workload to workload communication within a service mesh. Routes that point to mesh dictate how requests are routed within this logical mesh boundary.", + "id": "Mesh", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "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.", + "format": "int32", + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the Mesh resource.", + "type": "object" + }, + "name": { + "description": "Required. Name of the Mesh resource. It matches pattern `projects/*/locations/global/meshes/`.", + "type": "string" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MetadataLabelMatcher": { "description": "The matcher that is based on node metadata presented by xDS clients.", "id": "MetadataLabelMatcher", @@ -1253,10 +3333,6 @@ "description": "Optional. A free-text description of the resource. Max length 1024 characters.", "type": "string" }, - "endpointFilter": { - "description": "Optional. The endpoint filter associated with the Service Binding. The syntax is described in http://cloud/service-directory/docs/reference/rpc/google.cloud.servicedirectory.v1#google.cloud.servicedirectory.v1.ResolveServiceRequest", - "type": "string" - }, "labels": { "additionalProperties": { "type": "string" @@ -1265,11 +3341,11 @@ "type": "object" }, "name": { - "description": "Required. Name of the ServiceBinding resource. It matches pattern `projects/*/locations/global/serviceBindings/service_binding_name>`.", + "description": "Required. Name of the ServiceBinding resource. It matches pattern `projects/*/locations/global/serviceBindings/service_binding_name`.", "type": "string" }, "service": { - "description": "Required. The full service directory service name of the format /projects/*/locations/*/namespaces/*/services/*", + "description": "Required. The full Service Directory Service name of the format projects/*/locations/*/namespaces/*/services/*", "type": "string" }, "updateTime": { @@ -1287,7 +3363,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1324,12 +3400,139 @@ }, "type": "object" }, + "TcpRoute": { + "description": "TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.", + "id": "TcpRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the TcpRoute resource.", + "type": "object" + }, + "meshes": { + "description": "Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", + "items": { + "$ref": "TcpRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TcpRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "TcpRouteRouteAction", + "properties": { + "destinations": { + "description": "Optional. The destination services to which traffic should be forwarded. At least one destination service is required.", + "items": { + "$ref": "TcpRouteRouteDestination" + }, + "type": "array" + }, + "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.", + "type": "boolean" + } + }, + "type": "object" + }, + "TcpRouteRouteDestination": { + "description": "Describe the destination for traffic to be routed to.", + "id": "TcpRouteRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a BackendService to route traffic to.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TcpRouteRouteMatch": { + "description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "id": "TcpRouteRouteMatch", + "properties": { + "address": { + "description": "Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: \"10.0.0.1\" - matches against this exact IP address. \"10.0.0.0/8\" - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. \"0.0.0.0/0\" - matches against any IP address'.", + "type": "string" + }, + "port": { + "description": "Required. Specifies the destination port to match against.", + "type": "string" + } + }, + "type": "object" + }, + "TcpRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "TcpRouteRouteRule", + "properties": { + "action": { + "$ref": "TcpRouteRouteAction", + "description": "Required. The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "items": { + "$ref": "TcpRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1352,6 +3555,128 @@ }, "type": "object" }, + "TlsRoute": { + "description": "TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.", + "id": "TlsRoute", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the 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" + }, + "gateways": { + "description": "Optional. Gateways defines a list of gateways this TlsRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`", + "items": { + "type": "string" + }, + "type": "array" + }, + "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": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Name of the TlsRoute resource. It matches pattern `projects/*/locations/global/tlsRoutes/tls_route_name>`.", + "type": "string" + }, + "rules": { + "description": "Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.", + "items": { + "$ref": "TlsRouteRouteRule" + }, + "type": "array" + }, + "selfLink": { + "description": "Output only. Server-defined URL of this resource", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "TlsRouteRouteAction": { + "description": "The specifications for routing traffic and applying associated policies.", + "id": "TlsRouteRouteAction", + "properties": { + "destinations": { + "description": "Required. The destination services to which traffic should be forwarded. At least one destination service is required.", + "items": { + "$ref": "TlsRouteRouteDestination" + }, + "type": "array" + } + }, + "type": "object" + }, + "TlsRouteRouteDestination": { + "description": "Describe the destination for traffic to be routed to.", + "id": "TlsRouteRouteDestination", + "properties": { + "serviceName": { + "description": "Required. The URL of a BackendService to route traffic to.", + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TlsRouteRouteMatch": { + "description": "RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"AND\"ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.", + "id": "TlsRouteRouteMatch", + "properties": { + "alpn": { + "description": "Optional. ALPN (Application-Layer Protocol Negotiation) to match against. Examples: \"http/1.1\", \"h2\". At least one of sni_host and alpn is required. Up to 5 alpns across all matches can be set.", + "items": { + "type": "string" + }, + "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TlsRouteRouteRule": { + "description": "Specifies how to match traffic and how to route traffic when traffic is matched.", + "id": "TlsRouteRouteRule", + "properties": { + "action": { + "$ref": "TlsRouteRouteAction", + "description": "Required. The detailed rule defining how to route matched traffic." + }, + "matches": { + "description": "Required. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are \"OR\"ed for evaluation.", + "items": { + "$ref": "TlsRouteRouteMatch" + }, + "type": "array" + } + }, + "type": "object" + }, "TrafficPortSelector": { "description": "Specification of a port-based selector.", "id": "TrafficPortSelector", diff --git a/etc/api/notebooks/v1/notebooks-api.json b/etc/api/notebooks/v1/notebooks-api.json index 11cf3cf203..00bc6008e3 100644 --- a/etc/api/notebooks/v1/notebooks-api.json +++ b/etc/api/notebooks/v1/notebooks-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -493,6 +493,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "diagnose": { + "description": "Creates a Diagnostic File and runs Diagnostic Tool given an Instance.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:diagnose", + "httpMethod": "POST", + "id": "notebooks.projects.locations.instances.diagnose", + "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}:diagnose", + "request": { + "$ref": "DiagnoseInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single Instance.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", @@ -534,7 +562,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -804,7 +832,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -944,7 +972,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/instances/[^/]+$", "required": true, @@ -1245,6 +1273,11 @@ "required": true, "type": "string" }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + }, "runtimeId": { "description": "Required. User-defined unique ID of this Runtime.", "location": "query", @@ -1277,6 +1310,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+/runtimes/[^/]+$", "required": true, "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" } }, "path": "v1/{+name}", @@ -1287,6 +1325,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "diagnose": { + "description": "Creates a Diagnostic File and runs Diagnostic Tool given a Runtime.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:diagnose", + "httpMethod": "POST", + "id": "notebooks.projects.locations.runtimes.diagnose", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Format: `projects/{project_id}/locations/{location}/runtimes/{runtimes_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/runtimes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:diagnose", + "request": { + "$ref": "DiagnoseRuntimeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single Runtime. The location must be a regional endpoint rather than zonal.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}", @@ -1328,7 +1394,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/runtimes/[^/]+$", "required": true, @@ -1379,6 +1445,73 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "patch": { + "description": "Update Notebook Runtime configuration.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}", + "httpMethod": "PATCH", + "id": "notebooks.projects.locations.runtimes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the runtime. Format: `projects/{project}/locations/{location}/runtimes/{runtimeId}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/runtimes/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "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", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Runtime" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "refreshRuntimeTokenInternal": { + "description": "Gets an access token for the consumer service account that the customer attached to the runtime. Only accessible from the tenant instance.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:refreshRuntimeTokenInternal", + "httpMethod": "POST", + "id": "notebooks.projects.locations.runtimes.refreshRuntimeTokenInternal", + "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}:refreshRuntimeTokenInternal", + "request": { + "$ref": "RefreshRuntimeTokenInternalRequest" + }, + "response": { + "$ref": "RefreshRuntimeTokenInternalResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "reportEvent": { "description": "Report and process a runtime event.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:reportEvent", @@ -1445,7 +1578,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/runtimes/[^/]+$", "required": true, @@ -1557,7 +1690,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/runtimes/[^/]+$", "required": true, @@ -1574,6 +1707,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "upgrade": { + "description": "Upgrades a Managed Notebook Runtime to the latest version.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/runtimes/{runtimesId}:upgrade", + "httpMethod": "POST", + "id": "notebooks.projects.locations.runtimes.upgrade", + "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}:upgrade", + "request": { + "$ref": "UpgradeRuntimeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -1743,7 +1904,7 @@ } } }, - "revision": "20220224", + "revision": "20221213", "rootUrl": "https://notebooks.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -1799,7 +1960,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1850,6 +2011,55 @@ }, "type": "object" }, + "DiagnoseInstanceRequest": { + "description": "Request for creating a notebook instance diagnostic file.", + "id": "DiagnoseInstanceRequest", + "properties": { + "diagnosticConfig": { + "$ref": "DiagnosticConfig", + "description": "Required. Defines flags that are used to run the diagnostic tool" + } + }, + "type": "object" + }, + "DiagnoseRuntimeRequest": { + "description": "Request for creating a notebook instance diagnostic file.", + "id": "DiagnoseRuntimeRequest", + "properties": { + "diagnosticConfig": { + "$ref": "DiagnosticConfig", + "description": "Required. Defines flags that are used to run the diagnostic tool" + } + }, + "type": "object" + }, + "DiagnosticConfig": { + "description": "Defines flags that are used to run the diagnostic tool", + "id": "DiagnosticConfig", + "properties": { + "copyHomeFilesFlagEnabled": { + "description": "Optional. Enables flag to copy all `/home/jupyter` folder contents", + "type": "boolean" + }, + "gcsBucket": { + "description": "Required. User Cloud Storage bucket location (REQUIRED). Must be formatted with path prefix (`gs://$GCS_BUCKET`). Permissions: User Managed Notebooks: - storage.buckets.writer: Must be given to the project's service account attached to VM. Google Managed Notebooks: - storage.buckets.writer: Must be given to the project's service account or user credentials attached to VM depending on authentication mode. Cloud Storage bucket Log file will be written to `gs://$GCS_BUCKET/$RELATIVE_PATH/$VM_DATE_$TIME.tar.gz`", + "type": "string" + }, + "packetCaptureFlagEnabled": { + "description": "Optional. Enables flag to capture packets from the instance for 30 seconds", + "type": "boolean" + }, + "relativePath": { + "description": "Optional. Defines the relative storage path in the Cloud Storage bucket where the diagnostic logs will be written: Default path will be the root directory of the Cloud Storage bucket (`gs://$GCS_BUCKET/$DATE_$TIME.tar.gz`) Example of full path where Log file will be written: `gs://$GCS_BUCKET/$RELATIVE_PATH/`", + "type": "string" + }, + "repairFlagEnabled": { + "description": "Optional. Enables flag to repair service for instance", + "type": "boolean" + } + }, + "type": "object" + }, "Disk": { "description": "An instance-attached disk resource.", "id": "Disk", @@ -1914,7 +2124,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2265,13 +2475,15 @@ "DISK_TYPE_UNSPECIFIED", "PD_STANDARD", "PD_SSD", - "PD_BALANCED" + "PD_BALANCED", + "PD_EXTREME" ], "enumDescriptions": [ "Disk type not set.", "Standard persistent disk type.", "SSD persistent disk type.", - "Balanced persistent disk type." + "Balanced persistent disk type.", + "Extreme persistent disk type." ], "type": "string" }, @@ -2309,13 +2521,15 @@ "DISK_TYPE_UNSPECIFIED", "PD_STANDARD", "PD_SSD", - "PD_BALANCED" + "PD_BALANCED", + "PD_EXTREME" ], "enumDescriptions": [ "Disk type not set.", "Standard persistent disk type.", "SSD persistent disk type.", - "Balanced persistent disk type." + "Balanced persistent disk type.", + "Extreme persistent disk type." ], "type": "string" }, @@ -2792,13 +3006,15 @@ "DISK_TYPE_UNSPECIFIED", "PD_STANDARD", "PD_SSD", - "PD_BALANCED" + "PD_BALANCED", + "PD_EXTREME" ], "enumDescriptions": [ "Disk type not set.", "Standard persistent disk type.", "SSD persistent disk type.", - "Balanced persistent disk type." + "Balanced persistent disk type.", + "Extreme persistent disk type." ], "type": "string" }, @@ -2946,6 +3162,34 @@ }, "type": "object" }, + "RefreshRuntimeTokenInternalRequest": { + "description": "Request for getting a new access token.", + "id": "RefreshRuntimeTokenInternalRequest", + "properties": { + "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" + }, + "RefreshRuntimeTokenInternalResponse": { + "description": "Response with a new access token.", + "id": "RefreshRuntimeTokenInternalResponse", + "properties": { + "accessToken": { + "description": "The OAuth 2.0 access token.", + "type": "string" + }, + "expireTime": { + "description": "Output only. Token expiration time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "RegisterInstanceRequest": { "description": "Request for registering a notebook instance.", "id": "RegisterInstanceRequest", @@ -3033,7 +3277,12 @@ "ResetRuntimeRequest": { "description": "Request for resetting a Managed Notebook Runtime.", "id": "ResetRuntimeRequest", - "properties": {}, + "properties": { + "requestId": { + "description": "Idempotent request UUID.", + "type": "string" + } + }, "type": "object" }, "RollbackInstanceRequest": { @@ -3261,6 +3510,10 @@ "description": "Specify a custom Cloud Storage path where the GPU driver is stored. If not specified, we'll automatically choose from official GPU drivers.", "type": "string" }, + "disableTerminal": { + "description": "Bool indicating whether JupyterLab terminal will be available or not. Default: False", + "type": "boolean" + }, "enableHealthMonitoring": { "description": "Verifies core internal services are running. Default: True", "type": "boolean" @@ -3293,10 +3546,29 @@ "description": "Path to a Bash script that automatically runs after a notebook instance fully boots up. The path must be a URL or Cloud Storage path (`gs://path-to-file/file-name`).", "type": "string" }, + "postStartupScriptBehavior": { + "description": "Behavior for the post startup script.", + "enum": [ + "POST_STARTUP_SCRIPT_BEHAVIOR_UNSPECIFIED", + "RUN_EVERY_START", + "DOWNLOAD_AND_RUN_EVERY_START" + ], + "enumDescriptions": [ + "Unspecified post startup script behavior. Will run only once at creation.", + "Runs the post startup script provided during creation at every start.", + "Downloads and runs the provided post startup script at every start." + ], + "type": "string" + }, "upgradeable": { "description": "Output only. Bool indicating whether an newer image is available in an image family.", "readOnly": true, "type": "boolean" + }, + "version": { + "description": "Output only. version of boot image such as M100, from release label of the image.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -3419,7 +3691,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -3521,7 +3793,12 @@ "StartRuntimeRequest": { "description": "Request for starting a Managed Notebook Runtime.", "id": "StartRuntimeRequest", - "properties": {}, + "properties": { + "requestId": { + "description": "Idempotent request UUID.", + "type": "string" + } + }, "type": "object" }, "Status": { @@ -3560,7 +3837,12 @@ "StopRuntimeRequest": { "description": "Request for stopping a Managed Notebook Runtime.", "id": "StopRuntimeRequest", - "properties": {}, + "properties": { + "requestId": { + "description": "Idempotent request UUID.", + "type": "string" + } + }, "type": "object" }, "SwitchRuntimeRequest": { @@ -3574,6 +3856,10 @@ "machineType": { "description": "machine type.", "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "type": "string" } }, "type": "object" @@ -3583,7 +3869,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -3786,6 +4072,17 @@ }, "type": "object" }, + "UpgradeRuntimeRequest": { + "description": "Request for upgrading a Managed Notebook Runtime to the latest version. option (google.api.message_visibility).restriction = \"TRUSTED_TESTER,SPECIAL_TESTER\";", + "id": "UpgradeRuntimeRequest", + "properties": { + "requestId": { + "description": "Idempotent request UUID.", + "type": "string" + } + }, + "type": "object" + }, "VertexAIParameters": { "description": "Parameters used in Vertex AI JobType executions.", "id": "VertexAIParameters", @@ -3883,7 +4180,7 @@ "type": "object" }, "network": { - "description": "Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the \"default\" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/regions/global/default` * `projects/[project_id]/regions/global/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access.", + "description": "Optional. The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork. If neither `network` nor `subnet` is specified, the \"default\" network of the project is used, if it exists. A full URL or partial URI. Examples: * `https://www.googleapis.com/compute/v1/projects/[project_id]/global/networks/default` * `projects/[project_id]/global/networks/default` Runtimes are managed resources inside Google Infrastructure. Runtimes support the following network configurations: * Google Managed Network (Network & subnet are empty) * Consumer Project VPC (network & subnet are required). Requires configuring Private Service Access. * Shared VPC (network & subnet are required). Requires configuring Private Service Access.", "type": "string" }, "nicType": { @@ -3940,7 +4237,7 @@ "type": "string" }, "project": { - "description": "Required. The name of the Google Cloud project that this VM image belongs to. Format: `projects/{project_id}`", + "description": "Required. The name of the Google Cloud project that this VM image belongs to. Format: `{project_id}`", "type": "string" } }, diff --git a/etc/api/oauth2/v2/oauth2-api.json b/etc/api/oauth2/v2/oauth2-api.json index 59288e8e8a..32900c7d18 100644 --- a/etc/api/oauth2/v2/oauth2-api.json +++ b/etc/api/oauth2/v2/oauth2-api.json @@ -3,7 +3,7 @@ "oauth2": { "scopes": { "https://www.googleapis.com/auth/userinfo.email": { - "description": "View your email address" + "description": "See your primary Google Account email address" }, "https://www.googleapis.com/auth/userinfo.profile": { "description": "See your personal info, including any personal info you've made publicly available" diff --git a/etc/api/ondemandscanning/v1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1/ondemandscanning-api.json index ef1bd3447a..0e1b4ff7b9 100644 --- a/etc/api/ondemandscanning/v1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1/ondemandscanning-api.json @@ -339,7 +339,7 @@ } } }, - "revision": "20220228", + "revision": "20230109", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -369,6 +369,19 @@ }, "type": "object" }, + "AnalysisCompleted": { + "description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", + "id": "AnalysisCompleted", + "properties": { + "analysisType": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AnalyzePackagesMetadata": { "description": "AnalyzePackagesMetadata contains metadata for an active scan of a container image.", "id": "AnalyzePackagesMetadata", @@ -597,7 +610,7 @@ "type": "object" }, "CVSS": { - "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing multiple versions of CVSS. The intention is that as new versions of CVSS scores get added, we will be able to modify this message rather than adding new protos for each new version of the score.", + "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version.", "id": "CVSS", "properties": { "attackComplexity": { @@ -927,6 +940,16 @@ "description": "Provides information about the analysis status of a discovered resource.", "id": "DiscoveryOccurrence", "properties": { + "analysisCompleted": { + "$ref": "AnalysisCompleted" + }, + "analysisError": { + "description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, "analysisStatus": { "description": "The status of discovery for the resource.", "enum": [ @@ -934,6 +957,7 @@ "PENDING", "SCANNING", "FINISHED_SUCCESS", + "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ], @@ -942,8 +966,9 @@ "Resource is known but no action has been taken yet.", "Resource is being analyzed.", "Analysis has finished successfully.", + "Analysis has completed.", "Analysis has finished unsuccessfully, the analysis itself is in a bad state.", - "The resource is known not to be supported" + "The resource is known not to be supported." ], "type": "string" }, @@ -984,7 +1009,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1036,6 +1061,17 @@ }, "type": "object" }, + "FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, "Fingerprint": { "description": "A set of properties that uniquely identify a given Docker image.", "id": "Fingerprint", @@ -1096,6 +1132,126 @@ }, "type": "object" }, + "GrafeasV1FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "GrafeasV1FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder": { + "description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder", + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness": { + "description": "Indicates that the builder claims certain fields in this message to be complete.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness", + "properties": { + "environment": { + "type": "boolean" + }, + "materials": { + "type": "boolean" + }, + "parameters": { + "type": "boolean" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource": { + "description": "Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "entryPoint": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation": { + "description": "Identifies the event that kicked off the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation", + "properties": { + "configSource": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource" + }, + "environment": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "parameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial": { + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata": { + "description": "Other properties of the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata", + "properties": { + "buildFinishedOn": { + "format": "google-datetime", + "type": "string" + }, + "buildInvocationId": { + "type": "string" + }, + "buildStartedOn": { + "format": "google-datetime", + "type": "string" + }, + "completeness": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness" + }, + "reproducible": { + "type": "boolean" + } + }, + "type": "object" + }, "Hash": { "description": "Container message for hash values.", "id": "Hash", @@ -1197,6 +1353,9 @@ "slsaProvenance": { "$ref": "SlsaProvenance" }, + "slsaProvenanceZeroTwo": { + "$ref": "SlsaProvenanceZeroTwo" + }, "subject": { "items": { "$ref": "Subject" @@ -1216,6 +1375,19 @@ }, "type": "object" }, + "LanguagePackageDependency": { + "description": "Indicates a language package available between this package and the customer's resource artifact.", + "id": "LanguagePackageDependency", + "properties": { + "package": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, "Layer": { "description": "Layer holds metadata specific to a layer of a Docker image.", "id": "Layer", @@ -1231,6 +1403,21 @@ }, "type": "object" }, + "License": { + "description": "License information.", + "id": "License", + "properties": { + "comments": { + "description": "Comments", + "type": "string" + }, + "expression": { + "description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", + "type": "string" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1272,7 +1459,7 @@ "id": "Location", "properties": { "cpeUri": { - "description": "Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", + "description": "Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/)", "type": "string" }, "path": { @@ -1281,7 +1468,7 @@ }, "version": { "$ref": "Version", - "description": "The version installed at this location." + "description": "Deprecated. The version installed at this location." } }, "type": "object" @@ -1498,12 +1685,30 @@ "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" }, + "dependencyChain": { + "description": "The dependency chain between this package and the user's artifact. List in order from the customer's package under review first, to the current package last. Inclusive of the original package and the current package.", + "items": { + "$ref": "LanguagePackageDependency" + }, + "type": "array" + }, + "fileLocation": { + "description": "The path to the jar file / go binary file.", + "items": { + "$ref": "FileLocation" + }, + "type": "array" + }, + "hashDigest": { + "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" + }, "os": { - "description": "The OS affected by a vulnerability This field is deprecated and the information is in cpe_uri", + "description": "The OS affected by a vulnerability Used to generate the cpe_uri for OS packages", "type": "string" }, "osVersion": { - "description": "The version of the OS This field is deprecated and the information is in cpe_uri", + "description": "The version of the OS Used to generate the cpe_uri for OS packages", "type": "string" }, "package": { @@ -1517,17 +1722,28 @@ "OS", "MAVEN", "GO", - "GO_STDLIB" + "GO_STDLIB", + "PYPI", + "NPM" ], "enumDescriptions": [ "", "Operating System", "Java packages from Maven.", "Go third-party packages.", - "Go toolchain + standard library packages." + "Go toolchain + standard library packages.", + "Python packages.", + "NPM packages." ], "type": "string" }, + "patchedCve": { + "description": "CVEs that this package is no longer vulnerable to go/drydock-dd-custom-binary-scanning", + "items": { + "type": "string" + }, + "type": "array" + }, "unused": { "type": "string" }, @@ -1575,6 +1791,13 @@ "readOnly": true, "type": "string" }, + "fileLocation": { + "description": "The location at which this package was found.", + "items": { + "$ref": "GrafeasV1FileLocation" + }, + "type": "array" + }, "fixAvailable": { "description": "Output only. Whether a fix is available for this package.", "type": "boolean" @@ -1602,16 +1825,51 @@ "description": "Details on how a particular software package was installed on a system.", "id": "PackageOccurrence", "properties": { + "architecture": { + "description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "readOnly": true, + "type": "string" + }, + "cpeUri": { + "description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "readOnly": true, + "type": "string" + }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, "location": { - "description": "Required. All of the places within the filesystem versions of this package have been found.", + "description": "All of the places within the filesystem versions of this package have been found.", "items": { "$ref": "Location" }, "type": "array" }, "name": { - "description": "Output only. The name of the installed package.", + "description": "Required. Output only. The name of the installed package.", + "readOnly": true, "type": "string" + }, + "packageType": { + "description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "readOnly": true, + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "Output only. The version of the package.", + "readOnly": true } }, "type": "object" @@ -1800,6 +2058,38 @@ }, "type": "object" }, + "SlsaProvenanceZeroTwo": { + "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", + "id": "SlsaProvenanceZeroTwo", + "properties": { + "buildConfig": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "buildType": { + "type": "string" + }, + "builder": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder" + }, + "invocation": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation" + }, + "materials": { + "items": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial" + }, + "type": "array" + }, + "metadata": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata" + } + }, + "type": "object" + }, "SlsaRecipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "SlsaRecipe", @@ -2036,6 +2326,20 @@ "format": "float", "type": "number" }, + "cvssVersion": { + "description": "Output only. CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "cvssv3": { "$ref": "CVSS", "description": "The cvss v3 score for the vulnerability." diff --git a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json index e4aa9981b1..3e353cf0ef 100644 --- a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json @@ -339,7 +339,7 @@ } } }, - "revision": "20220228", + "revision": "20230109", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { @@ -369,6 +369,19 @@ }, "type": "object" }, + "AnalysisCompleted": { + "description": "Indicates which analysis completed successfully. Multiple types of analysis can be performed on a single resource.", + "id": "AnalysisCompleted", + "properties": { + "analysisType": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "AnalyzePackagesMetadata": { "description": "AnalyzePackagesMetadata contains metadata for an active scan of a container image.", "id": "AnalyzePackagesMetadata", @@ -593,7 +606,7 @@ "type": "object" }, "CVSS": { - "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing multiple versions of CVSS. The intention is that as new versions of CVSS scores get added, we will be able to modify this message rather than adding new protos for each new version of the score.", + "description": "Common Vulnerability Scoring System. For details, see https://www.first.org/cvss/specification-document This is a message we will try to use for storing various versions of CVSS rather than making a separate proto for storing a specific version.", "id": "CVSS", "properties": { "attackComplexity": { @@ -923,6 +936,16 @@ "description": "Provides information about the analysis status of a discovered resource.", "id": "DiscoveryOccurrence", "properties": { + "analysisCompleted": { + "$ref": "AnalysisCompleted" + }, + "analysisError": { + "description": "Indicates any errors encountered during analysis of a resource. There could be 0 or more of these errors.", + "items": { + "$ref": "Status" + }, + "type": "array" + }, "analysisStatus": { "description": "The status of discovery for the resource.", "enum": [ @@ -930,6 +953,7 @@ "PENDING", "SCANNING", "FINISHED_SUCCESS", + "COMPLETE", "FINISHED_FAILED", "FINISHED_UNSUPPORTED" ], @@ -938,8 +962,9 @@ "Resource is known but no action has been taken yet.", "Resource is being analyzed.", "Analysis has finished successfully.", + "Analysis has completed.", "Analysis has finished unsuccessfully, the analysis itself is in a bad state.", - "The resource is known not to be supported" + "The resource is known not to be supported." ], "type": "string" }, @@ -980,7 +1005,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1032,6 +1057,17 @@ }, "type": "object" }, + "FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, "Fingerprint": { "description": "A set of properties that uniquely identify a given Docker image.", "id": "Fingerprint", @@ -1092,6 +1128,126 @@ }, "type": "object" }, + "GrafeasV1FileLocation": { + "description": "Indicates the location at which a package was found.", + "id": "GrafeasV1FileLocation", + "properties": { + "filePath": { + "description": "For jars that are contained inside .war files, this filepath can indicate the path to war file combined with the path to jar file.", + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder": { + "description": "Identifies the entity that executed the recipe, which is trusted to have correctly performed the operation and populated this provenance.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder", + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness": { + "description": "Indicates that the builder claims certain fields in this message to be complete.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness", + "properties": { + "environment": { + "type": "boolean" + }, + "materials": { + "type": "boolean" + }, + "parameters": { + "type": "boolean" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource": { + "description": "Describes where the config file that kicked off the build came from. This is effectively a pointer to the source where buildConfig came from.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "entryPoint": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation": { + "description": "Identifies the event that kicked off the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation", + "properties": { + "configSource": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaConfigSource" + }, + "environment": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "parameters": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial": { + "description": "The collection of artifacts that influenced the build including sources, dependencies, build tools, base images, and so on.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial", + "properties": { + "digest": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata": { + "description": "Other properties of the build.", + "id": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata", + "properties": { + "buildFinishedOn": { + "format": "google-datetime", + "type": "string" + }, + "buildInvocationId": { + "type": "string" + }, + "buildStartedOn": { + "format": "google-datetime", + "type": "string" + }, + "completeness": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaCompleteness" + }, + "reproducible": { + "type": "boolean" + } + }, + "type": "object" + }, "Hash": { "description": "Container message for hash values.", "id": "Hash", @@ -1193,6 +1349,9 @@ "slsaProvenance": { "$ref": "SlsaProvenance" }, + "slsaProvenanceZeroTwo": { + "$ref": "SlsaProvenanceZeroTwo" + }, "subject": { "items": { "$ref": "Subject" @@ -1212,6 +1371,19 @@ }, "type": "object" }, + "LanguagePackageDependency": { + "description": "Indicates a language package available between this package and the customer's resource artifact.", + "id": "LanguagePackageDependency", + "properties": { + "package": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, "Layer": { "description": "Layer holds metadata specific to a layer of a Docker image.", "id": "Layer", @@ -1227,6 +1399,21 @@ }, "type": "object" }, + "License": { + "description": "License information.", + "id": "License", + "properties": { + "comments": { + "description": "Comments", + "type": "string" + }, + "expression": { + "description": "Often a single license can be used to represent the licensing terms. Sometimes it is necessary to include a choice of one or more licenses or some combination of license identifiers. Examples: \"LGPL-2.1-only OR MIT\", \"LGPL-2.1-only AND MIT\", \"GPL-2.0-or-later WITH Bison-exception-2.2\".", + "type": "string" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1268,7 +1455,7 @@ "id": "Location", "properties": { "cpeUri": { - "description": "Required. The CPE URI in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package.", + "description": "Deprecated. The CPE URI in [CPE format](https://cpe.mitre.org/specification/)", "type": "string" }, "path": { @@ -1277,7 +1464,7 @@ }, "version": { "$ref": "Version", - "description": "The version installed at this location." + "description": "Deprecated. The version installed at this location." } }, "type": "object" @@ -1494,12 +1681,30 @@ "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" }, + "dependencyChain": { + "description": "The dependency chain between this package and the user's artifact. List in order from the customer's package under review first, to the current package last. Inclusive of the original package and the current package.", + "items": { + "$ref": "LanguagePackageDependency" + }, + "type": "array" + }, + "fileLocation": { + "description": "The path to the jar file / go binary file.", + "items": { + "$ref": "FileLocation" + }, + "type": "array" + }, + "hashDigest": { + "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" + }, "os": { - "description": "The OS affected by a vulnerability This field is deprecated and the information is in cpe_uri", + "description": "The OS affected by a vulnerability Used to generate the cpe_uri for OS packages", "type": "string" }, "osVersion": { - "description": "The version of the OS This field is deprecated and the information is in cpe_uri", + "description": "The version of the OS Used to generate the cpe_uri for OS packages", "type": "string" }, "package": { @@ -1513,17 +1718,28 @@ "OS", "MAVEN", "GO", - "GO_STDLIB" + "GO_STDLIB", + "PYPI", + "NPM" ], "enumDescriptions": [ "", "Operating System", "Java packages from Maven.", "Go third-party packages.", - "Go toolchain + standard library packages." + "Go toolchain + standard library packages.", + "Python packages.", + "NPM packages." ], "type": "string" }, + "patchedCve": { + "description": "CVEs that this package is no longer vulnerable to go/drydock-dd-custom-binary-scanning", + "items": { + "type": "string" + }, + "type": "array" + }, "unused": { "type": "string" }, @@ -1571,6 +1787,13 @@ "readOnly": true, "type": "string" }, + "fileLocation": { + "description": "The location at which this package was found.", + "items": { + "$ref": "GrafeasV1FileLocation" + }, + "type": "array" + }, "fixAvailable": { "description": "Output only. Whether a fix is available for this package.", "type": "boolean" @@ -1598,16 +1821,51 @@ "description": "Details on how a particular software package was installed on a system.", "id": "PackageOccurrence", "properties": { + "architecture": { + "description": "Output only. The CPU architecture for which packages in this distribution channel were built. Architecture will be blank for language packages.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "X86", + "X64" + ], + "enumDescriptions": [ + "Unknown architecture.", + "X86 architecture.", + "X64 architecture." + ], + "readOnly": true, + "type": "string" + }, + "cpeUri": { + "description": "Output only. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/) denoting the package manager version distributing a package. The cpe_uri will be blank for language packages.", + "readOnly": true, + "type": "string" + }, + "license": { + "$ref": "License", + "description": "Licenses that have been declared by the authors of the package." + }, "location": { - "description": "Required. All of the places within the filesystem versions of this package have been found.", + "description": "All of the places within the filesystem versions of this package have been found.", "items": { "$ref": "Location" }, "type": "array" }, "name": { - "description": "Output only. The name of the installed package.", + "description": "Required. Output only. The name of the installed package.", + "readOnly": true, "type": "string" + }, + "packageType": { + "description": "Output only. The type of package; whether native or non native (e.g., ruby gems, node.js packages, etc.).", + "readOnly": true, + "type": "string" + }, + "version": { + "$ref": "Version", + "description": "Output only. The version of the package.", + "readOnly": true } }, "type": "object" @@ -1796,6 +2054,38 @@ }, "type": "object" }, + "SlsaProvenanceZeroTwo": { + "description": "See full explanation of fields at slsa.dev/provenance/v0.2.", + "id": "SlsaProvenanceZeroTwo", + "properties": { + "buildConfig": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "buildType": { + "type": "string" + }, + "builder": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaBuilder" + }, + "invocation": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaInvocation" + }, + "materials": { + "items": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMaterial" + }, + "type": "array" + }, + "metadata": { + "$ref": "GrafeasV1SlsaProvenanceZeroTwoSlsaMetadata" + } + }, + "type": "object" + }, "SlsaRecipe": { "description": "Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.", "id": "SlsaRecipe", @@ -2032,6 +2322,20 @@ "format": "float", "type": "number" }, + "cvssVersion": { + "description": "Output only. CVSS version used to populate cvss_score and severity.", + "enum": [ + "CVSS_VERSION_UNSPECIFIED", + "CVSS_VERSION_2", + "CVSS_VERSION_3" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, "cvssv3": { "$ref": "CVSS", "description": "The cvss v3 score for the vulnerability." diff --git a/etc/api/orgpolicy/v2/orgpolicy-api.json b/etc/api/orgpolicy/v2/orgpolicy-api.json index c14eb470e9..29e189b591 100644 --- a/etc/api/orgpolicy/v2/orgpolicy-api.json +++ b/etc/api/orgpolicy/v2/orgpolicy-api.json @@ -303,6 +303,12 @@ "pattern": "^folders/[^/]+/policies/[^/]+$", "required": true, "type": "string" + }, + "updateMask": { + "description": "Field mask used to specify the fields to be overwritten in the policy by the set. The fields specified in the update_mask are relative to the policy, not the full request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v2/{+name}", @@ -362,6 +368,152 @@ } } }, + "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.", + "flatPath": "v2/organizations/{organizationsId}/customConstraints", + "httpMethod": "POST", + "id": "orgpolicy.organizations.customConstraints.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Must be in the following form: * `organizations/{organization_id}`", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/customConstraints", + "request": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "response": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "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", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom constraint to delete. See `CustomConstraint` for naming rules.", + "location": "path", + "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a CustomConstraint. Returns a `google.rpc.Status` with `google.rpc.Code.NOT_FOUND` if the CustomConstraint does not exist.", + "flatPath": "v2/organizations/{organizationsId}/customConstraints/{customConstraintsId}", + "httpMethod": "GET", + "id": "orgpolicy.organizations.customConstraints.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the custom constraint. See `CustomConstraint` for naming requirements.", + "location": "path", + "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Retrieves all of the `CustomConstraints` that exist on a particular organization resource.", + "flatPath": "v2/organizations/{organizationsId}/customConstraints", + "httpMethod": "GET", + "id": "orgpolicy.organizations.customConstraints.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Size of the pages to be returned. This is currently unsupported and will be ignored. The server may at any point start using this field to limit page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token used to retrieve the next page. This is currently unsupported and will be ignored. The server may at any point start using this field.", + "location": "query", + "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}`", + "location": "path", + "pattern": "^organizations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/customConstraints", + "response": { + "$ref": "GoogleCloudOrgpolicyV2ListCustomConstraintsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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.", + "flatPath": "v2/organizations/{organizationsId}/customConstraints/{customConstraintsId}", + "httpMethod": "PATCH", + "id": "orgpolicy.organizations.customConstraints.patch", + "parameterOrder": [ + "name" + ], + "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.", + "location": "path", + "pattern": "^organizations/[^/]+/customConstraints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "response": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "policies": { "methods": { "create": { @@ -518,6 +670,12 @@ "pattern": "^organizations/[^/]+/policies/[^/]+$", "required": true, "type": "string" + }, + "updateMask": { + "description": "Field mask used to specify the fields to be overwritten in the policy by the set. The fields specified in the update_mask are relative to the policy, not the full request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v2/{+name}", @@ -733,6 +891,12 @@ "pattern": "^projects/[^/]+/policies/[^/]+$", "required": true, "type": "string" + }, + "updateMask": { + "description": "Field mask used to specify the fields to be overwritten in the policy by the set. The fields specified in the update_mask are relative to the policy, not the full request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" } }, "path": "v2/{+name}", @@ -751,7 +915,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://orgpolicy.googleapis.com/", "schemas": { "GoogleCloudOrgpolicyV2AlternatePolicySpec": { @@ -831,6 +995,75 @@ }, "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*.", + "id": "GoogleCloudOrgpolicyV2CustomConstraint", + "properties": { + "actionType": { + "description": "Allow or deny type.", + "enum": [ + "ACTION_TYPE_UNSPECIFIED", + "ALLOW", + "DENY" + ], + "enumDescriptions": [ + "Unspecified. Will results in user 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. Will results in user 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 min 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`.", + "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" + }, "GoogleCloudOrgpolicyV2ListConstraintsResponse": { "description": "The response returned from the ListConstraints method.", "id": "GoogleCloudOrgpolicyV2ListConstraintsResponse", @@ -849,6 +1082,24 @@ }, "type": "object" }, + "GoogleCloudOrgpolicyV2ListCustomConstraintsResponse": { + "description": "The response returned from the ListCustomConstraints method. It will be empty if no `CustomConstraints` 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.", + "items": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Page token used to retrieve the next page. This is currently not used, but the server may at any point start supplying a valid token.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudOrgpolicyV2ListPoliciesResponse": { "description": "The response returned from the ListPolicies method. It will be empty if no `Policies` are set on the resource.", "id": "GoogleCloudOrgpolicyV2ListPoliciesResponse", @@ -875,6 +1126,10 @@ "$ref": "GoogleCloudOrgpolicyV2AlternatePolicySpec", "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." + }, "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" @@ -967,7 +1222,7 @@ "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/osconfig/v1/osconfig-api.json b/etc/api/osconfig/v1/osconfig-api.json index 5074a3e23c..448e9a669c 100644 --- a/etc/api/osconfig/v1/osconfig-api.json +++ b/etc/api/osconfig/v1/osconfig-api.json @@ -374,7 +374,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent resource name in the form: projects/{project}/locations/{location}", + "description": "Required. The parent resource name in the form: projects/{project}/locations/{location}. Note: Specify the zone of your VMs as the location.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1000,7 +1000,7 @@ } } }, - "revision": "20220301", + "revision": "20230121", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptSettings": { @@ -1219,7 +1219,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1941,7 +1941,7 @@ "type": "object" }, "OSPolicyAssignment": { - "description": "OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances. An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script. For more information, see [OS policy and OS policy assignment](https://cloud.google.com/compute/docs/os-configuration-management/working-with-os-policies).", + "description": "OS policy assignment is an API resource that is used to apply a set of OS policies to a dynamically targeted group of Compute Engine VM instances. An OS policy is used to define the desired state configuration for a Compute Engine VM instance through a set of configuration resources that provide capabilities such as installing or removing software packages, or executing a script. For more information about the OS policy resource definitions and examples, see [OS policy and OS policy assignment](https://cloud.google.com/compute/docs/os-configuration-management/working-with-os-policies).", "id": "OSPolicyAssignment", "properties": { "baseline": { @@ -2401,7 +2401,7 @@ "type": "string" }, "script": { - "description": "An inline script. The size of the script is limited to 1024 characters.", + "description": "An inline script. The size of the script is limited to 32KiB.", "type": "string" } }, @@ -2470,7 +2470,7 @@ "id": "OSPolicyResourceFileResource", "properties": { "content": { - "description": "A a file with this content. The size of the content is limited to 1024 characters.", + "description": "A a file with this content. The size of the content is limited to 32KiB.", "type": "string" }, "file": { diff --git a/etc/api/osconfig/v1alpha/osconfig-api.json b/etc/api/osconfig/v1alpha/osconfig-api.json index 207d3492dc..5f64f7826d 100644 --- a/etc/api/osconfig/v1alpha/osconfig-api.json +++ b/etc/api/osconfig/v1alpha/osconfig-api.json @@ -684,7 +684,7 @@ } } }, - "revision": "20220301", + "revision": "20230121", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "CVSSv3": { @@ -862,7 +862,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2100,7 +2100,7 @@ "type": "string" }, "script": { - "description": "An inline script. The size of the script is limited to 1024 characters.", + "description": "An inline script. The size of the script is limited to 32KiB.", "type": "string" } }, @@ -2169,7 +2169,7 @@ "id": "OSPolicyResourceFileResource", "properties": { "content": { - "description": "A a file with this content. The size of the content is limited to 1024 characters.", + "description": "A a file with this content. The size of the content is limited to 32KiB.", "type": "string" }, "file": { diff --git a/etc/api/osconfig/v1beta/osconfig-api.json b/etc/api/osconfig/v1beta/osconfig-api.json index a0e460b4aa..0e2929502f 100644 --- a/etc/api/osconfig/v1beta/osconfig-api.json +++ b/etc/api/osconfig/v1beta/osconfig-api.json @@ -689,7 +689,7 @@ } } }, - "revision": "20220301", + "revision": "20230121", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptRepository": { @@ -922,7 +922,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/oslogin/v1/oslogin-api.json b/etc/api/oslogin/v1/oslogin-api.json index 8e910ce66e..dfd0bfa698 100644 --- a/etc/api/oslogin/v1/oslogin-api.json +++ b/etc/api/oslogin/v1/oslogin-api.json @@ -343,11 +343,11 @@ } } }, - "revision": "20220228", + "revision": "20230115", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/oslogin/v1alpha/oslogin-api.json b/etc/api/oslogin/v1alpha/oslogin-api.json index 3e16aa9891..932a7d8335 100644 --- a/etc/api/oslogin/v1alpha/oslogin-api.json +++ b/etc/api/oslogin/v1alpha/oslogin-api.json @@ -403,11 +403,11 @@ } } }, - "revision": "20220228", + "revision": "20230115", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/oslogin/v1beta/oslogin-api.json b/etc/api/oslogin/v1beta/oslogin-api.json index 4b8ff5dec8..c9f8a1d141 100644 --- a/etc/api/oslogin/v1beta/oslogin-api.json +++ b/etc/api/oslogin/v1beta/oslogin-api.json @@ -373,11 +373,11 @@ } } }, - "revision": "20220228", + "revision": "20230115", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/pagespeedonline/v5/pagespeedonline-api.json b/etc/api/pagespeedonline/v5/pagespeedonline-api.json index 27a8eae256..a1fd72b4da 100644 --- a/etc/api/pagespeedonline/v5/pagespeedonline-api.json +++ b/etc/api/pagespeedonline/v5/pagespeedonline-api.json @@ -193,7 +193,7 @@ } } }, - "revision": "20220302", + "revision": "20230123", "rootUrl": "https://pagespeedonline.googleapis.com/", "schemas": { "AuditRefs": { diff --git a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json index ae167b5326..0f40a75444 100644 --- a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json +++ b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json @@ -101,7 +101,7 @@ "products": { "methods": { "list": { - "description": "Used by partners to list products that can be resold to their customers. It should be called directly by the partner using service accounts.", + "description": "To retrieve the products that can be resold by the partner. It should be autenticated with a service account.", "flatPath": "v1/partners/{partnersId}/products", "httpMethod": "GET", "id": "paymentsresellersubscription.partners.products.list", @@ -109,6 +109,11 @@ "parent" ], "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`", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of products to return. The service may return fewer than this value. If unspecified, at most 50 products will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", "format": "int32", @@ -137,8 +142,33 @@ }, "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.", + "flatPath": "v1/partners/{partnersId}/promotions:findEligible", + "httpMethod": "POST", + "id": "paymentsresellersubscription.partners.promotions.findEligible", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent, the partner that can resell. Format: partners/{partner}", + "location": "path", + "pattern": "^partners/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/promotions:findEligible", + "request": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest" + }, + "response": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse" + } + }, "list": { - "description": "Used by partners to list promotions, such as free trial, that can be applied on subscriptions. It should be called directly by the partner using service accounts.", + "description": "To retrieve the promotions, such as free trial, that can be used by the partner. It should be autenticated with a service account.", "flatPath": "v1/partners/{partnersId}/promotions", "httpMethod": "GET", "id": "paymentsresellersubscription.partners.promotions.list", @@ -147,7 +177,7 @@ ], "parameters": { "filter": { - "description": "Optional. Specifies the filters for the promotion results. The syntax defined in the EBNF grammar: https://google.aip.dev/assets/misc/ebnf-filtering.txt. Examples: - applicable_products: \"sku1\" - region_codes: \"US\" - applicable_products: \"sku1\" AND region_codes: \"US\"", + "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`", "location": "query", "type": "string" }, @@ -260,7 +290,7 @@ } }, "extend": { - "description": "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": "[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.", "flatPath": "v1/partners/{partnersId}/subscriptions/{subscriptionsId}:extend", "httpMethod": "POST", "id": "paymentsresellersubscription.partners.subscriptions.extend", @@ -366,14 +396,30 @@ } } }, - "revision": "20220307", + "revision": "20230123", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "schemas": { + "GoogleCloudPaymentsResellerSubscriptionV1Amount": { + "description": "Describes the amount unit including the currency code.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1Amount", + "properties": { + "amountMicros": { + "description": "Required. Amount in micros (1_000_000 micros = 1 currency unit)", + "format": "int64", + "type": "string" + }, + "currencyCode": { + "description": "Required. Currency codes in accordance with [ISO-4217 Currency Codes] (https://en.wikipedia.org/wiki/ISO_4217). For example, USD.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": { "id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest", "properties": { "cancelImmediately": { - "description": "Optional. If true, the subscription will be cancelled immediately. Otherwise, the subscription will be cancelled at renewal_time, and therefore no prorated refund will be issued for the rest of the cycle.", + "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.", "type": "boolean" }, "cancellationReason": { @@ -509,6 +555,97 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest": { + "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`", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of promotions to return. The service may return fewer than this value. If unspecified, at most 50 products will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListPromotions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPromotions` must match the call that provided the page token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse": { + "description": "Response containing the found promotions for the current user.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsResponse", + "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" + }, + "promotions": { + "description": "The promotions for the current user.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Promotion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload": { + "description": "Payload specific to Google One products.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", + "properties": { + "campaigns": { + "description": "Campaign attributed to sales of this subscription.", + "items": { + "type": "string" + }, + "type": "array" + }, + "offering": { + "description": "The type of offering the subscription was sold by the partner. e.g. VAS.", + "enum": [ + "OFFERING_UNSPECIFIED", + "OFFERING_VAS_BUNDLE", + "OFFERING_VAS_STANDALONE", + "OFFERING_HARD_BUNDLE", + "OFFERING_SOFT_BUNDLE" + ], + "enumDescriptions": [ + "The type of partner offering is unspecified.", + "Google One product purchased as a Value added service in addition to existing partner's products. Customer pays additional amount for Google One product.", + "Google One product purchased by itself by customer as a value add service. Customer pays additional amount for Google One product.", + "Product purchased as part of a hard bundle where Google One was included with the bundle. Google One pricing is included in the bundle.", + "Purchased as part of a bundle where Google One was provided as an option. Google One pricing is included in the bundle." + ], + "type": "string" + }, + "salesChannel": { + "description": "The type of sales channel through which the subscription was sold.", + "enum": [ + "CHANNEL_UNSPECIFIED", + "CHANNEL_RETAIL", + "CHANNEL_ONLINE_WEB", + "CHANNEL_ONLINE_ANDROID_APP", + "CHANNEL_ONLINE_IOS_APP" + ], + "enumDescriptions": [ + "The channel type is unspecified.", + "Sold at store.", + "Sold through partner website.", + "Sold through partner android app.", + "Sold through partner iOS app." + ], + "type": "string" + }, + "storeId": { + "description": "The identifier for the partner store where the subscription was sold.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse": { "id": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse", "properties": { @@ -563,10 +700,18 @@ "id": "GoogleCloudPaymentsResellerSubscriptionV1Product", "properties": { "name": { - "description": "Output only. Response only. Resource name of the subscription. It will have the format of \"partners/{partner_id}/products/{product_id}\"", + "description": "Output only. Response only. Resource name of the product. It will have the format of \"partners/{partner_id}/products/{product_id}\"", "readOnly": true, "type": "string" }, + "priceConfigs": { + "description": "Output only. Price configs for the product in the available regions.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig" + }, + "readOnly": true, + "type": "array" + }, "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": { @@ -591,6 +736,38 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload": { + "description": "Specifies product specific payload.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload", + "properties": { + "googleOnePayload": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1GoogleOnePayload", + "description": "Payload specific to Google One products." + }, + "youtubePayload": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", + "description": "Payload specific to Youtube products." + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig": { + "description": "Configs the prices in an available region.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1ProductPriceConfig", + "properties": { + "amount": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", + "description": "Output only. The price in the region.", + "readOnly": true + }, + "regionCode": { + "description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\".", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1Promotion": { "description": "A Promotion resource that defines a promotion for a subscription that can be resold.", "id": "GoogleCloudPaymentsResellerSubscriptionV1Promotion", @@ -678,11 +855,44 @@ "description": "The duration of an introductory pricing promotion.", "id": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetailsIntroductoryPricingSpec", "properties": { + "discountAmount": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Amount", + "description": "Output only. The discount amount. The value is positive.", + "readOnly": true + }, + "discountRatioMicros": { + "description": "Output only. The discount percentage in micros. For example, 50,000 represents 5%.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "recurrenceCount": { "description": "Output only. Output Only. The duration of an introductory offer in billing cycles.", "format": "int32", "readOnly": true, "type": "integer" + }, + "regionCode": { + "description": "Output only. 2-letter ISO region code where the product is available in. Ex. \"US\".", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod": { + "description": "A description of what time period or moment in time the product or service is being delivered over.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod", + "properties": { + "endTime": { + "description": "Optional. The end time of the service period. Time is exclusive.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Required. The start time of the service period. Time is inclusive.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -719,9 +929,15 @@ "readOnly": true, "type": "string" }, + "lineItems": { + "description": "Required. The line items of the subscription.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem" + }, + "type": "array" + }, "name": { - "description": "Output only. Response only. Resource name of the subscription. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\"", - "readOnly": true, + "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.", "type": "string" }, "partnerUserToken": { @@ -744,14 +960,21 @@ "type": "string" }, "products": { - "description": "Required. Resource name that identifies one or more subscription products. The format will be 'partners/{partner_id}/products/{product_id}'.", + "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}'.", "items": { "type": "string" }, "type": "array" }, + "promotionSpecs": { + "description": "Optional. Subscription-level promotions. Only free trial is supported on this level. It determines the first renewal time of the subscription to be the end of the free trial period. Specify the promotion resource name only when used as input.", + "items": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec" + }, + "type": "array" + }, "promotions": { - "description": "Optional. Resource name that identifies one or more promotions that can be applied on the product. A typical promotion for a subscription is Free trial. The format will be 'partners/{partner_id}/promotions/{promotion_id}'.", + "description": "Optional. Deprecated: consider using the top-level `promotion_specs` as the input. Optional. Resource name that identifies one or more promotions that can be applied on the product. A typical promotion for a subscription is Free trial. The format will be 'partners/{partner_id}/promotions/{promotion_id}'.", "items": { "type": "string" }, @@ -780,7 +1003,8 @@ "STATE_ACTIVE", "STATE_CANCELLED", "STATE_IN_GRACE_PERIOD", - "STATE_CANCEL_AT_END_OF_CYCLE" + "STATE_CANCEL_AT_END_OF_CYCLE", + "STATE_SUSPENDED" ], "enumDescriptions": [ "The state is unspecified.", @@ -788,7 +1012,8 @@ "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 waiting to be cancelled by the next recurrence cycle." + "The subscription is waiting to be cancelled by the next recurrence cycle.", + "The subscription is suspended." ], "readOnly": true, "type": "string" @@ -839,6 +1064,129 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem": { + "description": "Individual line item definition of a subscription.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItem", + "properties": { + "description": { + "description": "Output only. Description of this line item.", + "readOnly": true, + "type": "string" + }, + "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.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "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": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec" + }, + "type": "array" + }, + "oneTimeRecurrenceDetails": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemOneTimeRecurrenceDetails", + "description": "Output only. Details only set for a ONE_TIME recurrence line item.", + "readOnly": true + }, + "product": { + "description": "Required. Product resource name that identifies one the line item The format is 'partners/{partner_id}/products/{product_id}'.", + "type": "string" + }, + "productPayload": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ProductPayload", + "description": "Optional. Product specific payload for this line item." + }, + "recurrenceType": { + "description": "Output only. The recurrence type of the line item.", + "enum": [ + "LINE_ITEM_RECURRENCE_TYPE_UNSPECIFIED", + "LINE_ITEM_RECURRENCE_TYPE_PERIODIC", + "LINE_ITEM_RECURRENCE_TYPE_ONE_TIME" + ], + "enumDescriptions": [ + "The line item recurrence type is unspecified.", + "The line item recurs periodically.", + "The line item does not recur in the future." + ], + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the line item.", + "enum": [ + "LINE_ITEM_STATE_UNSPECIFIED", + "LINE_ITEM_STATE_ACTIVE", + "LINE_ITEM_STATE_INACTIVE", + "LINE_ITEM_STATE_NEW", + "LINE_ITEM_STATE_ACTIVATING", + "LINE_ITEM_STATE_DEACTIVATING", + "LINE_ITEM_STATE_WAITING_TO_DEACTIVATE" + ], + "enumDescriptions": [ + "Unspecified state.", + "The line item is in ACTIVE state.", + "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." + ], + "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." + } + }, + "type": "object" + }, + "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec": { + "description": "Describes the spec for one promotion.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec", + "properties": { + "freeTrialDuration": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", + "description": "Output only. The duration of the free trial if the promotion is of type FREE_TRIAL.", + "readOnly": true + }, + "introductoryPricingDetails": { + "$ref": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails", + "description": "Output only. The details of the introductory pricing spec if the promotion is of type INTRODUCTORY_PRICING.", + "readOnly": true + }, + "promotion": { + "description": "Required. Promotion resource name that identifies a promotion. The format is 'partners/{partner_id}/promotions/{promotion_id}'.", + "type": "string" + }, + "type": { + "description": "Output only. The type of the promotion for the spec.", + "enum": [ + "PROMOTION_TYPE_UNSPECIFIED", + "PROMOTION_TYPE_FREE_TRIAL", + "PROMOTION_TYPE_INTRODUCTORY_PRICING" + ], + "enumDescriptions": [ + "The promotion type is unspecified.", + "The promotion is a free trial.", + "The promotion is a reduced introductory pricing." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionUpgradeDowngradeDetails": { "description": "Details about the previous subscription that this new subscription upgrades/downgrades from.", "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionUpgradeDowngradeDetails", @@ -881,6 +1229,20 @@ }, "type": "object" }, + "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload": { + "description": "Payload specific to Youtube products.", + "id": "GoogleCloudPaymentsResellerSubscriptionV1YoutubePayload", + "properties": { + "partnerEligibilityIds": { + "description": "The list of eligibility_ids which are applicable for the line item.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleTypeLocalizedText": { "description": "Localized variant of a text in a particular language.", "id": "GoogleTypeLocalizedText", diff --git a/etc/api/people/v1/people-api.json b/etc/api/people/v1/people-api.json index 7e85135444..e588c9e031 100644 --- a/etc/api/people/v1/people-api.json +++ b/etc/api/people/v1/people-api.json @@ -395,7 +395,7 @@ ] }, "list": { - "description": "List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).", + "description": "List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).", "flatPath": "v1/otherContacts", "httpMethod": "GET", "id": "people.otherContacts.list", @@ -424,7 +424,7 @@ "type": "boolean" }, "sources": { - "description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set.", + "description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. Possible values for this field are: * READ_SOURCE_TYPE_CONTACT * READ_SOURCE_TYPE_CONTACT,READ_SOURCE_TYPE_PROFILE Specifying READ_SOURCE_TYPE_PROFILE without specifying READ_SOURCE_TYPE_CONTACT is not permitted.", "enum": [ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", @@ -999,7 +999,7 @@ "type": "string" }, "resourceName": { - "description": "The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters, in the form of `people/{person_id}`.", + "description": "The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`.", "location": "path", "pattern": "^people/[^/]+$", "required": true, @@ -1074,7 +1074,7 @@ "connections": { "methods": { "list": { - "description": "Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will result in a 410 error. In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).", + "description": "Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).", "flatPath": "v1/people/{peopleId}/connections", "httpMethod": "GET", "id": "people.people.connections.list", @@ -1172,7 +1172,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://people.googleapis.com/", "schemas": { "Address": { @@ -1774,7 +1774,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2677,7 +2677,7 @@ "type": "array" }, "resourceName": { - "description": "The resource name for the person, assigned by the server. An ASCII string with a max length of 27 characters, in the form of `people/{person_id}`.", + "description": "The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`.", "type": "string" }, "sipAddresses": { diff --git a/etc/api/photoslibrary/v1/photoslibrary-api.json b/etc/api/photoslibrary/v1/photoslibrary-api.json index 0240e505d3..b620e4770f 100644 --- a/etc/api/photoslibrary/v1/photoslibrary-api.json +++ b/etc/api/photoslibrary/v1/photoslibrary-api.json @@ -641,7 +641,7 @@ } } }, - "revision": "20220303", + "revision": "20230117", "rootUrl": "https://photoslibrary.googleapis.com/", "schemas": { "AddEnrichmentToAlbumRequest": { @@ -776,7 +776,7 @@ "description": "Position in the album where the media items are added. If not specified, the media items are added to the end of the album (as per the default value, that is, `LAST_IN_ALBUM`). The request fails if this field is set and the `albumId` is not specified. The request will also fail if you set the field and are not the owner of the shared album." }, "newMediaItems": { - "description": "Required. List of media items to be created.", + "description": "Required. List of media items to be created. Maximum 50 media items per call.", "items": { "$ref": "NewMediaItem" }, @@ -1282,7 +1282,7 @@ "description": "Information about the user who added this media item. Note that this is only included when using mediaItems.search with the ID of a shared album. The album must be created by your app and you must have the sharing scope." }, "description": { - "description": "Description of the media item. This is shown to the user in the item's info section in the Google Photos app.", + "description": "Description of the media item. This is shown to the user in the item's info section in the Google Photos app. Must be shorter than 1000 characters. Only include text written by users. Descriptions should add context and help users understand media. Do not include any auto-generated strings such as filenames, tags, and other metadata.", "type": "string" }, "filename": { @@ -1401,7 +1401,7 @@ "id": "NewMediaItem", "properties": { "description": { - "description": "Description of the media item. This will be shown to the user in the item's info section in the Google Photos app. This string shouldn't be more than 1000 characters.", + "description": "Description of the media item. This is shown to the user in the item's info section in the Google Photos app. Must be shorter than 1000 characters. Only include text written by users. Descriptions should add context and help users understand media. Do not include any auto-generated strings such as filenames, tags, and other metadata.", "type": "string" }, "simpleMediaItem": { @@ -1424,7 +1424,7 @@ "description": "If an error occurred during the creation of this media item, this field is populated with information related to the error. For details regarding this field, see Status." }, "uploadToken": { - "description": "The upload token used to create this new media item.", + "description": "The upload token used to create this new (simple) media item. Only populated if the media item is simple and required a single upload token.", "type": "string" } }, diff --git a/etc/api/playcustomapp/v1/playcustomapp-api.json b/etc/api/playcustomapp/v1/playcustomapp-api.json index a1d2fcb58f..59b335b188 100644 --- a/etc/api/playcustomapp/v1/playcustomapp-api.json +++ b/etc/api/playcustomapp/v1/playcustomapp-api.json @@ -158,7 +158,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "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 078c9a8118..e64a29a53d 100644 --- a/etc/api/playintegrity/v1/playintegrity-api.json +++ b/etc/api/playintegrity/v1/playintegrity-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://playintegrity.googleapis.com/", "batchPath": "batch", "canonicalName": "Play Integrity", - "description": "Play Integrity", + "description": "The Play Integrity API helps you check that you're interacting with your genuine app on a genuine Android device powered by Google Play services. The Play Integrity API has replaced SafetyNet Attestation and Android Device Verification.", "discoveryVersion": "v1", "documentationLink": "https://developer.android.com/google/play/integrity", "fullyEncodeReservedExpansion": true, @@ -138,13 +138,44 @@ } } }, - "revision": "20220305", + "revision": "20230123", "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.", + "id": "AccountActivity", + "properties": { + "activityLevel": { + "description": "Required. Indicates the activity level of the account.", + "enum": [ + "ACTIVITY_LEVEL_UNSPECIFIED", + "UNEVALUATED", + "UNUSUAL", + "UNKNOWN", + "TYPICAL_BASIC", + "TYPICAL_STRONG" + ], + "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." + ], + "type": "string" + } + }, + "type": "object" + }, "AccountDetails": { "description": "Contains the account information such as the licensing status for the user in the scope.", "id": "AccountDetails", "properties": { + "accountActivity": { + "$ref": "AccountActivity", + "description": "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.", "enum": [ @@ -185,7 +216,7 @@ "type": "string" }, "certificateSha256Digest": { - "description": "Hex fingerprint of the application signing certificate. e.g. \u201cABCE1F....\u201d Set iff app_recognition_verdict != UNEVALUATED.", + "description": "The SHA256 hash of the requesting app's signing certificates (base64 web-safe encoded). Set iff app_recognition_verdict != UNEVALUATED.", "items": { "type": "string" }, @@ -258,7 +289,11 @@ "id": "RequestDetails", "properties": { "nonce": { - "description": "Required. Nonce that was provided in the request (which is base64 web-safe no-wrap).", + "description": "Nonce that was provided in the request (which is base64 web-safe no-wrap).", + "type": "string" + }, + "requestHash": { + "description": "Request hash that was provided in the request.", "type": "string" }, "requestPackageName": { diff --git a/etc/api/policyanalyzer/v1/policyanalyzer-api.json b/etc/api/policyanalyzer/v1/policyanalyzer-api.json index 2c669da3d1..f8594f792f 100644 --- a/etc/api/policyanalyzer/v1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20220227", + "revision": "20230122", "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 0769720fe7..9b2320910e 100644 --- a/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20220227", + "revision": "20230122", "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 0854676c04..b61760b540 100644 --- a/etc/api/policysimulator/v1/policysimulator-api.json +++ b/etc/api/policysimulator/v1/policysimulator-api.json @@ -166,6 +166,76 @@ } }, "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}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.folders.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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`. 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.", + "flatPath": "v1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.folders.locations.replays.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": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -226,7 +296,7 @@ "name": { "description": "The name of the operation resource.", "location": "path", - "pattern": "^operations/[^/]+$", + "pattern": "^operations/.*$", "required": true, "type": "string" } @@ -244,7 +314,9 @@ "flatPath": "v1/operations", "httpMethod": "GET", "id": "policysimulator.operations.list", - "parameterOrder": [], + "parameterOrder": [ + "name" + ], "parameters": { "filter": { "description": "The standard list filter.", @@ -253,7 +325,9 @@ }, "name": { "description": "The name of the operation's parent resource.", - "location": "query", + "location": "path", + "pattern": "^operations$", + "required": true, "type": "string" }, "pageSize": { @@ -268,7 +342,7 @@ "type": "string" } }, - "path": "v1/operations", + "path": "v1/{+name}", "response": { "$ref": "GoogleLongrunningListOperationsResponse" }, @@ -339,6 +413,76 @@ } }, "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}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+/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`. 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.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.replays.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/[^/]+/replays/[^/]+/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": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -446,6 +590,76 @@ } }, "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}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.projects.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/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`. 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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.projects.locations.replays.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/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": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -493,7 +707,7 @@ } } }, - "revision": "20220227", + "revision": "20230115", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { "GoogleCloudPolicysimulatorV1AccessStateDiff": { @@ -1055,7 +1269,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -1111,7 +1325,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1236,7 +1450,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/policysimulator/v1beta1/policysimulator-api.json b/etc/api/policysimulator/v1beta1/policysimulator-api.json index 250ce15796..893d60c602 100644 --- a/etc/api/policysimulator/v1beta1/policysimulator-api.json +++ b/etc/api/policysimulator/v1beta1/policysimulator-api.json @@ -166,6 +166,76 @@ } }, "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": "v1beta1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.folders.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+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`. 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.", + "flatPath": "v1beta1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.folders.locations.replays.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": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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": "v1beta1/{+name}", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -226,7 +296,7 @@ "name": { "description": "The name of the operation resource.", "location": "path", - "pattern": "^operations/[^/]+$", + "pattern": "^operations/.*$", "required": true, "type": "string" } @@ -244,7 +314,9 @@ "flatPath": "v1beta1/operations", "httpMethod": "GET", "id": "policysimulator.operations.list", - "parameterOrder": [], + "parameterOrder": [ + "name" + ], "parameters": { "filter": { "description": "The standard list filter.", @@ -253,7 +325,9 @@ }, "name": { "description": "The name of the operation's parent resource.", - "location": "query", + "location": "path", + "pattern": "^operations$", + "required": true, "type": "string" }, "pageSize": { @@ -268,7 +342,7 @@ "type": "string" } }, - "path": "v1beta1/operations", + "path": "v1beta1/{+name}", "response": { "$ref": "GoogleLongrunningListOperationsResponse" }, @@ -339,6 +413,76 @@ } }, "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": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+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`. 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.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.replays.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/[^/]+/replays/[^/]+/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": "v1beta1/{+name}", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -446,6 +590,76 @@ } }, "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "policysimulator.projects.locations.replays.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+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`. 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.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/operations", + "httpMethod": "GET", + "id": "policysimulator.projects.locations.replays.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/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": "v1beta1/{+name}", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "results": { "methods": { "list": { @@ -493,7 +707,7 @@ } } }, - "revision": "20220227", + "revision": "20230115", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { "GoogleCloudPolicysimulatorV1Replay": { @@ -1055,7 +1269,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -1111,7 +1325,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1236,7 +1450,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json index 7ea9280e38..290d77a57f 100644 --- a/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220227", + "revision": "20230121", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1AccessTuple": { @@ -360,6 +360,13 @@ ], "type": "string" }, + "errors": { + "description": "The general errors contained in the troubleshooting response.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, "explainedPolicies": { "description": "List of IAM policies that were evaluated to check the principal's permissions, with annotations to indicate how each policy contributed to the final result. The list of policies can include the policy for the resource itself. It can also include policies that are inherited from higher levels of the resource hierarchy, including the organization, the folder, and the project. To learn more about the resource hierarchy, see https://cloud.google.com/iam/help/resource-hierarchy.", "items": { @@ -371,7 +378,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -427,7 +434,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -471,6 +478,33 @@ }, "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" + }, "GoogleTypeExpr": { "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "id": "GoogleTypeExpr", diff --git a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json index f1e64f81af..25ec88f299 100644 --- a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220227", + "revision": "20230121", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1betaAccessTuple": { @@ -371,7 +371,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -427,7 +427,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, diff --git a/etc/api/privateca/v1/privateca-api.json b/etc/api/privateca/v1/privateca-api.json index 27ff23d7fd..ba6e298c08 100644 --- a/etc/api/privateca/v1/privateca-api.json +++ b/etc/api/privateca/v1/privateca-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -316,7 +316,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+$", "required": true, @@ -426,7 +426,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+$", "required": true, @@ -454,7 +454,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+$", "required": true, @@ -567,6 +567,11 @@ "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" + }, + "skipGracePeriod": { + "description": "Optional. If this flag is set, the Certificate Authority will be deleted as soon as possible without a 30-day grace period where undeletion would have been allowed. If you proceed, there will be no way to recover this CA.", + "location": "query", + "type": "boolean" } }, "path": "v1/{+name}", @@ -841,7 +846,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -951,7 +956,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -979,7 +984,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/caPools/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -1304,7 +1309,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateTemplates/[^/]+$", "required": true, @@ -1414,7 +1419,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateTemplates/[^/]+$", "required": true, @@ -1442,7 +1447,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateTemplates/[^/]+$", "required": true, @@ -1590,7 +1595,7 @@ } } }, - "revision": "20220209", + "revision": "20230105", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { @@ -1646,7 +1651,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1702,7 +1707,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2304,7 +2309,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2942,14 +2947,15 @@ "type": "boolean" }, "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", "enum": [ "UNKNOWN_REPAIR_ACTION", "DELETE", "RETRY" ], "enumDescriptions": [ - "", - "The resource has to be deleted. When using this bit, the CLH should fail the operation.", + "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", "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" @@ -3096,7 +3102,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3297,7 +3303,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/privateca/v1beta1/privateca-api.json b/etc/api/privateca/v1beta1/privateca-api.json index 71af64b3e1..64c78ef934 100644 --- a/etc/api/privateca/v1beta1/privateca-api.json +++ b/etc/api/privateca/v1beta1/privateca-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -367,7 +367,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+$", "required": true, @@ -533,7 +533,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+$", "required": true, @@ -561,7 +561,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+$", "required": true, @@ -624,7 +624,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -734,7 +734,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -762,7 +762,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", "required": true, @@ -1130,7 +1130,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/reusableConfigs/[^/]+$", "required": true, @@ -1201,7 +1201,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/reusableConfigs/[^/]+$", "required": true, @@ -1229,7 +1229,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/reusableConfigs/[^/]+$", "required": true, @@ -1254,7 +1254,7 @@ } } }, - "revision": "20220209", + "revision": "20230105", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { @@ -1348,7 +1348,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1404,7 +1404,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1839,7 +1839,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2394,14 +2394,15 @@ "type": "boolean" }, "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", "enum": [ "UNKNOWN_REPAIR_ACTION", "DELETE", "RETRY" ], "enumDescriptions": [ - "", - "The resource has to be deleted. When using this bit, the CLH should fail the operation.", + "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", "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" @@ -2647,7 +2648,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2852,7 +2853,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, 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 2da74b5129..0b28d3b0c2 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,8 +2,8 @@ "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/userinfo.email": { - "description": "See your primary Google Account email address" + "https://www.googleapis.com/auth/sasportal": { + "description": "Read, create, update, and delete your SAS Portal data." } } } @@ -129,7 +129,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -156,7 +156,7 @@ "$ref": "SasPortalListCustomersResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -190,7 +190,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -222,7 +222,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -247,7 +247,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -272,7 +272,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -313,7 +313,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -341,7 +341,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -375,7 +375,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -407,7 +407,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -435,7 +435,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -476,7 +476,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -510,7 +510,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -538,7 +538,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -563,7 +563,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -588,7 +588,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -629,7 +629,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -657,7 +657,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -691,7 +691,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -719,7 +719,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -747,7 +747,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -779,7 +779,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -804,7 +804,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -829,7 +829,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -870,7 +870,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -898,7 +898,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -932,7 +932,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -964,7 +964,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1005,7 +1005,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1037,7 +1037,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1065,7 +1065,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1106,7 +1106,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1138,7 +1138,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1179,7 +1179,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1212,7 +1212,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1241,7 +1241,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1266,7 +1266,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1294,7 +1294,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1328,7 +1328,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -1356,7 +1356,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -1384,7 +1384,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1408,7 +1408,7 @@ "$ref": "SasPortalGenerateSecretResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "validate": { @@ -1426,7 +1426,7 @@ "$ref": "SasPortalValidateInstallerResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1455,7 +1455,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1484,7 +1484,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1509,7 +1509,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1550,7 +1550,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1578,7 +1578,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1612,7 +1612,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1644,7 +1644,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1672,7 +1672,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1713,7 +1713,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1747,7 +1747,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1775,7 +1775,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -1800,7 +1800,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1825,7 +1825,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1866,7 +1866,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1894,7 +1894,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1928,7 +1928,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -1956,7 +1956,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -1984,7 +1984,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2016,7 +2016,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -2041,7 +2041,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -2066,7 +2066,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2107,7 +2107,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -2135,7 +2135,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -2169,7 +2169,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -2201,7 +2201,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2242,7 +2242,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2274,7 +2274,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -2302,7 +2302,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2343,7 +2343,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2375,7 +2375,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2416,7 +2416,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2442,7 +2442,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "set": { @@ -2460,7 +2460,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "test": { @@ -2478,13 +2478,13 @@ "$ref": "SasPortalTestPermissionsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } } }, - "revision": "20220303", + "revision": "20230121", "rootUrl": "https://prod-tt-sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { @@ -2514,7 +2514,7 @@ "description": "The frequency range of the channel." }, "score": { - "description": "The channel score, normalized to be in [0,100].", + "description": "The channel score, normalized to be in the range [0,100].", "format": "double", "type": "number" } @@ -2568,7 +2568,7 @@ "type": "string" }, "frns": { - "description": "Output only. The FRNs copied from its direct parent.", + "description": "Output only. The FCC Registration Numbers (FRNs) copied from its direct parent.", "items": { "type": "string" }, @@ -2618,7 +2618,7 @@ "type": "string" }, "grantRangeAllowlists": { - "description": "Only ranges within the allowlists are available for new grants.", + "description": "Only ranges that are within the allowlists are available for new grants.", "items": { "$ref": "SasPortalFrequencyRange" }, @@ -2811,6 +2811,11 @@ "description": "Grant Id.", "type": "string" }, + "lastHeartbeatTransmitExpireTime": { + "description": "The transmit expiration time of the last heartbeat.", + "format": "google-datetime", + "type": "string" + }, "maxEirp": { "description": "Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the grant. The maximum EIRP is in units of dBm/MHz. The value of `maxEirp` represents the average (RMS) EIRP that would be measured by the procedure defined in FCC part 96.41(e)(3).", "format": "double", @@ -2858,19 +2863,19 @@ "id": "SasPortalDeviceMetadata", "properties": { "antennaModel": { - "description": "If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId", + "description": "If populated, the Antenna Model Pattern to use. Format is: `RecordCreatorId:PatternId`", "type": "string" }, "commonChannelGroup": { - "description": "CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.", + "description": "Common Channel Group (CCG). A group of CBSDs in the same ICG requesting a common primary channel assignment. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", "type": "string" }, "interferenceCoordinationGroup": { - "description": "ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.", + "description": "Interference Coordination Group (ICG). A group of CBSDs that manage their own interference with the group. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", "type": "string" }, "nrqzValidated": { - "description": "Output only. Whether a CPI has validated to have coordinated with the National Quiet Zone office.", + "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" }, @@ -2925,7 +2930,7 @@ "type": "object" }, "SasPortalEmpty": { - "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": "SasPortalEmpty", "properties": {}, "type": "object" @@ -2999,6 +3004,11 @@ "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" @@ -3012,6 +3022,11 @@ "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", @@ -3186,11 +3201,11 @@ "type": "object" }, "SasPortalNrqzValidation": { - "description": "Information about National Radio Quiet Zone validation. The presence of the field indicates the device has been validated.", + "description": "Information about National Radio Quiet Zone validation.", "id": "SasPortalNrqzValidation", "properties": { "caseId": { - "description": "Validation case id.", + "description": "Validation case ID.", "type": "string" }, "cpiId": { @@ -3198,14 +3213,28 @@ "type": "string" }, "latitude": { - "description": "Device latitude associated with the validation.", + "description": "Device latitude that's associated with the validation.", "format": "double", "type": "number" }, "longitude": { - "description": "Device longitude associated with the validation.", + "description": "Device longitude that's associated with the validation.", "format": "double", "type": "number" + }, + "state": { + "description": "State of the NRQZ validation info.", + "enum": [ + "STATE_UNSPECIFIED", + "DRAFT", + "FINAL" + ], + "enumDescriptions": [ + "Unspecified state.", + "Draft state.", + "Final state." + ], + "type": "string" } }, "type": "object" @@ -3269,7 +3298,7 @@ "id": "SasPortalSetPolicyRequest", "properties": { "disableNotification": { - "description": "Optional. Set the field as true when we would like to disable the onboarding notification.", + "description": "Optional. Set the field as `true` to disable the onboarding notification.", "type": "boolean" }, "policy": { diff --git a/etc/api/pubsub/v1/pubsub-api.json b/etc/api/pubsub/v1/pubsub-api.json index 61b893af73..11298ed871 100644 --- a/etc/api/pubsub/v1/pubsub-api.json +++ b/etc/api/pubsub/v1/pubsub-api.json @@ -111,6 +111,35 @@ "resources": { "schemas": { "methods": { + "commit": { + "description": "Commits a new schema revision to an existing schema.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:commit", + "httpMethod": "POST", + "id": "pubsub.projects.schemas.commit", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema we are revising. Format is `projects/{project}/schemas/{schema}`.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:commit", + "request": { + "$ref": "CommitSchemaRequest" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "create": { "description": "Creates a schema.", "flatPath": "v1/projects/{projectsId}/schemas", @@ -171,6 +200,37 @@ "https://www.googleapis.com/auth/pubsub" ] }, + "deleteRevision": { + "description": "Deletes a specific schema revision.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:deleteRevision", + "httpMethod": "DELETE", + "id": "pubsub.projects.schemas.deleteRevision", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema revision to be deleted, with a revision ID explicitly included. Example: projects/123/schemas/my-schema@c7cfa2a8", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + }, + "revisionId": { + "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:deleteRevision", + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "get": { "description": "Gets a schema.", "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}", @@ -228,7 +288,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/schemas/[^/]+$", "required": true, @@ -296,6 +356,87 @@ "https://www.googleapis.com/auth/pubsub" ] }, + "listRevisions": { + "description": "Lists all schema revisions for the named schema.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:listRevisions", + "httpMethod": "GET", + "id": "pubsub.projects.schemas.listRevisions", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the schema to list revisions for.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of revisions to return per page.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token, received from a previous ListSchemaRevisions call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "view": { + "description": "The set of Schema fields to return in the response. If not set, returns Schemas with `name` and `type`, but not `definition`. Set to `FULL` to retrieve all fields.", + "enum": [ + "SCHEMA_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "The default / unset value. The API will default to the BASIC view.", + "Include the name and type of the schema, but not the definition.", + "Include all Schema object fields." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:listRevisions", + "response": { + "$ref": "ListSchemaRevisionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, + "rollback": { + "description": "Creates a new schema revision that is a copy of the provided revision_id.", + "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:rollback", + "httpMethod": "POST", + "id": "pubsub.projects.schemas.rollback", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The schema being rolled back with revision id.", + "location": "path", + "pattern": "^projects/[^/]+/schemas/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rollback", + "request": { + "$ref": "RollbackSchemaRequest" + }, + "response": { + "$ref": "Schema" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", "flatPath": "v1/projects/{projectsId}/schemas/{schemasId}:setIamPolicy", @@ -306,7 +447,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/schemas/[^/]+$", "required": true, @@ -335,7 +476,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/schemas/[^/]+$", "required": true, @@ -426,7 +567,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. 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/admin#resource_names). Format is `projects/{project}/snapshots/{snap}`.", "location": "path", "pattern": "^projects/[^/]+/snapshots/[^/]+$", "required": true, @@ -472,7 +613,7 @@ ] }, "get": { - "description": "Gets the configuration details of a snapshot. Snapshots are used in Seek 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": "Gets the configuration details of a 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.", "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}", "httpMethod": "GET", "id": "pubsub.projects.snapshots.get", @@ -513,7 +654,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/snapshots/[^/]+$", "required": true, @@ -567,7 +708,7 @@ ] }, "patch": { - "description": "Updates an existing snapshot. Snapshots are used in Seek 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. 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", @@ -605,7 +746,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/snapshots/[^/]+$", "required": true, @@ -634,7 +775,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/snapshots/[^/]+$", "required": true, @@ -809,7 +950,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -950,7 +1091,7 @@ ] }, "pull": { - "description": "Pulls messages from the server. The server may return `UNAVAILABLE` if there are too many concurrent pull requests pending for the given subscription.", + "description": "Pulls messages from the server.", "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", "httpMethod": "POST", "id": "pubsub.projects.subscriptions.pull", @@ -1017,7 +1158,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -1046,7 +1187,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -1166,7 +1307,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -1287,7 +1428,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -1316,7 +1457,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -1424,7 +1565,7 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -1441,6 +1582,48 @@ }, "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.", + "type": "boolean" + }, + "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", + "SCHEMA_MISMATCH" + ], + "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." + ], + "readOnly": true, + "type": "string" + }, + "table": { + "description": "The name of the table to which to write data, of the form {projectId}.{datasetId}.{tableId}", + "type": "string" + }, + "useTopicSchema": { + "description": "When true, use the topic's schema as the columns to write to in BigQuery, if it exists.", + "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.", + "type": "boolean" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -1450,7 +1633,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1463,6 +1646,17 @@ }, "type": "object" }, + "CommitSchemaRequest": { + "description": "Request for CommitSchema method.", + "id": "CommitSchemaRequest", + "properties": { + "schema": { + "$ref": "Schema", + "description": "Required. The schema revision to commit." + } + }, + "type": "object" + }, "CreateSnapshotRequest": { "description": "Request for the `CreateSnapshot` method.", "id": "CreateSnapshotRequest", @@ -1471,7 +1665,7 @@ "additionalProperties": { "type": "string" }, - "description": "See Creating and managing labels.", + "description": "See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "subscription": { @@ -1504,7 +1698,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1544,6 +1738,24 @@ }, "type": "object" }, + "ListSchemaRevisionsResponse": { + "description": "Response for the `ListSchemaRevisions` method.", + "id": "ListSchemaRevisionsResponse", + "properties": { + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is empty, there are no subsequent pages.", + "type": "string" + }, + "schemas": { + "description": "The revisions of the schema.", + "items": { + "$ref": "Schema" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSchemasResponse": { "description": "Response for the `ListSchemas` method.", "id": "ListSchemasResponse", @@ -1697,7 +1909,7 @@ "type": "object" }, "OidcToken": { - "description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect).", + "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).", "id": "OidcToken", "properties": { "audience": { @@ -1705,7 +1917,6 @@ "type": "string" }, "serviceAccountEmail": { - "description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating the OIDC token. The caller (for CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must have the iam.serviceAccounts.actAs permission for the service account.", "type": "string" } }, @@ -1784,7 +1995,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.", + "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).", "type": "string" }, "publishTime": { @@ -1816,7 +2027,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. 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": "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" }, @@ -1833,7 +2044,7 @@ "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": "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" }, "oidcToken": { @@ -1884,6 +2095,17 @@ }, "type": "object" }, + "RollbackSchemaRequest": { + "description": "Request for the `RollbackSchema` method.", + "id": "RollbackSchemaRequest", + "properties": { + "revisionId": { + "description": "Required. The revision ID to roll back to. It must be a revision of the same schema. Example: c7cfa2a8", + "type": "string" + } + }, + "type": "object" + }, "Schema": { "description": "A schema resource.", "id": "Schema", @@ -1896,6 +2118,17 @@ "description": "Required. Name of the schema. Format is `projects/{project}/schemas/{schema}`.", "type": "string" }, + "revisionCreateTime": { + "description": "Output only. The timestamp that the revision was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "revisionId": { + "description": "Output only. Immutable. The revision ID of the schema.", + "readOnly": true, + "type": "string" + }, "type": { "description": "The type of the schema definition.", "enum": [ @@ -1931,6 +2164,14 @@ ], "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.", + "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.", + "type": "string" + }, "schema": { "description": "Required. The name of the schema that messages published should be validated against. Format is `projects/{project}/schemas/{schema}`. The value of this field will be `_deleted-schema_` if the schema has been deleted.", "type": "string" @@ -1966,7 +2207,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1999,14 +2240,18 @@ "type": "object" }, "Subscription": { - "description": "A subscription resource.", + "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.", "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": "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." + }, "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." @@ -2035,7 +2280,7 @@ "additionalProperties": { "type": "string" }, - "description": "See Creating and managing labels.", + "description": "See [Creating and managing labels](https://cloud.google.com/pubsub/docs/labels).", "type": "object" }, "messageRetentionDuration": { @@ -2049,7 +2294,7 @@ }, "pushConfig": { "$ref": "PushConfig", - "description": "If push delivery is used with this subscription, this field is used to configure it. At most one of `pushConfig` and `bigQueryConfig` can be set. If both are empty, then the subscriber will pull and ack messages using API methods." + "description": "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.", @@ -2092,7 +2337,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/pubsub/v1beta1a/pubsub-api.json b/etc/api/pubsub/v1beta1a/pubsub-api.json index 4917295355..b1a8485500 100644 --- a/etc/api/pubsub/v1beta1a/pubsub-api.json +++ b/etc/api/pubsub/v1beta1a/pubsub-api.json @@ -457,7 +457,7 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/etc/api/pubsub/v1beta2/pubsub-api.json b/etc/api/pubsub/v1beta2/pubsub-api.json index 569d1fff42..af4fb3df49 100644 --- a/etc/api/pubsub/v1beta2/pubsub-api.json +++ b/etc/api/pubsub/v1beta2/pubsub-api.json @@ -237,7 +237,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -387,7 +387,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -416,7 +416,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/subscriptions/[^/]+$", "required": true, @@ -536,7 +536,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -628,7 +628,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -657,7 +657,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/topics/[^/]+$", "required": true, @@ -724,7 +724,7 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -750,7 +750,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -764,7 +764,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1048,7 +1048,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1082,7 +1082,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/pubsublite/v1/pubsublite-api.json b/etc/api/pubsublite/v1/pubsublite-api.json index c6f404dd7b..ac5dc8cede 100644 --- a/etc/api/pubsublite/v1/pubsublite-api.json +++ b/etc/api/pubsublite/v1/pubsublite-api.json @@ -1040,7 +1040,7 @@ } } }, - "revision": "20220301", + "revision": "20230114", "rootUrl": "https://pubsublite.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -1219,11 +1219,63 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "ExportConfig": { + "description": "Configuration for a Pub/Sub Lite subscription that writes messages to a destination. User subscriber clients must not connect to this subscription.", + "id": "ExportConfig", + "properties": { + "currentState": { + "description": "Output only. The current state of the export, which may be different to the desired state due to errors. This field is output only.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "PAUSED", + "PERMISSION_DENIED", + "NOT_FOUND" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Messages are being exported.", + "Exporting messages is suspended.", + "Messages cannot be exported due to permission denied errors. Output only.", + "Messages cannot be exported due to missing resources. Output only." + ], + "readOnly": true, + "type": "string" + }, + "deadLetterTopic": { + "description": "Optional. The name of an optional Pub/Sub Lite topic to publish messages that can not be exported to the destination. For example, the message can not be published to the Pub/Sub service because it does not satisfy the constraints documented at https://cloud.google.com/pubsub/docs/publisher. Structured like: projects/{project_number}/locations/{location}/topics/{topic_id}. Must be within the same project and location as the subscription. The topic may be changed or removed.", + "type": "string" + }, + "desiredState": { + "description": "The desired state of this export. Setting this to values other than `ACTIVE` and `PAUSED` will result in an error.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "PAUSED", + "PERMISSION_DENIED", + "NOT_FOUND" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Messages are being exported.", + "Exporting messages is suspended.", + "Messages cannot be exported due to permission denied errors. Output only.", + "Messages cannot be exported due to missing resources. Output only." + ], + "type": "string" + }, + "pubsubConfig": { + "$ref": "PubSubConfig", + "description": "Messages are automatically written from the Pub/Sub Lite topic associated with this subscription to a Pub/Sub topic." + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1447,6 +1499,17 @@ }, "type": "object" }, + "PubSubConfig": { + "description": "Configuration for exporting to a Pub/Sub topic.", + "id": "PubSubConfig", + "properties": { + "topic": { + "description": "The name of the Pub/Sub topic. Structured like: projects/{project_number}/topics/{topic_id}. The topic may be changed.", + "type": "string" + } + }, + "type": "object" + }, "Reservation": { "description": "Metadata about a reservation resource.", "id": "Reservation", @@ -1557,6 +1620,10 @@ "$ref": "DeliveryConfig", "description": "The settings for this subscription's message delivery." }, + "exportConfig": { + "$ref": "ExportConfig", + "description": "If present, messages are automatically written from the Pub/Sub Lite topic associated with this subscription to a destination." + }, "name": { "description": "The name of the subscription. Structured like: projects/{project_number}/locations/{location}/subscriptions/{subscription_id}", "type": "string" diff --git a/etc/api/realtimebidding/v1/realtimebidding-api.json b/etc/api/realtimebidding/v1/realtimebidding-api.json index a4bc5fcdf9..61d2d04bc8 100644 --- a/etc/api/realtimebidding/v1/realtimebidding-api.json +++ b/etc/api/realtimebidding/v1/realtimebidding-api.json @@ -164,7 +164,7 @@ "creatives": { "methods": { "list": { - "description": "Lists creatives.", + "description": "Lists creatives as they are at the time of the initial request. This call may take multiple hours to complete. For large, paginated requests, this method returns a snapshot of creatives at the time of request for the first page. `lastStatusUpdate` and `creativeServingDecision` may be outdated for creatives on sequential pages. We recommend [Google Cloud Pub/Sub](//cloud.google.com/pubsub/docs/overview) to view the latest status.", "flatPath": "v1/bidders/{biddersId}/creatives", "httpMethod": "GET", "id": "realtimebidding.bidders.creatives.list", @@ -178,7 +178,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available via another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", + "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available through another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", "format": "int32", "location": "query", "type": "integer" @@ -189,7 +189,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the parent buyer that owns the creatives. The pattern for this resource is either `buyers/{buyerAccountId}` or `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the `buyerAccountId` can be one of the following: 1. The ID of the buyer that is accessing their own creatives. 2. The ID of the child seat buyer under a bidder account. So for listing creatives pertaining to the child seat buyer (`456`) under bidder account (`123`), you would use the pattern: `buyers/456`. 3. The ID of the bidder itself. So for listing creatives pertaining to bidder (`123`), you would use `buyers/123`. If you want to access all creatives pertaining to both the bidder and all of its child seat accounts, you would use `bidders/{bidderAccountId}`, e.g., for all creatives pertaining to bidder (`123`), use `bidders/123`.", + "description": "Required. Name of the parent buyer that owns the creatives. The pattern for this resource is either `buyers/{buyerAccountId}` or `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the `buyerAccountId` can be one of the following: 1. The ID of the buyer that is accessing their own creatives. 2. The ID of the child seat buyer under a bidder account. So for listing creatives pertaining to the child seat buyer (`456`) under bidder account (`123`), you would use the pattern: `buyers/456`. 3. The ID of the bidder itself. So for listing creatives pertaining to bidder (`123`), you would use `buyers/123`. If you want to access all creatives pertaining to both the bidder and all of its child seat accounts, you would use `bidders/{bidderAccountId}`, for example, for all creatives pertaining to bidder (`123`), use `bidders/123`.", "location": "path", "pattern": "^bidders/[^/]+$", "required": true, @@ -723,6 +723,137 @@ ] } } + }, + "publisherConnections": { + "methods": { + "batchApprove": { + "description": "Batch approves multiple publisher connections.", + "flatPath": "v1/bidders/{biddersId}/publisherConnections:batchApprove", + "httpMethod": "POST", + "id": "realtimebidding.bidders.publisherConnections.batchApprove", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The bidder for whom publisher connections will be approved. Format: `bidders/{bidder}` where `{bidder}` is the account ID of the bidder.", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/publisherConnections:batchApprove", + "request": { + "$ref": "BatchApprovePublisherConnectionsRequest" + }, + "response": { + "$ref": "BatchApprovePublisherConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "batchReject": { + "description": "Batch rejects multiple publisher connections.", + "flatPath": "v1/bidders/{biddersId}/publisherConnections:batchReject", + "httpMethod": "POST", + "id": "realtimebidding.bidders.publisherConnections.batchReject", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The bidder for whom publisher connections will be rejected. Format: `bidders/{bidder}` where `{bidder}` is the account ID of the bidder.", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/publisherConnections:batchReject", + "request": { + "$ref": "BatchRejectPublisherConnectionsRequest" + }, + "response": { + "$ref": "BatchRejectPublisherConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "get": { + "description": "Gets a publisher connection.", + "flatPath": "v1/bidders/{biddersId}/publisherConnections/{publisherConnectionsId}", + "httpMethod": "GET", + "id": "realtimebidding.bidders.publisherConnections.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the publisher whose connection information is to be retrieved. In the pattern `bidders/{bidder}/publisherConnections/{publisher}` where `{bidder}` is the account ID of the bidder, and `{publisher}` is the ads.txt/app-ads.txt publisher ID. See publisherConnection.name.", + "location": "path", + "pattern": "^bidders/[^/]+/publisherConnections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "PublisherConnection" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "list": { + "description": "Lists publisher connections for a given bidder.", + "flatPath": "v1/bidders/{biddersId}/publisherConnections", + "httpMethod": "GET", + "id": "realtimebidding.bidders.publisherConnections.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Query string to filter publisher connections. Connections can be filtered by `displayName`, `publisherPlatform`, and `biddingState`. If no filter is specified, all publisher connections will be returned. Example: 'displayName=\"Great Publisher*\" AND publisherPlatform=ADMOB AND biddingState != PENDING' See https://google.aip.dev/160 for more information about filtering syntax.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Order specification by which results should be sorted. If no sort order is specified, the results will be returned in alphabetic order based on the publisher's publisher code. Results can be sorted by `createTime`. Example: 'createTime DESC'.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested (due to timeout constraint) even if more are available through another call. If unspecified, the server will pick an appropriate default. Acceptable values are 1 to 5000, inclusive.", + "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 ListPublisherConnectionsResponse.nextPageToken returned from the previous call to the 'ListPublisherConnections' method.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the bidder for which publishers have initiated connections. The pattern for this resource is `bidders/{bidder}` where `{bidder}` represents the account ID of the bidder.", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/publisherConnections", + "response": { + "$ref": "ListPublisherConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + } + } } } }, @@ -878,7 +1009,7 @@ ] }, "list": { - "description": "Lists creatives.", + "description": "Lists creatives as they are at the time of the initial request. This call may take multiple hours to complete. For large, paginated requests, this method returns a snapshot of creatives at the time of request for the first page. `lastStatusUpdate` and `creativeServingDecision` may be outdated for creatives on sequential pages. We recommend [Google Cloud Pub/Sub](//cloud.google.com/pubsub/docs/overview) to view the latest status.", "flatPath": "v1/buyers/{buyersId}/creatives", "httpMethod": "GET", "id": "realtimebidding.buyers.creatives.list", @@ -892,7 +1023,7 @@ "type": "string" }, "pageSize": { - "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available via another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", + "description": "Requested page size. The server may return fewer creatives than requested (due to timeout constraint) even if more are available through another call. If unspecified, server will pick an appropriate default. Acceptable values are 1 to 1000, inclusive.", "format": "int32", "location": "query", "type": "integer" @@ -903,7 +1034,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the parent buyer that owns the creatives. The pattern for this resource is either `buyers/{buyerAccountId}` or `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the `buyerAccountId` can be one of the following: 1. The ID of the buyer that is accessing their own creatives. 2. The ID of the child seat buyer under a bidder account. So for listing creatives pertaining to the child seat buyer (`456`) under bidder account (`123`), you would use the pattern: `buyers/456`. 3. The ID of the bidder itself. So for listing creatives pertaining to bidder (`123`), you would use `buyers/123`. If you want to access all creatives pertaining to both the bidder and all of its child seat accounts, you would use `bidders/{bidderAccountId}`, e.g., for all creatives pertaining to bidder (`123`), use `bidders/123`.", + "description": "Required. Name of the parent buyer that owns the creatives. The pattern for this resource is either `buyers/{buyerAccountId}` or `bidders/{bidderAccountId}`. For `buyers/{buyerAccountId}`, the `buyerAccountId` can be one of the following: 1. The ID of the buyer that is accessing their own creatives. 2. The ID of the child seat buyer under a bidder account. So for listing creatives pertaining to the child seat buyer (`456`) under bidder account (`123`), you would use the pattern: `buyers/456`. 3. The ID of the bidder itself. So for listing creatives pertaining to bidder (`123`), you would use `buyers/123`. If you want to access all creatives pertaining to both the bidder and all of its child seat accounts, you would use `bidders/{bidderAccountId}`, for example, for all creatives pertaining to bidder (`123`), use `bidders/123`.", "location": "path", "pattern": "^buyers/[^/]+$", "required": true, @@ -1174,7 +1305,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivatePretargetingConfigRequest": { @@ -1188,7 +1319,7 @@ "id": "AdTechnologyProviders", "properties": { "detectedGvlIds": { - "description": "The detected IAB Global Vendor List (GVL) IDs for this creative. See the IAB Global Vendor List at https://vendorlist.consensu.org/v2/vendor-list.json for details about the vendors.", + "description": "The detected IAB Global Vendor List (GVL) IDs for this creative. See the IAB Global Vendor List at https://vendor-list.consensu.org/v2/vendor-list.json for details about the vendors.", "items": { "format": "int64", "type": "string" @@ -1337,12 +1468,68 @@ }, "type": "object" }, + "BatchApprovePublisherConnectionsRequest": { + "description": "A request to approve a batch of publisher connections.", + "id": "BatchApprovePublisherConnectionsRequest", + "properties": { + "names": { + "description": "Required. The names of the publishers with which connections will be approved. In the pattern `bidders/{bidder}/publisherConnections/{publisher}` where `{bidder}` is the account ID of the bidder, and `{publisher}` is the ads.txt/app-ads.txt publisher ID.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchApprovePublisherConnectionsResponse": { + "description": "A response for the request to approve a batch of publisher connections.", + "id": "BatchApprovePublisherConnectionsResponse", + "properties": { + "publisherConnections": { + "description": "The publisher connections that have been approved.", + "items": { + "$ref": "PublisherConnection" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchRejectPublisherConnectionsRequest": { + "description": "A request to reject a batch of publisher connections.", + "id": "BatchRejectPublisherConnectionsRequest", + "properties": { + "names": { + "description": "Required. The names of the publishers with whom connection will be rejected. In the pattern `bidders/{bidder}/publisherConnections/{publisher}` where `{bidder}` is the account ID of the bidder, and `{publisher}` is the ads.txt/app-ads.txt publisher ID.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchRejectPublisherConnectionsResponse": { + "description": "A response for the request to reject a batch of publisher connections.", + "id": "BatchRejectPublisherConnectionsResponse", + "properties": { + "publisherConnections": { + "description": "The publisher connections that have been rejected.", + "items": { + "$ref": "PublisherConnection" + }, + "type": "array" + } + }, + "type": "object" + }, "Bidder": { "description": "Bidder settings.", "id": "Bidder", "properties": { "bypassNonguaranteedDealsPretargeting": { - "description": "Output only. A flag to bypass pretargeting for private auctions and preferred deals. When true, bid requests from these nonguaranteed deals will always be sent. When false, bid requests will be subject to regular pretargeting configurations. Programmatic Guaranteed deals will always be sent to the bidder, regardless of the value for this flag. Auction packages are not impacted by this value and are subject to the regular pretargeting configurations.", + "description": "Output only. An option to bypass pretargeting for private auctions and preferred deals. When true, bid requests from these nonguaranteed deals will always be sent. When false, bid requests will be subject to regular pretargeting configurations. Programmatic Guaranteed deals will always be sent to the bidder, regardless of the value for this flag. Auction packages are not impacted by this value and are subject to the regular pretargeting configurations.", "readOnly": true, "type": "boolean" }, @@ -1374,7 +1561,7 @@ "id": "Buyer", "properties": { "activeCreativeCount": { - "description": "Output only. The number of creatives that this buyer submitted via the API or bid with in the last 30 days. This is counted against the maximum number of active creatives.", + "description": "Output only. The number of creatives that this buyer submitted through the API or bid with in the last 30 days. This is counted against the maximum number of active creatives.", "format": "int64", "readOnly": true, "type": "string" @@ -1441,7 +1628,7 @@ "type": "string" }, "apiUpdateTime": { - "description": "Output only. The last update timestamp of the creative via API.", + "description": "Output only. The last update timestamp of the creative through the API.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -1617,6 +1804,10 @@ "$ref": "NativeContent", "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`.", + "type": "string" + }, "restrictedCategories": { "description": "All restricted categories for the ads that may be shown from this creative.", "items": { @@ -1633,7 +1824,7 @@ "type": "array" }, "version": { - "description": "Output only. The version of this creative. Version for a new creative is 1 and it increments during subsequent creative updates.", + "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, "type": "integer" @@ -1883,9 +2074,9 @@ ], "enumDescriptions": [ "Default value that should never be used.", - "Site's robots exclusion file (e.g., robots.txt) was unreachable.", - "Timed out reading site's robots exclusion file (e.g., robots.txt).", - "Crawler was disallowed by the site's robots exclusion file (e.g., robots.txt).", + "Site's robots exclusion file (for example, robots.txt) was unreachable.", + "Timed out reading site's robots exclusion file (for example, robots.txt).", + "Crawler was disallowed by the site's robots exclusion file (for example, robots.txt).", "Unknown reason." ], "type": "string" @@ -1916,7 +2107,7 @@ "type": "string" }, "httpError": { - "description": "HTTP error code (e.g. 404 or 5xx)", + "description": "HTTP error code (for example, 404 or 5xx)", "format": "int32", "type": "integer" }, @@ -2006,7 +2197,7 @@ "id": "DomainCallEvidence", "properties": { "topHttpCallDomains": { - "description": "Breakdown of the most frequent domains called via HTTP by the creative.", + "description": "Breakdown of the most frequent domains called through HTTP by the creative.", "items": { "$ref": "DomainCalls" }, @@ -2056,7 +2247,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2070,6 +2261,8 @@ "enum": [ "BID_PROTOCOL_UNSPECIFIED", "GOOGLE_RTB", + "OPENRTB_JSON", + "OPENRTB_PROTOBUF", "OPENRTB_2_2", "OPENRTB_2_3", "OPENRTB_PROTOBUF_2_3", @@ -2081,13 +2274,15 @@ "enumDescriptions": [ "Placeholder for undefined bid protocol. This value should not be used.", "Google RTB protocol / Protobuf encoding.", - "OpenRTB / JSON encoding, specification version 2.2.", - "OpenRTB / JSON encoding, specification version 2.3.", - "OpenRTB / Protobuf encoding, specification version 2.3.", - "OpenRTB / JSON encoding, specification version 2.4.", - "OpenRTB / Protobuf encoding, specification version 2.4.", - "OpenRTB / JSON encoding, specification version 2.5.", - "OpenRTB / Protobuf encoding, specification version 2.5." + "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." ], "type": "string" }, @@ -2303,6 +2498,24 @@ }, "type": "object" }, + "ListPublisherConnectionsResponse": { + "description": "A response to a request for listing publisher connections.", + "id": "ListPublisherConnectionsResponse", + "properties": { + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass this value in the ListPublisherConnectionsRequest.pageToken field in the subsequent call to the `ListPublisherConnections` method to retrieve the next page of results.", + "type": "string" + }, + "publisherConnections": { + "description": "The list of publisher connections.", + "items": { + "$ref": "PublisherConnection" + }, + "type": "array" + } + }, + "type": "object" + }, "ListUserListsResponse": { "description": "The list user list response.", "id": "ListUserListsResponse", @@ -2471,23 +2684,25 @@ "id": "PolicyCompliance", "properties": { "status": { - "description": "Serving status for the given transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Can be used to filter the response of the creatives.list method.", + "description": "Serving status for the given transaction type (for example, open auction, deals) or region (for example, China, Russia). Can be used to filter the response of the creatives.list method.", "enum": [ "STATUS_UNSPECIFIED", "PENDING_REVIEW", "DISAPPROVED", - "APPROVED" + "APPROVED", + "CERTIFICATE_REQUIRED" ], "enumDescriptions": [ "Default value that should never be used.", "Creative is pending review.", "Creative cannot serve.", - "Creative is approved." + "Creative is approved.", + "Certificates are required for the creative to be served in some regions. For more information about creative certification, refer to: https://support.google.com/authorizedbuyers/answer/7450776" ], "type": "string" }, "topics": { - "description": "Topics related to the policy compliance for this transaction type (e.g., open auction, deals) or region (e.g., China, Russia). Topics may be present only if status is DISAPPROVED.", + "description": "Topics related to the policy compliance for this transaction type (for example, open auction, deals) or region (for example, China, Russia). Topics may be present only if status is DISAPPROVED.", "items": { "$ref": "PolicyTopicEntry" }, @@ -2738,7 +2953,7 @@ }, "publisherTargeting": { "$ref": "StringTargetingDimension", - "description": "Targeting on a subset of publisher inventory. Publishers can either be targeted positively (bid requests will be sent only if the publisher is listed in the targeting dimension) or negatively (bid requests will be sent only if the publisher is not listed in the targeting dimension). A maximum of 10,000 publisher IDs can be targeted. Publisher IDs are found in [ads.txt](https://iabtechlab.com/ads-txt/) / [app-ads.txt](https://iabtechlab.com/app-ads-txt/) and in bid requests in the `BidRequest.publisher_id` field on the [Google RTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) or the `BidRequest.site.publisher.id` / `BidRequest.app.publisher.id` field on the [OpenRTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto)." + "description": "Targeting on a subset of publisher inventory. Publishers can either be targeted positively (bid requests will be sent only if the publisher is listed in the targeting dimension) or negatively (bid requests will be sent only if the publisher is not listed in the targeting dimension). A maximum of 10,000 publisher IDs can be targeted. Publisher IDs are found in [ads.txt](https://iabtechlab.com/ads-txt/) / [app-ads.txt](https://iabtechlab.com/app-ads-txt/) and in bid requests in the `BidRequest.publisher_id` field on the [Google RTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto) or the `BidRequest.site.publisher.id` / `BidRequest.app.publisher.id` field on the [OpenRTB protocol](https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto). Publisher IDs will be returned in the order that they were entered." }, "state": { "description": "Output only. The state of this pretargeting configuration.", @@ -2770,6 +2985,60 @@ }, "type": "object" }, + "PublisherConnection": { + "description": "An Open Bidding exchange's connection to a publisher. This is initiated by the publisher for the bidder to review. If approved by the bidder, this means that the bidder agrees to receive bid requests from the publisher.", + "id": "PublisherConnection", + "properties": { + "biddingState": { + "description": "Whether the publisher has been approved by the bidder.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "REJECTED", + "APPROVED" + ], + "enumDescriptions": [ + "An unspecified bidding status.", + "Indicates a request for connection from the publisher that the bidder needs to review.", + "Indicates that the publisher was rejected.", + "Indicates that the publisher was approved." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The time at which the publisher initiated a connection with the bidder (irrespective of if or when the bidder approves it). This is subsequently updated if the publisher revokes and re-initiates the connection.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. Publisher display name.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Name of the publisher connection. This follows the pattern `bidders/{bidder}/publisherConnections/{publisher}`, where `{bidder}` represents the account ID of the bidder, and `{publisher}` is the ads.txt/app-ads.txt publisher ID.", + "readOnly": true, + "type": "string" + }, + "publisherPlatform": { + "description": "Output only. Whether the publisher is an Ad Manager or AdMob publisher.", + "enum": [ + "PUBLISHER_PLATFORM_UNSPECIFIED", + "GOOGLE_AD_MANAGER", + "ADMOB" + ], + "enumDescriptions": [ + "An unspecified publisher platform.", + "A Google Ad Manager publisher.", + "An AdMob publisher." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "RemoveTargetedAppsRequest": { "description": "A request to stop targeting the provided apps in a specific pretargeting configuration. The pretargeting configuration itself specifies how these apps are targeted. in PretargetingConfig.appTargeting.mobileAppTargeting.", "id": "RemoveTargetedAppsRequest", @@ -3032,7 +3301,7 @@ "id": "WatchCreativesResponse", "properties": { "subscription": { - "description": "The Pub/Sub subscription that can be used to pull creative status notifications. This would be of the format `projects/{project_id}/subscriptions/{subscription_id}`. Subscription is created with pull delivery. All service accounts belonging to the bidder will have read access to this subscription. Subscriptions that are inactive for more than 90 days will be disabled. Please use watchCreatives to re-enable the subscription.", + "description": "The Pub/Sub subscription that can be used to pull creative status notifications. This would be of the format `projects/{project_id}/subscriptions/{subscription_id}`. Subscription is created with pull delivery. All service accounts belonging to the bidder will have read access to this subscription. Subscriptions that are inactive for more than 90 days will be disabled. Use watchCreatives to re-enable the subscription.", "type": "string" }, "topic": { diff --git a/etc/api/realtimebidding/v1alpha/realtimebidding-api.json b/etc/api/realtimebidding/v1alpha/realtimebidding-api.json index 9f950e523d..448109e76c 100644 --- a/etc/api/realtimebidding/v1alpha/realtimebidding-api.json +++ b/etc/api/realtimebidding/v1alpha/realtimebidding-api.json @@ -234,7 +234,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivateBiddingFunctionRequest": { @@ -271,7 +271,7 @@ "enumDescriptions": [ "Default value that should not be used.", "An active function. Only `ACTIVE` bidding functions or ad scoring functions are made available for the server-side TURTLEDOVE simulations. Every account is limited to 10 active bidding functions per account.", - "A function that is no longer made available for invocation in a simulation and instead archived. An archived function can later be made active by activating the function via `ActivateBiddingFunction`." + "A function that is no longer made available for invocation in a simulation and instead archived. An archived function can later be made active by activating the function through `ActivateBiddingFunction`." ], "readOnly": true, "type": "string" @@ -286,7 +286,7 @@ "enumDescriptions": [ "Default value that should not be used.", "Bidding function that can be used by Authorized Buyers in the original TURTLEDOVE simulation. See documentation on the TURTLEDOVE simulation at https://developers.google.com/authorized-buyers/rtb/turtledove. The function takes in a Javascript object, `inputs`, that contains the following named fields: `openrtbContextualBidRequest` OR `googleContextualBidRequest`, `customContextualSignal`, `interestBasedBidData`, `interestGroupData`, and returns the bid price CPM. Example: ``` /* Returns a bid price CPM. * * @param {Object} inputs an object with the * following named fields: * - openrtbContextualBidRequest * OR googleContextualBidRequest * - customContextualSignal * - interestBasedBidData * - interestGroupData */ function biddingFunction(inputs) { ... return inputs.interestBasedBidData.cpm * inputs.customContextualSignals.placementMultiplier; } ```", - "Buyer's interest group bidding function that can be used by Authorized Buyers in the FLEDGE simulation. See the FLEDGE explainer at https://github.com/WICG/turtledove/blob/main/FLEDGE.md#32-on-device-bidding. The function takes one argument, `inputs`, that contains an object with the following named fields of the form: ``` { \"interestGroup\" : { \"ad\" : [ \"buyerCreativeId\": \"...\", # Ad creative ID \"adData\": { # JSON object } ], \"userBiddingSignals\": { . # JSON object } }, \"auctionSignals\": { \"url\": # string, \"slotVisibility\": # enum value, \"slotDimensions\": [ { \"height\": # number value \"width\": # number value } ] }, \"perBuyerSignals\": { # JSON object }, \"trustedBiddingSignals\": { # JSON object }, \"browserSignals\": { \"recent_impression_ages_secs\": [ # Array of integers. Not yet populated. ] } } ``` `interestGroup`: An object containing a list of `ad` objects, which contain the following named fields: - `buyerCreativeId`: The ad creative ID string. - `adData`: Any JSON value of the bidder's choosing to contain data associated with an ad provided in `BidResponse.ad.adslot.ad_data` for the Google Authorized Buyers protocol and `BidResponse.seatbid.bid.ext.ad_data` for the OpenRTB protocol. - `userBiddingSignals`: Any JSON value of the bidder's choosing containing interest group data that corresponds to user_bidding_signals (as in FLEDGE). This field will be populated from `BidResponse.interest_group_map.user_bidding_signals` for Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. `auctionSignals`: Contains data from the seller. It corresponds to the auction signals data described in the FLEDGE proposal. It is an object containing the following named fields: - `url`: The string URL of the page with parameters removed. - `slotVisibility`: Enum of one of the following potential values: - NO_DETECTION = 0 - ABOVE_THE_FOLD = 1 - BELOW_THE_FOLD = 2 - `slotDimensions`: A list of objects containing containing width and height pairs in `width` and `height` fields, respectively, from `BidRequest.adslot.width` and `BidRequest.adslot.height` for the Google Authorized Buyers protocol and `BidRequest.imp.banner.format.w` and `BidRequest.imp.banner.format.h` for the OpenRTB protocol. `perBuyerSignals`: The contextual signals from the bid response that are populated in `BidResponse.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the OpenRTB protocol. These signals can be of any JSON format of your choosing, however, the buyer's domain name must match between: - the interest group response in `BidResponse.interest_group_map.buyer_domain` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_map.buyer_domain` for the OpenRTB protocol. - the contextual response as a key to the map in `BidResponse.interest_group_bidding.interest_group_buyers` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_bidding.interest_group_buyers` for the OpenRTB protocol. In other words, there must be a match between the buyer domain of the contextual per_buyer_signals and the domain of an interest group. `trustedBiddingSignals`: The trusted bidding signals that corresponds to the trusted_bidding_signals in the FLEDGE proposal. It is provided in the interest group response as `BidResponse.interest_group_map.user_bidding_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. This field can be any JSON format of your choosing. `browserSignals`: An object of simulated browser-provider signals. It is an object with a single named field, `recent_impression_ages_secs`, that contains a list of estimated number value recent impression ages in seconds for a given interest group. `recent_impression_ages_secs` is not yet populated. The function returns the string creative ID of the selected ad, the bid price CPM, and (optionally) selected product IDs. In addition, the bidding function may populate an optional debug string that may be used for remote debugging and troubleshooting of a bidder-provided bidding function. The debug string should not contain a user identifier. The maximum length of the debug string is 200 bytes. This debug string is available in `BidResponseFeedback` (https://developers.google.com/authorized-buyers/rtb/realtime-bidding-guide#bidresponsefeedback-object) and `BidFeedback` (https://developers.google.com/authorized-buyers/rtb/openrtb-guide#bidfeedback), for the Google protocol and OpenRTB protocol respectively. In addition, the debug string can be inserted into the creative HTML snippet via macro substitution if the following string is included in the snippet: \u201c%%DEBUG_STRING%%\u201d. Please ensure the debug string complies with [Platform Program Policies](https://support.google.com/platformspolicy/answer/3013851). Sample Bidding Function: ``` function biddingFunction(inputs) { ... return { \"buyerCreativeId\": \"ad_creative_id_1\", \"bidPriceCpm\": 0.3, \"productIds\": [\"product_id_1\", \"product_id_2\", \"product_id_3\"] \"debugString\": \"Bidding function executed successfully!\" } } ```" + "Buyer's interest group bidding function that can be used by Authorized Buyers in the FLEDGE simulation. See the FLEDGE explainer at https://github.com/WICG/turtledove/blob/main/FLEDGE.md#32-on-device-bidding. The function takes one argument, `inputs`, that contains an object with the following named fields of the form: ``` { \"interestGroup\" : { \"ad\" : [ \"buyerCreativeId\": \"...\", # Ad creative ID \"adData\": { # JSON object } ], \"userBiddingSignals\": { . # JSON object } }, \"auctionSignals\": { \"url\": # string, \"slotVisibility\": # enum value, \"slotDimensions\": [ { \"height\": # number value \"width\": # number value } ] }, \"perBuyerSignals\": { # JSON object }, \"trustedBiddingSignals\": { # JSON object }, \"browserSignals\": { \"recent_impression_ages_secs\": [ # Array of integers. Not yet populated. ] } } ``` `interestGroup`: An object containing a list of `ad` objects, which contain the following named fields: - `buyerCreativeId`: The ad creative ID string. - `adData`: Any JSON value of the bidder's choosing to contain data associated with an ad provided in `BidResponse.ad.adslot.ad_data` for the Google Authorized Buyers protocol and `BidResponse.seatbid.bid.ext.ad_data` for the OpenRTB protocol. - `userBiddingSignals`: Any JSON value of the bidder's choosing containing interest group data that corresponds to user_bidding_signals (as in FLEDGE). This field will be populated from `BidResponse.interest_group_map.user_bidding_signals` for Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. `auctionSignals`: Contains data from the seller. It corresponds to the auction signals data described in the FLEDGE proposal. It is an object containing the following named fields: - `url`: The string URL of the page with parameters removed. - `slotVisibility`: Enum of one of the following potential values: - NO_DETECTION = 0 - ABOVE_THE_FOLD = 1 - BELOW_THE_FOLD = 2 - `slotDimensions`: A list of objects containing containing width and height pairs in `width` and `height` fields, respectively, from `BidRequest.adslot.width` and `BidRequest.adslot.height` for the Google Authorized Buyers protocol and `BidRequest.imp.banner.format.w` and `BidRequest.imp.banner.format.h` for the OpenRTB protocol. `perBuyerSignals`: The contextual signals from the bid response that are populated in `BidResponse.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the OpenRTB protocol. These signals can be of any JSON format of your choosing, however, the buyer's domain name must match between: - the interest group response in `BidResponse.interest_group_map.buyer_domain` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_map.buyer_domain` for the OpenRTB protocol. - the contextual response as a key to the map in `BidResponse.interest_group_bidding.interest_group_buyers` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_bidding.interest_group_buyers` for the OpenRTB protocol. In other words, there must be a match between the buyer domain of the contextual per_buyer_signals and the domain of an interest group. `trustedBiddingSignals`: The trusted bidding signals that corresponds to the trusted_bidding_signals in the FLEDGE proposal. It is provided in the interest group response as `BidResponse.interest_group_map.user_bidding_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. This field can be any JSON format of your choosing. `browserSignals`: An object of simulated browser-provider signals. It is an object with a single named field, `recent_impression_ages_secs`, that contains a list of estimated number value recent impression ages in seconds for a given interest group. `recent_impression_ages_secs` is not yet populated. The function returns the string creative ID of the selected ad, the bid price CPM, and (optionally) selected product IDs. In addition, the bidding function may populate an optional debug string that may be used for remote debugging and troubleshooting of a bidder-provided bidding function. The debug string should not contain a user identifier. The maximum length of the debug string is 200 bytes. This debug string is available in `BidResponseFeedback` (https://developers.google.com/authorized-buyers/rtb/realtime-bidding-guide#bidresponsefeedback-object) and `BidFeedback` (https://developers.google.com/authorized-buyers/rtb/openrtb-guide#bidfeedback), for the Google protocol and OpenRTB protocol respectively. In addition, the debug string can be inserted into the creative HTML snippet through macro substitution if the following string is included in the snippet: \u201c%%DEBUG_STRING%%\u201d. Ensure the debug string complies with [Platform Program Policies](https://support.google.com/platformspolicy/answer/3013851). Sample Bidding Function: ``` function biddingFunction(inputs) { ... return { \"buyerCreativeId\": \"ad_creative_id_1\", \"bidPriceCpm\": 0.3, \"productIds\": [\"product_id_1\", \"product_id_2\", \"product_id_3\"] \"debugString\": \"Bidding function executed successfully!\" } } ```" ], "type": "string" } diff --git a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json index 4ac546fd95..4db325fd73 100644 --- a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json +++ b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://recaptchaenterprise.googleapis.com/", "batchPath": "batch", "canonicalName": "Recaptcha Enterprise", - "description": "", + "description": "Help protect your website from fraudulent activity, spam, and abuse without creating friction.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/recaptcha-enterprise/", "fullyEncodeReservedExpansion": true, @@ -369,6 +369,31 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "retrieveLegacySecretKey": { + "description": "Returns the secret key related to the specified public key. You must use the legacy secret key only in a 3rd party integration with legacy reCAPTCHA.", + "flatPath": "v1/projects/{projectsId}/keys/{keysId}:retrieveLegacySecretKey", + "httpMethod": "GET", + "id": "recaptchaenterprise.projects.keys.retrieveLegacySecretKey", + "parameterOrder": [ + "key" + ], + "parameters": { + "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, + "type": "string" + } + }, + "path": "v1/{+key}:retrieveLegacySecretKey", + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1RetrieveLegacySecretKeyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -384,7 +409,7 @@ ], "parameters": { "project": { - "description": "Required. The name of the project to search related account group memberships from, in the 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, @@ -416,7 +441,7 @@ ], "parameters": { "pageSize": { - "description": "Optional. The maximum number of groups to return. The service may return fewer than this value. If unspecified, at most 50 groups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "Optional. The maximum number of groups to return. The service might return fewer than this value. If unspecified, at most 50 groups are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -447,7 +472,7 @@ "memberships": { "methods": { "list": { - "description": "Get the memberships in a group of related accounts.", + "description": "Get memberships in a group of related accounts.", "flatPath": "v1/projects/{projectsId}/relatedaccountgroups/{relatedaccountgroupsId}/memberships", "httpMethod": "GET", "id": "recaptchaenterprise.projects.relatedaccountgroups.memberships.list", @@ -456,7 +481,7 @@ ], "parameters": { "pageSize": { - "description": "Optional. The maximum number of accounts to return. The service may return fewer than this value. If unspecified, at most 50 accounts will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "Optional. The maximum number of accounts to return. The service might return fewer than this value. If unspecified, at most 50 accounts are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -489,11 +514,11 @@ } } }, - "revision": "20220226", + "revision": "20230115", "rootUrl": "https://recaptchaenterprise.googleapis.com/", "schemas": { "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment": { - "description": "Account Defender risk assessment.", + "description": "Account defender risk assessment.", "id": "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment", "properties": { "labels": { @@ -509,9 +534,9 @@ "enumDescriptions": [ "Default unspecified type.", "The request matches a known good profile for the user.", - "The request is potentially a suspicious login event and should be further verified either via multi-factor authentication or another system.", - "The request matched a profile that previously had suspicious account creation behavior. This could mean this is a fake account.", - "The account in the request has a high number of related accounts. It does not necessarily imply that the account is bad but could require investigating." + "The request is potentially a suspicious login event and must be further verified either through multi-factor authentication or another system.", + "The request matched a profile that previously had suspicious account creation behavior. This can mean that this is a fake account.", + "The account in the request has a high number of related accounts. It does not necessarily imply that the account is bad but can require further investigation." ], "type": "string" }, @@ -520,6 +545,57 @@ }, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1AccountVerificationInfo": { + "description": "Information about account verification, used for identity verification.", + "id": "GoogleCloudRecaptchaenterpriseV1AccountVerificationInfo", + "properties": { + "endpoints": { + "description": "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.", + "type": "string" + }, + "latestVerificationResult": { + "description": "Output only. Result of the latest account verification challenge.", + "enum": [ + "RESULT_UNSPECIFIED", + "SUCCESS_USER_VERIFIED", + "ERROR_USER_NOT_VERIFIED", + "ERROR_SITE_ONBOARDING_INCOMPLETE", + "ERROR_RECIPIENT_NOT_ALLOWED", + "ERROR_RECIPIENT_ABUSE_LIMIT_EXHAUSTED", + "ERROR_CRITICAL_INTERNAL", + "ERROR_CUSTOMER_QUOTA_EXHAUSTED", + "ERROR_VERIFICATION_BYPASSED", + "ERROR_VERDICT_MISMATCH" + ], + "enumDescriptions": [ + "No information about the latest account verification.", + "The user was successfully verified. This means the account verification challenge was successfully completed.", + "The user failed the verification challenge.", + "The site is not properly onboarded to use the account verification feature.", + "The recipient is not allowed for account verification. This can occur during integration but should not occur in production.", + "The recipient has already been sent too many verification codes in a short amount of time.", + "The verification flow could not be completed due to a critical internal error.", + "The client has exceeded their two factor request quota for this period of time.", + "The request cannot be processed at the time because of an incident. This bypass can be restricted to a problematic destination email domain, a customer, or could affect the entire service.", + "The request parameters do not match with the token provided and cannot be processed." + ], + "readOnly": true, + "type": "string" + }, + "username": { + "description": "Username of the account that is being verified. Deprecated. Customers should now provide the hashed account ID field in Event.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1AndroidKeySettings": { "description": "Settings specific to keys that can be used by Android apps.", "id": "GoogleCloudRecaptchaenterpriseV1AndroidKeySettings", @@ -561,7 +637,7 @@ "type": "string" }, "hashedAccountId": { - "description": "Optional. Optional unique stable hashed user identifier to apply to the assessment. This is an alternative to setting the hashed_account_id in CreateAssessment, for example when the account identifier is not yet known in the initial request. It is recommended that the identifier is hashed using hmac-sha256 with stable secret.", + "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.", "format": "byte", "type": "string" }, @@ -573,24 +649,34 @@ "CHARGEBACK", "CHARGEBACK_FRAUD", "CHARGEBACK_DISPUTE", + "REFUND", + "REFUND_FRAUD", + "TRANSACTION_ACCEPTED", + "TRANSACTION_DECLINED", "PAYMENT_HEURISTICS", "INITIATED_TWO_FACTOR", "PASSED_TWO_FACTOR", "FAILED_TWO_FACTOR", "CORRECT_PASSWORD", - "INCORRECT_PASSWORD" + "INCORRECT_PASSWORD", + "SOCIAL_SPAM" ], "enumDescriptions": [ "Default unspecified reason.", - "Indicates a chargeback issued for the transaction with no other details. When possible, specify the type by using CHARGEBACK_FRAUD or CHARGEBACK_DISPUTE instead.", - "Indicates a chargeback related to an alleged unauthorized transaction from the cardholder's perspective (for example, the card number was stolen).", - "Indicates a chargeback related to the cardholder having provided their card details but allegedly not being satisfied with the purchase (for example, misrepresentation, attempted cancellation).", + "Indicates that the transaction had a chargeback issued with no other details. When possible, specify the type by using CHARGEBACK_FRAUD or CHARGEBACK_DISPUTE instead.", + "Indicates that the transaction had a chargeback issued related to an alleged unauthorized transaction from the cardholder's perspective (for example, the card number was stolen).", + "Indicates that the transaction had a chargeback issued related to the cardholder having provided their card details but allegedly not being satisfied with the purchase (for example, misrepresentation, attempted cancellation).", + "Indicates that the completed payment transaction was refunded by the seller.", + "Indicates that the completed payment transaction was determined to be fraudulent by the seller, and was cancelled and refunded as a result.", + "Indicates that the payment transaction was accepted, and the user was charged.", + "Indicates that the payment transaction was declined, for example due to invalid card details.", "Indicates the transaction associated with the assessment is suspected of being fraudulent based on the payment method, billing details, shipping address or other transaction information.", "Indicates that the user was served a 2FA challenge. An old assessment with `ENUM_VALUES.INITIATED_TWO_FACTOR` reason that has not been overwritten with `PASSED_TWO_FACTOR` is treated as an abandoned 2FA flow. This is equivalent to `FAILED_TWO_FACTOR`.", "Indicates that the user passed a 2FA challenge.", "Indicates that the user failed a 2FA challenge.", "Indicates the user provided the correct password.", - "Indicates the user provided an incorrect password." + "Indicates the user provided an incorrect password.", + "Indicates that the user sent unwanted and abusive messages to other users of the platform, such as spam, scams, phishing, or social engineering." ], "type": "string" }, @@ -611,7 +697,11 @@ "properties": { "accountDefenderAssessment": { "$ref": "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment", - "description": "Assessment returned by Account Defender when a hashed_account_id is provided." + "description": "Assessment returned by account defender when a hashed_account_id is provided." + }, + "accountVerification": { + "$ref": "GoogleCloudRecaptchaenterpriseV1AccountVerificationInfo", + "description": "Account verification information for identity verification. The assessment event must include a token and site key to use this feature." }, "event": { "$ref": "GoogleCloudRecaptchaenterpriseV1Event", @@ -622,6 +712,10 @@ "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." + }, "riskAnalysis": { "$ref": "GoogleCloudRecaptchaenterpriseV1RiskAnalysis", "description": "Output only. The risk analysis result for the event being assessed.", @@ -662,6 +756,32 @@ }, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1EndpointVerificationInfo": { + "description": "Information about a verification endpoint that can be used for 2FA.", + "id": "GoogleCloudRecaptchaenterpriseV1EndpointVerificationInfo", + "properties": { + "emailAddress": { + "description": "Email address for which to trigger a verification request.", + "type": "string" + }, + "lastVerificationTime": { + "description": "Output only. Timestamp of the last successful verification for the endpoint, if any.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "phoneNumber": { + "description": "Phone number for which to trigger a verification request. Should be given in E.164 format.", + "type": "string" + }, + "requestToken": { + "description": "Output only. Token to provide to the client to trigger endpoint verification. It must be used within 15 minutes.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1Event": { "id": "GoogleCloudRecaptchaenterpriseV1Event", "properties": { @@ -670,7 +790,7 @@ "type": "string" }, "hashedAccountId": { - "description": "Optional. Optional unique stable hashed user identifier for the request. The identifier should ideally be hashed using sha256 with stable secret.", + "description": "Optional. Unique stable hashed user identifier for the request. The identifier must be hashed using hmac-sha256 with stable secret.", "format": "byte", "type": "string" }, @@ -846,7 +966,44 @@ "GoogleCloudRecaptchaenterpriseV1MigrateKeyRequest": { "description": "The migrate key request message.", "id": "GoogleCloudRecaptchaenterpriseV1MigrateKeyRequest", - "properties": {}, + "properties": { + "skipBillingCheck": { + "description": "Optional. If true, skips the billing check. A reCAPTCHA Enterprise key or migrated key behaves differently than a reCAPTCHA (non-Enterprise version) key when you reach a quota limit (see https://cloud.google.com/recaptcha-enterprise/quotas#quota_limit). To avoid any disruption of your usage, we check that a billing account is present. If your usage of reCAPTCHA is under the free quota, you can safely skip the billing check and proceed with the migration. See https://cloud.google.com/recaptcha-enterprise/docs/billing-information.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1PrivatePasswordLeakVerification": { + "description": "Private password leak verification info.", + "id": "GoogleCloudRecaptchaenterpriseV1PrivatePasswordLeakVerification", + "properties": { + "encryptedLeakMatchPrefixes": { + "description": "Output only. List of prefixes of the encrypted potential password leaks that matched the given parameters. They must be compared with the client-side decryption prefix of `reencrypted_user_credentials_hash`", + "items": { + "format": "byte", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "encryptedUserCredentialsHash": { + "description": "Optional. Encrypted Scrypt hash of the canonicalized username+password. It is re-encrypted by the server and returned through `reencrypted_user_credentials_hash`.", + "format": "byte", + "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.", + "format": "byte", + "type": "string" + }, + "reencryptedUserCredentialsHash": { + "description": "Output only. Corresponds to the re-encryption of the `encrypted_user_credentials_hash` field. It is used to match potential password leaks within `encrypted_leak_match_prefixes`.", + "format": "byte", + "readOnly": true, + "type": "string" + } + }, "type": "object" }, "GoogleCloudRecaptchaenterpriseV1RelatedAccountGroup": { @@ -865,7 +1022,7 @@ "id": "GoogleCloudRecaptchaenterpriseV1RelatedAccountGroupMembership", "properties": { "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.", + "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.", "format": "byte", "type": "string" }, @@ -876,6 +1033,17 @@ }, "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", + "properties": { + "legacySecretKey": { + "description": "The secret key (also known as shared secret) authorizes communication between your application backend and the reCAPTCHA Enterprise server to create an assessment. The secret key needs to be kept safe for security purposes.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1RiskAnalysis": { "description": "Risk analysis result for an event.", "id": "GoogleCloudRecaptchaenterpriseV1RiskAnalysis", @@ -934,7 +1102,7 @@ "additionalProperties": { "$ref": "GoogleCloudRecaptchaenterpriseV1ScoreDistribution" }, - "description": "Action-based metrics. The map key is the action name which specified by the site owners at time of the \"execute\" client-side call. Populated only for SCORE keys.", + "description": "Action-based metrics. The map key is the action name which specified by the site owners at time of the \"execute\" client-side call.", "type": "object" }, "overallMetrics": { @@ -949,12 +1117,12 @@ "id": "GoogleCloudRecaptchaenterpriseV1SearchRelatedAccountGroupMembershipsRequest", "properties": { "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.", + "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.", "format": "byte", "type": "string" }, "pageSize": { - "description": "Optional. The maximum number of groups to return. The service may return fewer than this value. If unspecified, at most 50 groups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "description": "Optional. The maximum number of groups to return. The service might return fewer than this value. If unspecified, at most 50 groups are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "int32", "type": "integer" }, @@ -1016,13 +1184,17 @@ "description": "Action name provided at token generation.", "type": "string" }, + "androidPackageName": { + "description": "The name of the Android package with which the token was generated (Android keys only).", + "type": "string" + }, "createTime": { "description": "The timestamp corresponding to the generation of the token.", "format": "google-datetime", "type": "string" }, "hostname": { - "description": "The hostname of the page on which the token was generated.", + "description": "The hostname of the page on which the token was generated (Web keys only).", "type": "string" }, "invalidReason": { @@ -1047,6 +1219,10 @@ ], "type": "string" }, + "iosBundleId": { + "description": "The ID of the iOS bundle with which the token was generated (iOS keys only).", + "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).", "type": "boolean" @@ -1144,7 +1320,7 @@ "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/recommendationengine/v1beta1/recommendationengine-api.json b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json index d42c4c2979..d1c26ce0a6 100644 --- a/etc/api/recommendationengine/v1beta1/recommendationengine-api.json +++ b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json @@ -452,7 +452,6 @@ ], "parameters": { "name": { - "description": "Required. Full resource name of the format: `{name=projects/*/locations/global/catalogs/default_catalog/eventStores/default_event_store/placements/*}` The id of the recommendation engine placement. This id is used to identify the set of models that will be used to make the prediction. We currently support three placements with the following IDs by default: * `shopping_cart`: Predicts items frequently bought together with one or more catalog items in the same shopping session. Commonly displayed after `add-to-cart` events, on product detail pages, or on the shopping cart page. * `home_page`: Predicts the next product that a user will most likely engage with or purchase based on the shopping or viewing history of the specified `userId` or `visitorId`. For example - Recommendations for you. * `product_detail`: Predicts the next product that a user will most likely engage with or purchase. The prediction is based on the shopping or viewing history of the specified `userId` or `visitorId` and its relevance to a specified `CatalogItem`. Typically used on product detail pages. For example - More items like this. * `recently_viewed_default`: Returns up to 75 items recently viewed by the specified `userId` or `visitorId`, most recent ones first. Returns nothing if neither of them has viewed any items yet. For example - Recently viewed. The full list of available placements can be seen at https://console.cloud.google.com/recommendation/datafeeds/default_catalog/dashboard", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+/placements/[^/]+$", "required": true, @@ -842,7 +841,7 @@ } } }, - "revision": "20220224", + "revision": "20230105", "rootUrl": "https://recommendationengine.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -1429,7 +1428,7 @@ "type": "object" }, "GoogleCloudRecommendationengineV1beta1PredictRequest": { - "description": "Request message for Predict method.", + "description": "Request message for Predict method. Full resource name of the format: `{name=projects/*/locations/global/catalogs/default_catalog/eventStores/default_event_store/placements/*}` The id of the recommendation engine placement. This id is used to identify the set of models that will be used to make the prediction. We currently support three placements with the following IDs by default: // * `shopping_cart`: Predicts items frequently bought together with one or more catalog items in the same shopping session. Commonly displayed after `add-to-cart` event, on product detail pages, or on the shopping cart page. * `home_page`: Predicts the next product that a user will most likely engage with or purchase based on the shopping or viewing history of the specified `userId` or `visitorId`. For example - Recommendations for you. * `product_detail`: Predicts the next product that a user will most likely engage with or purchase. The prediction is based on the shopping or viewing history of the specified `userId` or `visitorId` and its relevance to a specified `CatalogItem`. Typically used on product detail pages. For example - More items like this. * `recently_viewed_default`: Returns up to 75 items recently viewed by the specified `userId` or `visitorId`, most recent ones first. Returns nothing if neither of them has viewed any items yet. For example - Recently viewed. The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements", "id": "GoogleCloudRecommendationengineV1beta1PredictRequest", "properties": { "dryRun": { @@ -1465,7 +1464,7 @@ }, "userEvent": { "$ref": "GoogleCloudRecommendationengineV1beta1UserEvent", - "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging." + "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserInfo.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserInfo.visitor_id to a random unique ID and leave UserInfo.user_id unset." } }, "type": "object" @@ -1945,11 +1944,11 @@ "type": "string" }, "userId": { - "description": "Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.", + "description": "Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users. Don't set for anonymous users. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality.", "type": "string" }, "visitorId": { - "description": "Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.", + "description": "Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality.", "type": "string" } }, @@ -2009,7 +2008,7 @@ "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/recommender/v1/recommender-api.json b/etc/api/recommender/v1/recommender-api.json index 7a8cafa4bb..78e6808600 100644 --- a/etc/api/recommender/v1/recommender-api.json +++ b/etc/api/recommender/v1/recommender-api.json @@ -110,6 +110,72 @@ "locations": { "resources": { "insightTypes": { + "methods": { + "getConfig": { + "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "GET", + "id": "recommender.billingAccounts.locations.insightTypes.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "PATCH", + "id": "recommender.billingAccounts.locations.insightTypes.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insights": { "methods": { @@ -212,6 +278,72 @@ } }, "recommenders": { + "methods": { + "getConfig": { + "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "GET", + "id": "recommender.billingAccounts.locations.recommenders.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates a Recommender Config. This will create a new revision of the config.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "PATCH", + "id": "recommender.billingAccounts.locations.recommenders.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "recommendations": { "methods": { @@ -309,6 +441,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.billingAccounts.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -577,6 +737,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.folders.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -646,6 +834,72 @@ "locations": { "resources": { "insightTypes": { + "methods": { + "getConfig": { + "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "GET", + "id": "recommender.organizations.locations.insightTypes.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "PATCH", + "id": "recommender.organizations.locations.insightTypes.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insights": { "methods": { @@ -748,6 +1002,72 @@ } }, "recommenders": { + "methods": { + "getConfig": { + "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "GET", + "id": "recommender.organizations.locations.recommenders.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates a Recommender Config. This will create a new revision of the config.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "PATCH", + "id": "recommender.organizations.locations.recommenders.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "recommendations": { "methods": { @@ -845,6 +1165,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.organizations.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -914,6 +1262,72 @@ "locations": { "resources": { "insightTypes": { + "methods": { + "getConfig": { + "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "GET", + "id": "recommender.projects.locations.insightTypes.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "PATCH", + "id": "recommender.projects.locations.insightTypes.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insights": { "methods": { @@ -1016,6 +1430,72 @@ } }, "recommenders": { + "methods": { + "getConfig": { + "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "GET", + "id": "recommender.projects.locations.recommenders.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates a Recommender Config. This will create a new revision of the config.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "PATCH", + "id": "recommender.projects.locations.recommenders.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "recommendations": { "methods": { @@ -1113,6 +1593,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.projects.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -1178,7 +1686,7 @@ } } }, - "revision": "20220228", + "revision": "20230108", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1CostProjection": { @@ -1208,14 +1716,18 @@ "COST", "SECURITY", "PERFORMANCE", - "MANAGEABILITY" + "MANAGEABILITY", + "SUSTAINABILITY", + "RELIABILITY" ], "enumDescriptions": [ "Default unspecified category. Don't use directly.", "Indicates a potential increase or decrease in cost.", "Indicates a potential increase or decrease in security.", "Indicates a potential increase or decrease in performance.", - "Indicates a potential increase or decrease in manageability." + "Indicates a potential increase or decrease in manageability.", + "Indicates a potential increase or decrease in sustainability.", + "Indicates a potential increase or decrease in reliability." ], "type": "string" }, @@ -1223,15 +1735,23 @@ "$ref": "GoogleCloudRecommenderV1CostProjection", "description": "Use with CategoryType.COST" }, + "reliabilityProjection": { + "$ref": "GoogleCloudRecommenderV1ReliabilityProjection", + "description": "Use with CategoryType.RELAIBILITY" + }, "securityProjection": { "$ref": "GoogleCloudRecommenderV1SecurityProjection", "description": "Use with CategoryType.SECURITY" + }, + "sustainabilityProjection": { + "$ref": "GoogleCloudRecommenderV1SustainabilityProjection", + "description": "Use with CategoryType.SUSTAINABILITY" } }, "type": "object" }, "GoogleCloudRecommenderV1Insight": { - "description": "An insight along with the information used to derive the insight. The insight may have associated recomendations as well.", + "description": "An insight along with the information used to derive the insight. The insight may have associated recommendations as well.", "id": "GoogleCloudRecommenderV1Insight", "properties": { "associatedRecommendations": { @@ -1248,14 +1768,18 @@ "COST", "SECURITY", "PERFORMANCE", - "MANAGEABILITY" + "MANAGEABILITY", + "SUSTAINABILITY", + "RELIABILITY" ], "enumDescriptions": [ "Unspecified category.", "The insight is related to cost.", "The insight is related to security.", "The insight is related to performance.", - "This insight is related to manageability." + "This insight is related to manageability.", + "The insight is related to sustainability.", + "This insight is related to reliability." ], "type": "string" }, @@ -1366,6 +1890,61 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1InsightTypeConfig": { + "description": "Configuration for an InsightType.", + "id": "GoogleCloudRecommenderV1InsightTypeConfig", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.", + "type": "object" + }, + "displayName": { + "description": "A user-settable field to provide a human-readable name to be used in user interfaces.", + "type": "string" + }, + "etag": { + "description": "Fingerprint of the InsightTypeConfig. Provides optimistic locking when updating.", + "type": "string" + }, + "insightTypeGenerationConfig": { + "$ref": "GoogleCloudRecommenderV1InsightTypeGenerationConfig", + "description": "InsightTypeGenerationConfig which configures the generation of insights for this insight type." + }, + "name": { + "description": "Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", + "type": "string" + }, + "revisionId": { + "description": "Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Last time when the config was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecommenderV1InsightTypeGenerationConfig": { + "description": "A configuration to customize the generation of insights. Eg, customizing the lookback period considered when generating a insight.", + "id": "GoogleCloudRecommenderV1InsightTypeGenerationConfig", + "properties": { + "params": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Parameters for this InsightTypeGenerationConfig. These configs can be used by or are applied to all subtypes.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1ListInsightsResponse": { "description": "Response to the `ListInsights` method.", "id": "GoogleCloudRecommenderV1ListInsightsResponse", @@ -1438,6 +2017,17 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest": { + "description": "Request for the `MarkRecommendationDismissed` Method.", + "id": "GoogleCloudRecommenderV1MarkRecommendationDismissedRequest", + "properties": { + "etag": { + "description": "Fingerprint of the Recommendation. Provides optimistic locking.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1MarkRecommendationFailedRequest": { "description": "Request for the `MarkRecommendationFailed` Method.", "id": "GoogleCloudRecommenderV1MarkRecommendationFailedRequest", @@ -1684,6 +2274,95 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1RecommenderConfig": { + "description": "Configuration for a Recommender.", + "id": "GoogleCloudRecommenderV1RecommenderConfig", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.", + "type": "object" + }, + "displayName": { + "description": "A user-settable field to provide a human-readable name to be used in user interfaces.", + "type": "string" + }, + "etag": { + "description": "Fingerprint of the RecommenderConfig. Provides optimistic locking when updating.", + "type": "string" + }, + "name": { + "description": "Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", + "type": "string" + }, + "recommenderGenerationConfig": { + "$ref": "GoogleCloudRecommenderV1RecommenderGenerationConfig", + "description": "RecommenderGenerationConfig which configures the Generation of recommendations for this recommender." + }, + "revisionId": { + "description": "Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Last time when the config was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRecommenderV1RecommenderGenerationConfig": { + "description": "A Configuration to customize the generation of recommendations. Eg, customizing the lookback period considered when generating a recommendation.", + "id": "GoogleCloudRecommenderV1RecommenderGenerationConfig", + "properties": { + "params": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Parameters for this RecommenderGenerationConfig. These configs can be used by or are applied to all subtypes.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudRecommenderV1ReliabilityProjection": { + "description": "Contains information on the impact of a reliability recommendation.", + "id": "GoogleCloudRecommenderV1ReliabilityProjection", + "properties": { + "details": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Per-recommender projection.", + "type": "object" + }, + "risks": { + "description": "Reliability risks mitigated by this recommendation.", + "items": { + "enum": [ + "RISK_TYPE_UNSPECIFIED", + "SERVICE_DISRUPTION", + "DATA_LOSS", + "ACCESS_DENY" + ], + "enumDescriptions": [ + "Default unspecified risk. Don't use directly.", + "Potential service downtime.", + "Potential data loss.", + "Potential access denial. The service is still up but some or all clients can't access it." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1SecurityProjection": { "description": "Contains various ways of describing the impact on Security.", "id": "GoogleCloudRecommenderV1SecurityProjection", @@ -1699,6 +2378,23 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1SustainabilityProjection": { + "description": "Contains metadata about how much sustainability a recommendation can save or incur.", + "id": "GoogleCloudRecommenderV1SustainabilityProjection", + "properties": { + "duration": { + "description": "Duration for which this sustainability applies.", + "format": "google-duration", + "type": "string" + }, + "kgCO2e": { + "description": "Carbon Footprint generated in kg of CO2 equivalent. Chose kg_c_o2e so that the name renders correctly in camelCase (kgCO2e).", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1ValueMatcher": { "description": "Contains various matching options for values for a GCP resource field.", "id": "GoogleCloudRecommenderV1ValueMatcher", diff --git a/etc/api/recommender/v1beta1/recommender-api.json b/etc/api/recommender/v1beta1/recommender-api.json index 93d3f2e0b5..a5945fc8bc 100644 --- a/etc/api/recommender/v1beta1/recommender-api.json +++ b/etc/api/recommender/v1beta1/recommender-api.json @@ -110,6 +110,72 @@ "locations": { "resources": { "insightTypes": { + "methods": { + "getConfig": { + "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "GET", + "id": "recommender.billingAccounts.locations.insightTypes.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "PATCH", + "id": "recommender.billingAccounts.locations.insightTypes.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1InsightTypeConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "insights": { "methods": { @@ -212,6 +278,72 @@ } }, "recommenders": { + "methods": { + "getConfig": { + "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "GET", + "id": "recommender.billingAccounts.locations.recommenders.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { + "description": "Updates a Recommender Config. This will create a new revision of the config.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "PATCH", + "id": "recommender.billingAccounts.locations.recommenders.updateConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, validate the request and preview the change, but do not actually update it.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1RecommenderConfig" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "recommendations": { "methods": { @@ -309,6 +441,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.billingAccounts.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1beta1/billingAccounts/{billingAccountsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -577,6 +737,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1beta1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.folders.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1beta1/folders/{foldersId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -647,11 +835,36 @@ "resources": { "insightTypes": { "methods": { - "config": { + "getConfig": { + "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", + "httpMethod": "GET", + "id": "recommender.organizations.locations.insightTypes.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1InsightTypeConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { "description": "Updates an InsightTypeConfig change. This will create a new revision of the config.", "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", - "httpMethod": "POST", - "id": "recommender.organizations.locations.insightTypes.config", + "httpMethod": "PATCH", + "id": "recommender.organizations.locations.insightTypes.updateConfig", "parameterOrder": [ "name" ], @@ -685,31 +898,6 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "getConfig": { - "description": "Gets the requested InsightTypeConfig. There is only one instance of the config for each InsightType.", - "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/insightTypes/{insightTypesId}/config", - "httpMethod": "GET", - "id": "recommender.organizations.locations.insightTypes.getConfig", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`", - "location": "path", - "pattern": "^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "GoogleCloudRecommenderV1beta1InsightTypeConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] } }, "resources": { @@ -815,11 +1003,36 @@ }, "recommenders": { "methods": { - "config": { + "getConfig": { + "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", + "httpMethod": "GET", + "id": "recommender.organizations.locations.recommenders.getConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "GoogleCloudRecommenderV1beta1RecommenderConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateConfig": { "description": "Updates a Recommender Config. This will create a new revision of the config.", "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", - "httpMethod": "POST", - "id": "recommender.organizations.locations.recommenders.config", + "httpMethod": "PATCH", + "id": "recommender.organizations.locations.recommenders.updateConfig", "parameterOrder": [ "name" ], @@ -853,31 +1066,6 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "getConfig": { - "description": "Gets the requested Recommender Config. There is only one instance of the config for each Recommender.", - "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/config", - "httpMethod": "GET", - "id": "recommender.organizations.locations.recommenders.getConfig", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", - "location": "path", - "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", - "required": true, - "type": "string" - } - }, - "path": "v1beta1/{+name}", - "response": { - "$ref": "GoogleCloudRecommenderV1beta1RecommenderConfig" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] } }, "resources": { @@ -977,6 +1165,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.organizations.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1beta1/organizations/{organizationsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -1057,7 +1273,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`", + "description": "Required. Name of the InsightTypeConfig to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/insightTypes/[^/]+/config$", "required": true, @@ -1225,7 +1441,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", + "description": "Required. Name of the Recommendation Config to get. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/config$", "required": true, @@ -1377,6 +1593,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "markDismissed": { + "description": "Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markDismissed", + "httpMethod": "POST", + "id": "recommender.projects.locations.recommenders.recommendations.markDismissed", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Name of the recommendation.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:markDismissed", + "request": { + "$ref": "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest" + }, + "response": { + "$ref": "GoogleCloudRecommenderV1beta1Recommendation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "markFailed": { "description": "Marks the Recommendation State as Failed. Users can use this method to indicate to the Recommender API that they have applied the recommendation themselves, and the operation failed. This stops the recommendation content from being updated. Associated insights are frozen and placed in the ACCEPTED state. MarkRecommendationFailed can be applied to recommendations in ACTIVE, CLAIMED, SUCCEEDED, or FAILED state. Requires the recommender.*.update IAM permission for the specified recommender.", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/recommenders/{recommendersId}/recommendations/{recommendationsId}:markFailed", @@ -1442,7 +1686,7 @@ } } }, - "revision": "20220228", + "revision": "20230108", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1beta1CostProjection": { @@ -1473,7 +1717,8 @@ "SECURITY", "PERFORMANCE", "MANAGEABILITY", - "SUSTAINABILITY" + "SUSTAINABILITY", + "RELIABILITY" ], "enumDescriptions": [ "Default unspecified category. Don't use directly.", @@ -1481,7 +1726,8 @@ "Indicates a potential increase or decrease in security.", "Indicates a potential increase or decrease in performance.", "Indicates a potential increase or decrease in manageability.", - "Indicates a potential increase or decrease in sustainability." + "Indicates a potential increase or decrease in sustainability.", + "Indicates a potential increase or decrease in reliability." ], "type": "string" }, @@ -1489,6 +1735,10 @@ "$ref": "GoogleCloudRecommenderV1beta1CostProjection", "description": "Use with CategoryType.COST" }, + "reliabilityProjection": { + "$ref": "GoogleCloudRecommenderV1beta1ReliabilityProjection", + "description": "Use with CategoryType.RELIABILITY" + }, "securityProjection": { "$ref": "GoogleCloudRecommenderV1beta1SecurityProjection", "description": "Use with CategoryType.SECURITY" @@ -1501,7 +1751,7 @@ "type": "object" }, "GoogleCloudRecommenderV1beta1Insight": { - "description": "An insight along with the information used to derive the insight. The insight may have associated recomendations as well.", + "description": "An insight along with the information used to derive the insight. The insight may have associated recommendations as well.", "id": "GoogleCloudRecommenderV1beta1Insight", "properties": { "associatedRecommendations": { @@ -1518,14 +1768,18 @@ "COST", "SECURITY", "PERFORMANCE", - "MANAGEABILITY" + "MANAGEABILITY", + "SUSTAINABILITY", + "RELIABILITY" ], "enumDescriptions": [ "Unspecified category.", "The insight is related to cost.", "The insight is related to security.", "The insight is related to performance.", - "This insight is related to manageability." + "This insight is related to manageability.", + "The insight is related to sustainability.", + "The insight is related to reliability." ], "type": "string" }, @@ -1763,6 +2017,17 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest": { + "description": "Request for the `MarkRecommendationDismissed` Method.", + "id": "GoogleCloudRecommenderV1beta1MarkRecommendationDismissedRequest", + "properties": { + "etag": { + "description": "Fingerprint of the Recommendation. Provides optimistic locking.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1beta1MarkRecommendationFailedRequest": { "description": "Request for the `MarkRecommendationFailed` Method.", "id": "GoogleCloudRecommenderV1beta1MarkRecommendationFailedRequest", @@ -2064,6 +2329,40 @@ }, "type": "object" }, + "GoogleCloudRecommenderV1beta1ReliabilityProjection": { + "description": "Contains information on the impact of a reliability recommendation.", + "id": "GoogleCloudRecommenderV1beta1ReliabilityProjection", + "properties": { + "details": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Per-recommender projection.", + "type": "object" + }, + "risks": { + "description": "Reliability risks mitigated by this recommendation.", + "items": { + "enum": [ + "RISK_TYPE_UNSPECIFIED", + "SERVICE_DISRUPTION", + "DATA_LOSS", + "ACCESS_DENY" + ], + "enumDescriptions": [ + "Default unspecified risk. Don't use directly.", + "Potential service downtime.", + "Potential data loss.", + "Potential access denial. The service is still up but some or all clients can't access it." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRecommenderV1beta1SecurityProjection": { "description": "Contains various ways of describing the impact on Security.", "id": "GoogleCloudRecommenderV1beta1SecurityProjection", diff --git a/etc/api/redis/v1/redis-api.json b/etc/api/redis/v1/redis-api.json index f0e9919b28..6a6fa33e44 100644 --- a/etc/api/redis/v1/redis-api.json +++ b/etc/api/redis/v1/redis-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -624,11 +624,11 @@ } } }, - "revision": "20220301", + "revision": "20230111", "rootUrl": "https://redis.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -808,6 +808,10 @@ "readOnly": true, "type": "string" }, + "customerManagedKey": { + "description": "Optional. The KMS key reference that the customer provides when trying to create the instance.", + "type": "string" + }, "displayName": { "description": "An arbitrary and optional user-provided name for the instance.", "type": "string" @@ -958,6 +962,21 @@ "readOnly": true, "type": "string" }, + "suspensionReasons": { + "description": "Optional. reasons that causes instance in \"SUSPENDED\" state.", + "items": { + "enum": [ + "SUSPENSION_REASON_UNSPECIFIED", + "CUSTOMER_MANAGED_KEY_ISSUE" + ], + "enumDescriptions": [ + "Not set.", + "Something wrong with the CMEK key provided by customer." + ], + "type": "string" + }, + "type": "array" + }, "tier": { "description": "Required. The service tier of the instance.", "enum": [ @@ -1255,7 +1274,7 @@ "Snapshot every 1 hour.", "Snapshot every 6 hours.", "Snapshot every 12 hours.", - "Snapshot every 24 horus." + "Snapshot every 24 hours." ], "type": "string" }, @@ -1267,6 +1286,31 @@ }, "type": "object" }, + "ReconciliationOperationMetadata": { + "description": "Operation metadata returned by the CLH during resource state reconciliation.", + "id": "ReconciliationOperationMetadata", + "properties": { + "deleteResource": { + "description": "DEPRECATED. Use exclusive_action instead.", + "type": "boolean" + }, + "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", + "enum": [ + "UNKNOWN_REPAIR_ACTION", + "DELETE", + "RETRY" + ], + "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", + "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." + ], + "type": "string" + } + }, + "type": "object" + }, "RescheduleMaintenanceRequest": { "description": "Request for RescheduleMaintenance.", "id": "RescheduleMaintenanceRequest", diff --git a/etc/api/redis/v1beta1/redis-api.json b/etc/api/redis/v1beta1/redis-api.json index c04a2efb7f..81203e734b 100644 --- a/etc/api/redis/v1beta1/redis-api.json +++ b/etc/api/redis/v1beta1/redis-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -624,11 +624,11 @@ } } }, - "revision": "20220301", + "revision": "20230111", "rootUrl": "https://redis.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -790,6 +790,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": [ @@ -815,6 +822,10 @@ "readOnly": true, "type": "string" }, + "customerManagedKey": { + "description": "Optional. The KMS key reference that the customer provides when trying to create the instance.", + "type": "string" + }, "displayName": { "description": "An arbitrary and optional user-provided name for the instance.", "type": "string" @@ -844,6 +855,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", @@ -965,6 +980,21 @@ "readOnly": true, "type": "string" }, + "suspensionReasons": { + "description": "Optional. reasons that causes instance in \"SUSPENDED\" state.", + "items": { + "enum": [ + "SUSPENSION_REASON_UNSPECIFIED", + "CUSTOMER_MANAGED_KEY_ISSUE" + ], + "enumDescriptions": [ + "Not set.", + "Something wrong with the CMEK key provided by customer." + ], + "type": "string" + }, + "type": "array" + }, "tier": { "description": "Required. The service tier of the instance.", "enum": [ @@ -1262,7 +1292,7 @@ "Snapshot every 1 hour.", "Snapshot every 6 hours.", "Snapshot every 12 hours.", - "Snapshot every 24 horus." + "Snapshot every 24 hours." ], "type": "string" }, @@ -1274,6 +1304,31 @@ }, "type": "object" }, + "ReconciliationOperationMetadata": { + "description": "Operation metadata returned by the CLH during resource state reconciliation.", + "id": "ReconciliationOperationMetadata", + "properties": { + "deleteResource": { + "description": "DEPRECATED. Use exclusive_action instead.", + "type": "boolean" + }, + "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", + "enum": [ + "UNKNOWN_REPAIR_ACTION", + "DELETE", + "RETRY" + ], + "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", + "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." + ], + "type": "string" + } + }, + "type": "object" + }, "RescheduleMaintenanceRequest": { "description": "Request for RescheduleMaintenance.", "id": "RescheduleMaintenanceRequest", diff --git a/etc/api/reseller/v1/reseller-api.json b/etc/api/reseller/v1/reseller-api.json index 93a6fb47ac..7e0f54da11 100644 --- a/etc/api/reseller/v1/reseller-api.json +++ b/etc/api/reseller/v1/reseller-api.json @@ -631,7 +631,7 @@ } } }, - "revision": "20220301", + "revision": "20230122", "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 37d69547c2..df2db252cc 100644 --- a/etc/api/resourcesettings/v1/resourcesettings-api.json +++ b/etc/api/resourcesettings/v1/resourcesettings-api.json @@ -499,7 +499,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "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 68fdc77e3f..7985fd4169 100644 --- a/etc/api/retail/v2/retail-api.json +++ b/etc/api/retail/v2/retail-api.json @@ -112,7 +112,7 @@ "catalogs": { "methods": { "completeQuery": { - "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.completeQuery", @@ -128,17 +128,17 @@ "type": "string" }, "dataset": { - "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option requires additional allowlisting. Before using cloud-retail, contact Cloud Retail support team first.", + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail: This option requires enabling auto-learning function first. See [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset).", "location": "query", "type": "string" }, "deviceType": { - "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", + "description": "The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", "location": "query", "type": "string" }, "languageCodes": { - "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "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", "repeated": true, "type": "string" @@ -155,7 +155,7 @@ "type": "string" }, "visitorId": { - "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Required field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "location": "query", "type": "string" } @@ -168,6 +168,56 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getAttributesConfig": { + "description": "Gets an AttributesConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getAttributesConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getCompletionConfig": { + "description": "Gets a CompletionConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full CompletionConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2CompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getDefaultBranch": { "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", @@ -290,9 +340,165 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateAttributesConfig": { + "description": "Updates the AttributesConfig. The catalog attributes in the request will be updated in the catalog, or inserted if they do not exist. Existing catalog attributes not included in the request will remain unchanged. Attributes that are assigned to products, but do not exist at the catalog level, are always included in the response. The product attribute is assigned default values for missing catalog attribute fields, e.g., searchable and dynamic facetable options.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.updateAttributesConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided AttributesConfig to update. The following is the only supported field: * AttributesConfig.catalog_attributes If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateCompletionConfig": { + "description": "Updates the CompletionConfigs.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.updateCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided CompletionConfig to update. The following are the only supported fields: * CompletionConfig.matching_order * CompletionConfig.max_suggestions * CompletionConfig.min_prefix_length * CompletionConfig.auto_learning If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2CompletionConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2CompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { + "attributesConfig": { + "methods": { + "addCatalogAttribute": { + "description": "Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists, an ALREADY_EXISTS error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:addCatalogAttribute", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.attributesConfig.addCatalogAttribute", + "parameterOrder": [ + "attributesConfig" + ], + "parameters": { + "attributesConfig": { + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+attributesConfig}:addCatalogAttribute", + "request": { + "$ref": "GoogleCloudRetailV2AddCatalogAttributeRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeCatalogAttribute": { + "description": "Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:removeCatalogAttribute", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.attributesConfig.removeCatalogAttribute", + "parameterOrder": [ + "attributesConfig" + ], + "parameters": { + "attributesConfig": { + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+attributesConfig}:removeCatalogAttribute", + "request": { + "$ref": "GoogleCloudRetailV2RemoveCatalogAttributeRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "replaceCatalogAttribute": { + "description": "Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key. If the CatalogAttribute to replace does not exist, a NOT_FOUND error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:replaceCatalogAttribute", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.attributesConfig.replaceCatalogAttribute", + "parameterOrder": [ + "attributesConfig" + ], + "parameters": { + "attributesConfig": { + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+attributesConfig}:replaceCatalogAttribute", + "request": { + "$ref": "GoogleCloudRetailV2ReplaceCatalogAttributeRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2AttributesConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "branches": { "resources": { "operations": { @@ -327,7 +533,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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -354,6 +560,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "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 access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+product}:addLocalInventories", + "request": { + "$ref": "GoogleCloudRetailV2AddLocalInventoriesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Product.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", @@ -438,7 +672,7 @@ ] }, "import": { - "description": "Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", + "description": "Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.import", @@ -534,7 +768,7 @@ "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. The attribute key can be updated by setting the mask path as \"attributes.${key_name}\". If a key name is present in the mask but not in the patching product from the request, this key will be deleted after the update.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -552,7 +786,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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -579,8 +813,36 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "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 access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+product}:removeLocalInventories", + "request": { + "$ref": "GoogleCloudRetailV2RemoveLocalInventoriesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "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 will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -614,7 +876,7 @@ "completionData": { "methods": { "import": { - "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not supported. The operation is successfully finished only after the imported suggestions are indexed successfully and ready for serving. The process takes hours. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.completionData.import", @@ -643,6 +905,168 @@ } } }, + "controls": { + "methods": { + "create": { + "description": "Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.controls.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "controlId": { + "description": "Required. The ID to use for the Control, which will become the final component of the Control's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/controls", + "request": { + "$ref": "GoogleCloudRetailV2Control" + }, + "response": { + "$ref": "GoogleCloudRetailV2Control" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Control. If the Control to delete does not exist, a NOT_FOUND error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", + "httpMethod": "DELETE", + "id": "retail.projects.locations.catalogs.controls.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a Control.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.controls.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2Control" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Controls by their parent Catalog.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.controls.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List controls that are used in a single ServingConfig: 'serving_config = \"boosted_home_page_cvr\"'", + "location": "query", + "type": "string" + }, + "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 `ListControls` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/controls", + "response": { + "$ref": "GoogleCloudRetailV2ListControlsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.controls.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided Control to update. The following are NOT supported: * Control.name If not set or empty, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2Control" + }, + "response": { + "$ref": "GoogleCloudRetailV2Control" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -725,7 +1149,7 @@ ], "parameters": { "placement": { - "description": "Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements", + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -744,7 +1168,7 @@ ] }, "search": { - "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.placements.search", @@ -753,7 +1177,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving configuration name and the set of models that will be used to make the search.", + "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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -773,6 +1197,275 @@ } } }, + "servingConfigs": { + "methods": { + "addControl": { + "description": "Enables a Control on the specified ServingConfig. The control is added in the last position of the list of controls it belongs to (e.g. if it's a facet spec control it will be applied in the last position of servingConfig.facetSpecIds) Returns a ALREADY_EXISTS error if the control has already been applied. Returns a FAILED_PRECONDITION error if the addition could exceed maximum number of control allowed for that type of control.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:addControl", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.addControl", + "parameterOrder": [ + "servingConfig" + ], + "parameters": { + "servingConfig": { + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+servingConfig}:addControl", + "request": { + "$ref": "GoogleCloudRetailV2AddControlRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a ServingConfig. A maximum of 100 ServingConfigs are allowed in a Catalog, otherwise a FAILED_PRECONDITION error is returned.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + }, + "servingConfigId": { + "description": "Required. The ID to use for the ServingConfig, which will become the final component of the ServingConfig's resource name. This value should be 4-63 characters, and valid characters are /a-z-_/.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/servingConfigs", + "request": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", + "httpMethod": "DELETE", + "id": "retail.projects.locations.catalogs.servingConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the ServingConfig to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.servingConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the ServingConfig to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all ServingConfigs linked to this catalog.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.servingConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of results to return. If unspecified, defaults to 100. If a value greater than 100 is provided, at most 100 results are returned.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListServingConfigs` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/servingConfigs", + "response": { + "$ref": "GoogleCloudRetailV2ListServingConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a ServingConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.servingConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided ServingConfig to update. The following are NOT supported: * ServingConfig.name If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "predict": { + "description": "Makes a recommendation prediction.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:predict", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.predict", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+placement}:predict", + "request": { + "$ref": "GoogleCloudRetailV2PredictRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2PredictResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "removeControl": { + "description": "Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a NOT_FOUND error if the Control is not enabled for the ServingConfig.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:removeControl", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.removeControl", + "parameterOrder": [ + "servingConfig" + ], + "parameters": { + "servingConfig": { + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+servingConfig}:removeControl", + "request": { + "$ref": "GoogleCloudRetailV2RemoveControlRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.search", + "parameterOrder": [ + "placement" + ], + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2SearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2SearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "userEvents": { "methods": { "collect": { @@ -797,6 +1490,16 @@ "required": true, "type": "string" }, + "prebuiltRule": { + "description": "The prebuilt rule name that can convert a specific type of raw_json. For example: \"ga4_bq\" rule for the GA4 user event schema.", + "location": "query", + "type": "string" + }, + "rawJson": { + "description": "An arbitrary serialized JSON string that contains necessary information that can comprise a user event. When this field is specified, the user_event field will be ignored. Note: line-delimited JSON is not supported, a single JSON only.", + "location": "query", + "type": "string" + }, "uri": { "description": "The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.", "location": "query", @@ -817,7 +1520,7 @@ ] }, "import": { - "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.", + "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. `Operation.response` is of type `ImportResponse`. Note that it is possible for a subset of the items to be successfully inserted. `Operation.metadata` is of type `ImportMetadata`.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.import", @@ -873,7 +1576,7 @@ ] }, "rejoin": { - "description": "Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.", + "description": "Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed product information for products that are missing from the catalog when the user event is ingested. These events are stored as unjoined events with limited usage on training and serving. You can use this method to start a join operation on specified events with the latest version of product catalog. You can also use this method to correct events joined with the wrong product catalog. A rejoin operation can take hours or days to complete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:rejoin", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.rejoin", @@ -915,6 +1618,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, "type": "string" + }, + "writeAsync": { + "description": "If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write. Therefore, silent failures can occur even if the API returns success. In case of silent failures, error messages can be found in Stackdriver logs.", + "location": "query", + "type": "boolean" } }, "path": "v2/{+parent}/userEvents:write", @@ -1077,7 +1785,7 @@ } } }, - "revision": "20220224", + "revision": "20230117", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -1178,7 +1886,7 @@ "type": "object" }, "GoogleCloudRetailLoggingImportErrorContext": { - "description": "The error payload that is populated on LRO import APIs. Including: \"google.cloud.retail.v2.ProductService.ImportProducts\" \"google.cloud.retail.v2.EventService.ImportUserEvents\"", + "description": "The error payload that is populated on LRO import APIs, including \"google.cloud.retail.v2.ProductService.ImportProducts\" and \"google.cloud.retail.v2.EventService.ImportUserEvents\".", "id": "GoogleCloudRetailLoggingImportErrorContext", "properties": { "catalogItem": { @@ -1230,14 +1938,36 @@ }, "type": "object" }, + "GoogleCloudRetailV2AddCatalogAttributeRequest": { + "description": "Request for CatalogService.AddCatalogAttribute method.", + "id": "GoogleCloudRetailV2AddCatalogAttributeRequest", + "properties": { + "catalogAttribute": { + "$ref": "GoogleCloudRetailV2CatalogAttribute", + "description": "Required. The CatalogAttribute to add." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2AddControlRequest": { + "description": "Request for AddControl method.", + "id": "GoogleCloudRetailV2AddControlRequest", + "properties": { + "controlId": { + "description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config - if id is not found a NOT_FOUND error is returned.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesRequest": { - "description": "Request message for AddFulfillmentPlaces method.", + "description": "Request message for ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesRequest", "properties": { "addTime": { @@ -1264,11 +1994,84 @@ "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2AddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddLocalInventoriesRequest": { + "description": "Request message for ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesRequest", + "properties": { + "addMask": { + "description": "Indicates which inventory fields in the provided list of LocalInventory to update. The field is updated to the provided value. If a field is set while the place does not have a previous local inventory, the local inventory at that store is created. If a field is set while the value of that field is not provided, the original field value, if it exists, is deleted. If the mask is not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", + "format": "google-fieldmask", + "type": "string" + }, + "addTime": { + "description": "The time when the inventory updates are issued. Used to prevent out-of-order updates on local inventory fields. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "allowMissing": { + "description": "If set to true, and the Product is not found, the local inventory will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", + "type": "boolean" + }, + "localInventories": { + "description": "Required. A list of inventory information at difference places. Each place is identified by its place ID. At most 3000 inventories are allowed per request.", + "items": { + "$ref": "GoogleCloudRetailV2LocalInventory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2AddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AttributesConfig": { + "description": "Catalog level attribute config.", + "id": "GoogleCloudRetailV2AttributesConfig", + "properties": { + "attributeConfigLevel": { + "description": "Output only. The AttributeConfigLevel used for this catalog.", + "enum": [ + "ATTRIBUTE_CONFIG_LEVEL_UNSPECIFIED", + "PRODUCT_LEVEL_ATTRIBUTE_CONFIG", + "CATALOG_LEVEL_ATTRIBUTE_CONFIG" + ], + "enumDescriptions": [ + "Value used when unset. In this case, server behavior defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", + "At this level, we honor the attribute configurations set in Product.attributes.", + "At this level, we honor the attribute configurations set in CatalogConfig.attribute_configs." + ], + "readOnly": true, + "type": "string" + }, + "catalogAttributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2CatalogAttribute" + }, + "description": "Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute's name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.", + "type": "object" + }, + "name": { + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2Audience": { "description": "An intended audience of the Product for whom it's sold.", "id": "GoogleCloudRetailV2Audience", @@ -1295,7 +2098,7 @@ "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`: This feature is in private preview. Please contact the support team for importing Google Analytics 4 events. The schema is available here: https://support.google.com/analytics/answer/7029846.", + "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.", "type": "string" }, "datasetId": { @@ -1308,7 +2111,7 @@ }, "partitionDate": { "$ref": "GoogleTypeDate", - "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported in ImportProductsRequest." }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", @@ -1340,6 +2143,107 @@ }, "type": "object" }, + "GoogleCloudRetailV2CatalogAttribute": { + "description": "Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.", + "id": "GoogleCloudRetailV2CatalogAttribute", + "properties": { + "dynamicFacetableOption": { + "description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.", + "enum": [ + "DYNAMIC_FACETABLE_OPTION_UNSPECIFIED", + "DYNAMIC_FACETABLE_ENABLED", + "DYNAMIC_FACETABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Dynamic facetable option enabled for an attribute.", + "Dynamic facetable option disabled for an attribute." + ], + "type": "string" + }, + "exactSearchableOption": { + "description": "If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.", + "enum": [ + "EXACT_SEARCHABLE_OPTION_UNSPECIFIED", + "EXACT_SEARCHABLE_ENABLED", + "EXACT_SEARCHABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Exact searchable option enabled for an attribute.", + "Exact searchable option disabled for an attribute." + ], + "type": "string" + }, + "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.", + "enum": [ + "INDEXABLE_OPTION_UNSPECIFIED", + "INDEXABLE_ENABLED", + "INDEXABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Indexable option enabled for an attribute.", + "Indexable option disabled for an attribute." + ], + "type": "string" + }, + "key": { + "description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.", + "type": "string" + }, + "retrievableOption": { + "description": "If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.", + "enum": [ + "RETRIEVABLE_OPTION_UNSPECIFIED", + "RETRIEVABLE_ENABLED", + "RETRIEVABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Retrievable option enabled for an attribute.", + "Retrievable option disabled for an attribute." + ], + "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.", + "enum": [ + "SEARCHABLE_OPTION_UNSPECIFIED", + "SEARCHABLE_ENABLED", + "SEARCHABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Searchable option enabled for an attribute.", + "Searchable option disabled for an attribute." + ], + "type": "string" + }, + "type": { + "description": "Output only. The type of this attribute. This is derived from the attribute in Product.attributes.", + "enum": [ + "UNKNOWN", + "TEXTUAL", + "NUMERICAL" + ], + "enumDescriptions": [ + "The type of the attribute is unknown. Used when type cannot be derived from attribute that is not in_use.", + "Textual attribute.", + "Numerical attribute." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ColorInfo": { "description": "The color information of a Product.", "id": "GoogleCloudRetailV2ColorInfo", @@ -1352,7 +2256,7 @@ "type": "array" }, "colors": { - "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 25 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", "items": { "type": "string" }, @@ -1366,7 +2270,7 @@ "id": "GoogleCloudRetailV2CompleteQueryResponse", "properties": { "attributionToken": { - "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "description": "A unique complete token. This should be included in the UserEvent.completion_detail for search events resulting from this completion, which enables accurate attribution of complete model performance.", "type": "string" }, "completionResults": { @@ -1377,7 +2281,7 @@ "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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "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.", "items": { "$ref": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult" }, @@ -1394,7 +2298,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2CustomAttribute" }, - "description": "Additional custom attributes ingested through BigQuery.", + "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" }, "suggestion": { @@ -1415,6 +2319,65 @@ }, "type": "object" }, + "GoogleCloudRetailV2CompletionConfig": { + "description": "Catalog level autocomplete config for customers to customize autocomplete feature's settings.", + "id": "GoogleCloudRetailV2CompletionConfig", + "properties": { + "allowlistInputConfig": { + "$ref": "GoogleCloudRetailV2CompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete allowlist phrases.", + "readOnly": true + }, + "autoLearning": { + "description": "If set to true, the auto learning function is enabled. Auto learning uses user data to generate suggestions using ML techniques. Default value is false. Only after enabling auto learning can users use `cloud-retail` data in CompleteQueryRequest.", + "type": "boolean" + }, + "denylistInputConfig": { + "$ref": "GoogleCloudRetailV2CompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete denylist phrases.", + "readOnly": true + }, + "lastAllowlistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest allowlist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "type": "string" + }, + "lastDenylistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest denylist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "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.", + "readOnly": true, + "type": "string" + }, + "matchingOrder": { + "description": "Specifies the matching order for autocomplete suggestions, e.g., a query consisting of 'sh' with 'out-of-order' specified would suggest \"women's shoes\", whereas a query of 'red s' with 'exact-prefix' specified would suggest \"red shoes\". Currently supported values: * 'out-of-order' * 'exact-prefix' Default value: 'exact-prefix'.", + "type": "string" + }, + "maxSuggestions": { + "description": "The maximum number of autocomplete suggestions returned per term. Default value is 20. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "minPrefixLength": { + "description": "The minimum number of characters needed to be typed in order to get suggestions. Default value is 2. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "type": "string" + }, + "suggestionsInputConfig": { + "$ref": "GoogleCloudRetailV2CompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete suggestion phrases.", + "readOnly": true + } + }, + "type": "object" + }, "GoogleCloudRetailV2CompletionDataInputConfig": { "description": "The input config source for completion data.", "id": "GoogleCloudRetailV2CompletionDataInputConfig", @@ -1446,12 +2409,126 @@ }, "type": "object" }, + "GoogleCloudRetailV2Condition": { + "description": "Metadata that is used to define a condition that triggers an action. A valid condition must specify at least one of 'query_terms' or 'products_filter'. If multiple fields are specified, the condition is met if all the fields are satisfied e.g. if a set of query terms and product_filter are set, then only items matching the product_filter for requests with a query matching the query terms wil get boosted.", + "id": "GoogleCloudRetailV2Condition", + "properties": { + "activeTimeRange": { + "description": "Range of time(s) specifying when Condition is active. Condition true if any time range matches.", + "items": { + "$ref": "GoogleCloudRetailV2ConditionTimeRange" + }, + "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": { + "$ref": "GoogleCloudRetailV2ConditionQueryTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ConditionQueryTerm": { + "description": "Query terms that we want to match on.", + "id": "GoogleCloudRetailV2ConditionQueryTerm", + "properties": { + "fullMatch": { + "description": "Whether this is supposed to be a full or partial match.", + "type": "boolean" + }, + "value": { + "description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, \"a b c\" is 3 terms and allowed, but \" a b c d\" is 4 terms and not allowed for a partial match.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ConditionTimeRange": { + "description": "Used for time-dependent conditions. Example: Want to have rule applied for week long sale.", + "id": "GoogleCloudRetailV2ConditionTimeRange", + "properties": { + "endTime": { + "description": "End of time range. Range is inclusive.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time range. Range is inclusive.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2Control": { + "description": "Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.", + "id": "GoogleCloudRetailV2Control", + "properties": { + "associatedServingConfigIds": { + "description": "Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Required. The human readable control display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is thrown.", + "type": "string" + }, + "name": { + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", + "type": "string" + }, + "rule": { + "$ref": "GoogleCloudRetailV2Rule", + "description": "A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost \"gShoe\" when query full matches \"Running Shoes\"." + }, + "searchSolutionUseCase": { + "description": "Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.", + "items": { + "enum": [ + "SEARCH_SOLUTION_USE_CASE_UNSPECIFIED", + "SEARCH_SOLUTION_USE_CASE_SEARCH", + "SEARCH_SOLUTION_USE_CASE_BROWSE" + ], + "enumDescriptions": [ + "The value when it's unspecified. In this case, server behavior defaults to SEARCH_SOLUTION_USE_CASE_SEARCH.", + "Search use case. Expects the traffic has a non-empty query.", + "Browse use case. Expects the traffic has an empty query." + ], + "type": "string" + }, + "type": "array" + }, + "solutionTypes": { + "description": "Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", + "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" + }, "GoogleCloudRetailV2CustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2CustomAttribute", "properties": { "indexable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are indexed, so that it 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.", + "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" }, "numbers": { @@ -1463,7 +2540,7 @@ "type": "array" }, "searchable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', 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.", + "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" }, "text": { @@ -1495,11 +2572,11 @@ "type": "object" }, "GoogleCloudRetailV2GcsSource": { - "description": "Google Cloud Storage location for input content. format.", + "description": "Google Cloud Storage location for input content.", "id": "GoogleCloudRetailV2GcsSource", "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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * 'control' (default): One JSON Control per line. Supported values for catalog attribute imports: * 'catalog_attribute' (default): One CSV CatalogAttribute 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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * `control` (default): One JSON Control per line. Supported values for catalog attribute imports: * `catalog_attribute` (default): One CSV CatalogAttribute per line.", "type": "string" }, "inputUris": { @@ -1533,7 +2610,7 @@ "type": "object" }, "GoogleCloudRetailV2Image": { - "description": "Product thumbnail/detail image.", + "description": "Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console.", "id": "GoogleCloudRetailV2Image", "properties": { "height": { @@ -1562,7 +2639,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" } }, @@ -1587,14 +2664,14 @@ "id": "GoogleCloudRetailV2ImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2ImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2ImportMetadata", "properties": { "createTime": { @@ -1608,11 +2685,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -1641,7 +2718,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "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.", "type": "string" }, "reconciliationMode": { @@ -1654,16 +2731,16 @@ "enumDescriptions": [ "Defaults to INCREMENTAL.", "Inserts new products or updates existing products.", - "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be set while using BigQuerySource. And the BigQuery dataset must be created in the data location \"us (multiple regions in United States)\", otherwise a PERMISSION_DENIED error is thrown. Add the IAM permission \"BigQuery Data Viewer\" for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search." + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location." ], "type": "string" }, "requestId": { - "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: `[a-zA-Z0-9_]+`. This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "description": "Deprecated. This field has no effect.", "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", + "description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated.", "format": "google-fieldmask", "type": "string" } @@ -1770,6 +2847,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2ListControlsResponse": { + "description": "Response for ListControls method.", + "id": "GoogleCloudRetailV2ListControlsResponse", + "properties": { + "controls": { + "description": "All the Controls for a given catalog.", + "items": { + "$ref": "GoogleCloudRetailV2Control" + }, + "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", @@ -1788,40 +2883,87 @@ }, "type": "object" }, + "GoogleCloudRetailV2ListServingConfigsResponse": { + "description": "Response for ListServingConfigs method.", + "id": "GoogleCloudRetailV2ListServingConfigsResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token, if not returned indicates the last page.", + "type": "string" + }, + "servingConfigs": { + "description": "All the ServingConfigs for a given catalog.", + "items": { + "$ref": "GoogleCloudRetailV2ServingConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2LocalInventory": { + "description": "The inventory information at a place (e.g. a store) identified by a place ID.", + "id": "GoogleCloudRetailV2LocalInventory", + "properties": { + "attributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2CustomAttribute" + }, + "description": "Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", + "type": "object" + }, + "fulfillmentTypes": { + "description": "Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "placeId": { + "description": "The place ID for the current set of inventory information.", + "type": "string" + }, + "priceInfo": { + "$ref": "GoogleCloudRetailV2PriceInfo", + "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." + } + }, + "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, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.", + "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\"))", "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. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", "type": "object" }, "pageSize": { - "description": "Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", + "description": "Maximum number of results to return. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", "format": "int32", "type": "integer" }, "pageToken": { - "description": "The previous PredictResponse.next_page_token.", + "description": "This field is not used; leave it unset.", "type": "string" }, "params": { "additionalProperties": { "type": "any" }, - "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of an product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category.", + "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of a product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category. * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` field is interpreteted according to the new, attribute-based syntax.", "type": "object" }, "userEvent": { "$ref": "GoogleCloudRetailV2UserEvent", - "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging." + "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserEvent.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserEvent.visitor_id to a random unique ID and leave UserInfo.user_id unset." }, "validateOnly": { "description": "Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.", @@ -1871,7 +3013,7 @@ "additionalProperties": { "type": "any" }, - "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.", + "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Is set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Is set if `returnScore` is set to true in `PredictRequest.params`.", "type": "object" } }, @@ -1891,7 +3033,7 @@ "type": "string" }, "originalPrice": { - "description": "Price of the product without any discount. If zero, by default set to be the price.", + "description": "Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown.", "format": "float", "type": "number" }, @@ -1972,7 +3114,7 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for SearchService.Search.", + "description": "The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.", "format": "google-datetime", "type": "string" }, @@ -1984,14 +3126,14 @@ "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, please 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. 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" }, "type": "array" }, "collectionMemberIds": { - "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", "items": { "type": "string" }, @@ -2013,7 +3155,7 @@ "type": "string" }, "expireTime": { - "description": "The timestamp when this product becomes unavailable for SearchService.Search. 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": "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).", "format": "google-datetime", "type": "string" }, @@ -2033,7 +3175,7 @@ "type": "string" }, "images": { - "description": "Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", + "description": "Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", "items": { "$ref": "GoogleCloudRetailV2Image" }, @@ -2043,6 +3185,14 @@ "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). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", "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.", + "items": { + "$ref": "GoogleCloudRetailV2LocalInventory" + }, + "readOnly": true, + "type": "array" + }, "materials": { "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", "items": { @@ -2086,7 +3236,7 @@ "description": "The rating of this product." }, "retrievableFields": { - "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 Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse may increase response payload size and serving latency.", + "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" }, @@ -2109,7 +3259,7 @@ "type": "string" }, "ttl": { - "description": "Input only. The TTL (time to live) of the product. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "description": "Input only. The TTL (time to live) of the product. 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, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", "format": "google-duration", "type": "string" }, @@ -2198,22 +3348,22 @@ "id": "GoogleCloudRetailV2ProductLevelConfig", "properties": { "ingestionProductType": { - "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant` (incompatible with Retail Search): You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" }, "merchantCenterProductIdField": { - "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2Promotion": { - "description": "Promotion information.", + "description": "Promotion specification.", "id": "GoogleCloudRetailV2Promotion", "properties": { "promotionId": { - "description": "ID of the promotion. For example, \"free gift\". The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "description": "Promotion identifier, which is the final component of name. For example, this field is \"free_gift\", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148).", "type": "string" } }, @@ -2308,7 +3458,7 @@ "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsMetadata", "properties": {}, "type": "object" @@ -2318,7 +3468,7 @@ "id": "GoogleCloudRetailV2RejoinUserEventsRequest", "properties": { "userEventRejoinScope": { - "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", + "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an invalid integer value.", "enum": [ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", "JOINED_EVENTS", @@ -2335,7 +3485,7 @@ "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -2346,14 +3496,36 @@ }, "type": "object" }, + "GoogleCloudRetailV2RemoveCatalogAttributeRequest": { + "description": "Request for CatalogService.RemoveCatalogAttribute method.", + "id": "GoogleCloudRetailV2RemoveCatalogAttributeRequest", + "properties": { + "key": { + "description": "Required. The attribute name key of the CatalogAttribute to remove.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RemoveControlRequest": { + "description": "Request for RemoveControl method.", + "id": "GoogleCloudRetailV2RemoveControlRequest", + "properties": { + "controlId": { + "description": "Required. The id of the control to apply. Assumed to be in the same catalog as the serving config.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest": { - "description": "Request message for RemoveFulfillmentPlaces method.", + "description": "Request message for ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesRequest", "properties": { "allowMissing": { @@ -2380,30 +3552,268 @@ "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2RemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveLocalInventoriesRequest": { + "description": "Request message for ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product is not found, the local inventory removal request will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. A list of place IDs to have their inventory deleted. At most 3000 place IDs are allowed per request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeTime": { + "description": "The time when the inventory deletions are issued. Used to prevent out-of-order updates and deletions on local inventory fields. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2ReplaceCatalogAttributeRequest": { + "description": "Request for CatalogService.ReplaceCatalogAttribute method.", + "id": "GoogleCloudRetailV2ReplaceCatalogAttributeRequest", + "properties": { + "catalogAttribute": { + "$ref": "GoogleCloudRetailV2CatalogAttribute", + "description": "Required. The updated CatalogAttribute." + }, + "updateMask": { + "description": "Indicates which fields in the provided CatalogAttribute to update. The following are NOT supported: * CatalogAttribute.key If not set, all supported fields are updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "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", + "properties": { + "boostAction": { + "$ref": "GoogleCloudRetailV2RuleBoostAction", + "description": "A boost action." + }, + "condition": { + "$ref": "GoogleCloudRetailV2Condition", + "description": "Required. The condition that triggers the rule. If the condition is empty, the rule will always apply." + }, + "doNotAssociateAction": { + "$ref": "GoogleCloudRetailV2RuleDoNotAssociateAction", + "description": "Prevents term from being associated with other terms." + }, + "filterAction": { + "$ref": "GoogleCloudRetailV2RuleFilterAction", + "description": "Filters results." + }, + "ignoreAction": { + "$ref": "GoogleCloudRetailV2RuleIgnoreAction", + "description": "Ignores specific terms from query during search." + }, + "onewaySynonymsAction": { + "$ref": "GoogleCloudRetailV2RuleOnewaySynonymsAction", + "description": "Treats specific term as a synonym with a group of terms. Group of terms will not be treated as synonyms with the specific term." + }, + "redirectAction": { + "$ref": "GoogleCloudRetailV2RuleRedirectAction", + "description": "Redirects a shopper to a specific page." + }, + "replacementAction": { + "$ref": "GoogleCloudRetailV2RuleReplacementAction", + "description": "Replaces specific terms in the query." + }, + "twowaySynonymsAction": { + "$ref": "GoogleCloudRetailV2RuleTwowaySynonymsAction", + "description": "Treats a set of terms as synonyms of one another." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleBoostAction": { + "description": "A boost action to apply to results matching condition specified above.", + "id": "GoogleCloudRetailV2RuleBoostAction", + "properties": { + "boost": { + "description": "Strength of the condition boost, which must be in [-1, 1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives the item a big promotion. However, it does not necessarily mean that the boosted item will be the top result at all times, nor that other items will be excluded. Results could still be shown even when none of them matches the condition. And results that are significantly more relevant to the search query can still trump your heavily favored but irrelevant items. Setting to -1.0 gives the item a big demotion. However, results that are deeply relevant might still be shown. The item will have an upstream battle to get a fairly high ranking, but it is not blocked out completely. Setting to 0.0 means no boost applied. The boosting condition is ignored.", + "format": "float", + "type": "number" + }, + "productsFilter": { + "description": "The filter can have a max size of 5000 characters. An expression which specifies which products to apply an action to. The syntax and supported fields are the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Examples: * To boost products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleDoNotAssociateAction": { + "description": "Prevents `query_term` from being associated with specified terms during search. Example: Don't associate \"gShoe\" and \"cheap\".", + "id": "GoogleCloudRetailV2RuleDoNotAssociateAction", + "properties": { + "doNotAssociateTerms": { + "description": "Cannot contain duplicates or the query term. Can specify up to 100 terms.", + "items": { + "type": "string" + }, + "type": "array" + }, + "queryTerms": { + "description": "Terms from the search query. Will not consider do_not_associate_terms for search if in search query. Can specify up to 100 terms.", + "items": { + "type": "string" + }, + "type": "array" + }, + "terms": { + "description": "Will be [deprecated = true] post migration;", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleFilterAction": { + "description": "* Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", + "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\")) *", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleIgnoreAction": { + "description": "Prevents a term in the query from being used in search. Example: Don't search for \"shoddy\".", + "id": "GoogleCloudRetailV2RuleIgnoreAction", + "properties": { + "ignoreTerms": { + "description": "Terms to ignore in the search query.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleOnewaySynonymsAction": { + "description": "Maps a set of terms to a set of synonyms. Set of synonyms will be treated as synonyms of each query term only. `query_terms` will not be treated as synonyms of each other. Example: \"sneakers\" will use a synonym of \"shoes\". \"shoes\" will not use a synonym of \"sneakers\".", + "id": "GoogleCloudRetailV2RuleOnewaySynonymsAction", + "properties": { + "onewayTerms": { + "description": "Will be [deprecated = true] post migration;", + "items": { + "type": "string" + }, + "type": "array" + }, + "queryTerms": { + "description": "Terms from the search query. Will treat synonyms as their synonyms. Not themselves synonyms of the synonyms. Can specify up to 100 terms.", + "items": { + "type": "string" + }, + "type": "array" + }, + "synonyms": { + "description": "Defines a set of synonyms. Cannot contain duplicates. Can specify up to 100 synonyms.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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.", + "id": "GoogleCloudRetailV2RuleRedirectAction", + "properties": { + "redirectUri": { + "description": "URL must have length equal or less than 2000 characters.", + "type": "string" + } + }, + "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", + "properties": { + "queryTerms": { + "description": "Terms from the search query. Will be replaced by replacement term. Can specify up to 100 terms.", + "items": { + "type": "string" + }, + "type": "array" + }, + "replacementTerm": { + "description": "Term that will be used for replacement.", + "type": "string" + }, + "term": { + "description": "Will be [deprecated = true] post migration;", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2RuleTwowaySynonymsAction": { + "description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\": * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", + "id": "GoogleCloudRetailV2RuleTwowaySynonymsAction", + "properties": { + "synonyms": { + "description": "Defines a set of synonyms. Can specify up to 100 synonyms. Must specify at least 2 synonyms.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2SearchRequest": { "description": "Request message for SearchService.Search method.", "id": "GoogleCloudRetailV2SearchRequest", "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. 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." }, "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 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. 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.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", - "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Search support team if you are interested in using dynamic facet feature." + "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." }, "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.", @@ -2416,6 +3826,13 @@ "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.", "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.", + "type": "object" + }, "offset": { "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", @@ -2426,7 +3843,7 @@ "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, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "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\"].", "items": { "type": "string" }, @@ -2443,10 +3860,10 @@ }, "personalizationSpec": { "$ref": "GoogleCloudRetailV2SearchRequestPersonalizationSpec", - "description": "The specification for personalization." + "description": "The specification for personalization. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." }, "query": { - "description": "Raw search query.", + "description": "Raw search query. If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.", "type": "string" }, "queryExpansionSpec": { @@ -2461,18 +3878,22 @@ "FACETED_SEARCH_ONLY" ], "enumDescriptions": [ - "Default value. In this case both product search and faceted search will be performed. Both [SearchResponse.SearchResult] and [SearchResponse.Facet] will be returned.", - "Only product search will be performed. The faceted search will be disabled. Only [SearchResponse.SearchResult] will be returned. [SearchResponse.Facet] will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", - "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_spec and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] will not be returned." + "Default value. In this case both product search and faceted search will be performed. Both SearchResponse.SearchResult and SearchResponse.Facet will be returned.", + "Only product search will be performed. The faceted search will be disabled. Only SearchResponse.SearchResult will be returned. SearchResponse.Facet will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", + "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_specs and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only SearchResponse.Facet will be returned. SearchResponse.SearchResult will not be returned." ], "type": "string" }, + "spellCorrectionSpec": { + "$ref": "GoogleCloudRetailV2SearchRequestSpellCorrectionSpec", + "description": "The spell correction specification that specifies the mode under which spell correction will take effect." + }, "userInfo": { "$ref": "GoogleCloudRetailV2UserInfo", "description": "User information." }, "variantRollupKeys": { - "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.local_inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -2490,7 +3911,7 @@ "id": "GoogleCloudRetailV2SearchRequestBoostSpec", "properties": { "conditionBoostSpecs": { - "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", "items": { "$ref": "GoogleCloudRetailV2SearchRequestBoostSpecConditionBoostSpec" }, @@ -2549,7 +3970,7 @@ "type": "boolean" }, "excludedFilterKeys": { - "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet \"Red\" and 200 products with the color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and having \"colorFamilies\" as FacetKey.key would by default return only \"Red\" products in the search results, and also return \"Red\" with count 100 as the only color facet. Although there are also blue products available, \"Blue\" would not be shown as an available facet value. If \"colorFamilies\" is listed in \"excludedFilterKeys\", then the query returns the facet values \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only \"Red\" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -2560,7 +3981,7 @@ "description": "Required. The facet key specification." }, "limit": { - "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", "type": "integer" } @@ -2571,6 +3992,10 @@ "description": "Specifies how a facet is computed.", "id": "GoogleCloudRetailV2SearchRequestFacetSpecFacetKey", "properties": { + "caseInsensitive": { + "description": "True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise.", + "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.", "items": { @@ -2590,7 +4015,7 @@ "type": "string" }, "orderBy": { - "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", + "description": "The order in which SearchResponse.Facet.values are returned. Allowed values are: * \"count desc\", which means order by SearchResponse.Facet.values.count descending. * \"value desc\", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", "type": "string" }, "prefixes": { @@ -2601,15 +4026,19 @@ "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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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 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\".", "type": "string" }, "restrictedValues": { - "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", "items": { "type": "string" }, "type": "array" + }, + "returnMinMax": { + "description": "Returns the min and max value for each numerical facet intervals. Ignored for textual facets.", + "type": "boolean" } }, "type": "object" @@ -2626,8 +4055,8 @@ "DISABLED" ], "enumDescriptions": [ - "Default value. Defaults to Mode.AUTO.", - "Let CRS decide whether to use personalization.", + "Default value. In this case, server behavior defaults to Mode.AUTO.", + "Let CRS decide whether to use personalization based on quality of user event data.", "Disable personalization." ], "type": "string" @@ -2647,7 +4076,7 @@ "AUTO" ], "enumDescriptions": [ - "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Unspecified query expansion condition. In this case, server behavior defaults to Condition.DISABLED.", "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", "Automatic query expansion built by Google Retail Search." ], @@ -2660,6 +4089,27 @@ }, "type": "object" }, + "GoogleCloudRetailV2SearchRequestSpellCorrectionSpec": { + "description": "The specification for query spell correction.", + "id": "GoogleCloudRetailV2SearchRequestSpellCorrectionSpec", + "properties": { + "mode": { + "description": "The mode under which spell correction should take effect to replace the original search query. Default to Mode.AUTO.", + "enum": [ + "MODE_UNSPECIFIED", + "SUGGESTION_ONLY", + "AUTO" + ], + "enumDescriptions": [ + "Unspecified spell correction mode. In this case, server behavior defaults to Mode.AUTO.", + "Google Retail Search will try to find a spell suggestion if there is any and put in the SearchResponse.corrected_query. The spell suggestion will not be used as the search query.", + "Automatic spell correction built by Google Retail Search. Search will be based on the corrected query if found." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2SearchResponse": { "description": "Response message for SearchService.Search method.", "id": "GoogleCloudRetailV2SearchResponse", @@ -2676,7 +4126,7 @@ "type": "string" }, "correctedQuery": { - "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "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" }, "facets": { @@ -2702,7 +4152,7 @@ "description": "Query expansion information for the returned results." }, "redirectUri": { - "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search is performed, and only redirect_uri and attribution_token are set in the response.", "type": "string" }, "results": { @@ -2755,6 +4205,16 @@ "$ref": "GoogleCloudRetailV2Interval", "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." }, + "maxValue": { + "description": "The maximum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, + "minValue": { + "description": "The minimum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, "value": { "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", "type": "string" @@ -2799,6 +4259,13 @@ "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", "type": "object" }, + "personalLabels": { + "description": "Specifies previous events related to this product for this user based on UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set only when SearchRequest.PersonalizationSpec.mode is SearchRequest.PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that this product has been purchased before.", + "items": { + "type": "string" + }, + "type": "array" + }, "product": { "$ref": "GoogleCloudRetailV2Product", "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." @@ -2813,6 +4280,139 @@ }, "type": "object" }, + "GoogleCloudRetailV2ServingConfig": { + "description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions).", + "id": "GoogleCloudRetailV2ServingConfig", + "properties": { + "boostControlIds": { + "description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids 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. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "displayName": { + "description": "Required. The human readable serving config display name. Used in Retail UI. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "type": "string" + }, + "diversityLevel": { + "description": "How much diversity to use in recommendation model results e.g. `medium-diversity` or `high-diversity`. Currently supported values: * `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If not specified, we choose default based on recommendation model type. Default value: `no-diversity`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "diversityType": { + "description": "What kind of diversity to use - data driven or rule based. If unset, the server behavior defaults to RULE_BASED_DIVERSITY.", + "enum": [ + "DIVERSITY_TYPE_UNSPECIFIED", + "RULE_BASED_DIVERSITY", + "DATA_DRIVEN_DIVERSITY" + ], + "enumDescriptions": [ + "Default value.", + "Rule based diversity.", + "Data driven diversity." + ], + "type": "string" + }, + "doNotAssociateControlIds": { + "description": "Condition do not associate specifications. If multiple do not associate conditions match, all matching do not associate controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dynamicFacetSpec": { + "$ref": "GoogleCloudRetailV2SearchRequestDynamicFacetSpec", + "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. Can only be set if solution_types is SOLUTION_TYPE_SEARCH." + }, + "enableCategoryFilterLevel": { + "description": "Whether to add additional category filters on the `similar-items` model. If not specified, we enable it by default. Allowed values are: * `no-category-match`: No additional filtering of original results from the model and the customer's filters. * `relaxed-category-match`: Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "facetControlIds": { + "description": "Facet specifications for faceted search. If empty, no facets are returned. The ids refer to the ids of Control resources with only the Facet control set. These controls are assumed to be in the same Catalog as the ServingConfig. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "filterControlIds": { + "description": "Condition filter specifications. If a product matches multiple conditions in the specifications, filters from these specifications are all applied and combined via the AND operator. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ignoreControlIds": { + "description": "Condition ignore specifications. If multiple ignore conditions match, all matching ignore controls in the list will execute. - Order does not matter. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "modelId": { + "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "name": { + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", + "type": "string" + }, + "onewaySynonymsControlIds": { + "description": "Condition oneway synonyms specifications. If multiple oneway synonyms conditions match, all matching oneway synonyms controls in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "personalizationSpec": { + "$ref": "GoogleCloudRetailV2SearchRequestPersonalizationSpec", + "description": "The specification for personalization spec. Can only be set if solution_types is SOLUTION_TYPE_SEARCH. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." + }, + "priceRerankingLevel": { + "description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * `no-price-reranking` * `low-price-reranking` * `medium-price-reranking` * `high-price-reranking` If not specified, we choose default based on model type. Default value: `no-price-reranking`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "redirectControlIds": { + "description": "Condition redirect specifications. Only the first triggered redirect action is applied, even if multiple apply. Maximum number of specifications is 1000. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "replacementControlIds": { + "description": "Condition replacement specifications. - Applied according to the order in the list. - A previously replaced term can not be re-replaced. - Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + }, + "solutionTypes": { + "description": "Required. Immutable. Specifies the solution types that a serving config can be associated with. Currently we support setting only one type of solution.", + "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" + }, + "twowaySynonymsControlIds": { + "description": "Condition synonyms specifications. If multiple syonyms conditions match, all matching synonyms control in the list will execute. Order of controls in the list will not matter. Maximum number of specifications is 100. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2SetDefaultBranchRequest": { "description": "Request message to set a specified branch as new default_branch.", "id": "GoogleCloudRetailV2SetDefaultBranchRequest", @@ -2833,13 +4433,13 @@ "type": "object" }, "GoogleCloudRetailV2SetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2SetInventoryRequest": { - "description": "Request message for SetInventory method.", + "description": "Request message for ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryRequest", "properties": { "allowMissing": { @@ -2848,7 +4448,7 @@ }, "inventory": { "$ref": "GoogleCloudRetailV2Product", - "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, ProductService.UpdateProduct should be invoked instead." }, "setMask": { "description": "Indicates which inventory fields in the provided Product to update. At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", @@ -2864,7 +4464,7 @@ "type": "object" }, "GoogleCloudRetailV2SetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryResponse", "properties": {}, "type": "object" @@ -2877,7 +4477,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2CustomAttribute" }, - "description": "Extra user event features to include in the recommendation model. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.", + "description": "Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways.", "type": "object" }, "attributionToken": { @@ -2922,7 +4522,7 @@ "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -2933,7 +4533,7 @@ "type": "string" }, "productDetails": { - "description": "The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` * `search` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", + "description": "The main product details related to the event. This field is optional except for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", "items": { "$ref": "GoogleCloudRetailV2ProductDetail" }, @@ -2964,7 +4564,7 @@ "description": "User information." }, "visitorId": { - "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", "type": "string" } }, @@ -3029,7 +4629,7 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when: * setting SearchRequest.user_info. * using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { @@ -3037,36 +4637,62 @@ "type": "string" }, "userId": { - "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the AddLocalInventories method.", + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesResponse": { - "description": "Response of the AddLocalInventories API. Currently empty because there is no meaningful response populated from the AddLocalInventories method.", + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2alphaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2alphaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2alphaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2alphaExportErrorsConfig", @@ -3079,7 +4705,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaExportMetadata", "properties": { "createTime": { @@ -3108,7 +4734,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -3126,7 +4756,22 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2alphaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" } }, "type": "object" @@ -3150,14 +4795,14 @@ "id": "GoogleCloudRetailV2alphaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2alphaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaImportMetadata", "properties": { "createTime": { @@ -3171,11 +4816,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -3183,6 +4828,10 @@ "format": "int64", "type": "string" }, + "transformedUserEventsMetadata": { + "$ref": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "description": "Metadata related to transform user events." + }, "updateTime": { "description": "Operation last update time. If the operation is done, this is also the finish time.", "format": "google-datetime", @@ -3231,12 +4880,296 @@ }, "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", + "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" + }, + "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" + }, + "pageOptimizationConfig": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", + "description": "Optional. The page optimization config." + }, + "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": "GoogleCloudRetailV2alphaModelServingConfigList" + }, + "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" + }, + "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", + "properties": { + "pageOptimizationEventType": { + "description": "Required. The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types.", + "type": "string" + }, + "panels": { + "description": "Required. A list of panel configurations. Limit = 5.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel" + }, + "type": "array" + }, + "restriction": { + "description": "Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`.", + "enum": [ + "RESTRICTION_UNSPECIFIED", + "NO_RESTRICTION", + "UNIQUE_SERVING_CONFIG_RESTRICTION", + "UNIQUE_MODEL_RESTRICTION", + "UNIQUE_MODEL_TYPE_RESTRICTION" + ], + "enumDescriptions": [ + "Unspecified value for restriction.", + "Allow any ServingConfig to be show on any number of panels. Example: `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity `Panel2 candidates`: home_page_ctr_no_diversity, home_page_ctr_diversity, pdp_cvr_no_diversity `Restriction` = NO_RESTRICTION `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: []", + "Do not allow the same ServingConfig.name to be shown on multiple panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_SERVING_CONFIG_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity_low) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.name to be show on on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.type to be shown on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) *" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate": { + "description": "A candidate to consider for a given panel. Currently only ServingConfig are valid candidates.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "properties": { + "servingConfigId": { + "description": "This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel": { + "description": "An individual panel with a list of ServingConfigs to consider for it.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel", + "properties": { + "candidates": { + "description": "Required. The candidates to consider on the panel.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate" + }, + "type": "array" + }, + "defaultCandidate": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "description": "Required. The default candidate. If the model fails at serving time, we fall back to the default." + }, + "displayName": { + "description": "Optional. The name to display for the panel.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2alphaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2alphaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaPurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaPurgeMetadata", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaPurgeProductsMetadata", + "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" + }, + "GoogleCloudRetailV2alphaPurgeProductsResponse": { + "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": "GoogleCloudRetailV2alphaPurgeProductsResponse", + "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" + }, "GoogleCloudRetailV2alphaPurgeUserEventsResponse": { "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": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", @@ -3250,13 +5183,13 @@ "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -3268,41 +5201,75 @@ "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the RemoveLocalInventories method.", + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse": { - "description": "Response of the RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the RemoveLocalInventories method.", + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaTransformedUserEventsMetadata": { + "description": "Metadata related to transform user events operation.", + "id": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "properties": { + "sourceEventsCount": { + "description": "Count of entries in the source user events BigQuery table.", + "format": "int64", + "type": "string" + }, + "transformedEventsCount": { + "description": "Count of entries in the transformed user events BigQuery table, which could be different from the actually imported number of user events.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2alphaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2alphaUserEventImportSummary", @@ -3321,17 +5288,55 @@ "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaAddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2betaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2betaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2betaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2betaExportErrorsConfig", @@ -3344,7 +5349,7 @@ "type": "object" }, "GoogleCloudRetailV2betaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaExportMetadata", "properties": { "createTime": { @@ -3373,7 +5378,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -3391,7 +5400,22 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2betaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" } }, "type": "object" @@ -3415,14 +5439,14 @@ "id": "GoogleCloudRetailV2betaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2betaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaImportMetadata", "properties": { "createTime": { @@ -3436,11 +5460,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -3496,6 +5520,171 @@ }, "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", + "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" + }, + "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": "GoogleCloudRetailV2betaModelServingConfigList" + }, + "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" + }, + "GoogleCloudRetailV2betaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2betaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2betaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaPurgeMetadata", @@ -3515,13 +5704,13 @@ "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -3533,29 +5722,58 @@ "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2betaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2betaUserEventImportSummary", @@ -3627,7 +5845,7 @@ "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" @@ -3660,7 +5878,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/retail/v2alpha/retail-api.json b/etc/api/retail/v2alpha/retail-api.json index f94ece6a6a..9f3d933750 100644 --- a/etc/api/retail/v2alpha/retail-api.json +++ b/etc/api/retail/v2alpha/retail-api.json @@ -112,7 +112,7 @@ "catalogs": { "methods": { "completeQuery": { - "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.completeQuery", @@ -128,17 +128,22 @@ "type": "string" }, "dataset": { - "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option requires additional allowlisting. Before using cloud-retail, contact Cloud Retail support team first.", + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail: This option requires enabling auto-learning function first. See [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset).", "location": "query", "type": "string" }, "deviceType": { - "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", + "description": "The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", "location": "query", "type": "string" }, + "enableAttributeSuggestions": { + "description": "If true, attribute suggestions are enabled and provided in response. This field is only available for \"cloud-retail\" dataset.", + "location": "query", + "type": "boolean" + }, "languageCodes": { - "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "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", "repeated": true, "type": "string" @@ -155,7 +160,7 @@ "type": "string" }, "visitorId": { - "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Required field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "location": "query", "type": "string" } @@ -178,7 +183,7 @@ ], "parameters": { "name": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -193,6 +198,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getCompletionConfig": { + "description": "Gets a CompletionConfig.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full CompletionConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2alphaCompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getDefaultBranch": { "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", @@ -326,7 +356,7 @@ ], "parameters": { "name": { - "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: \"projects/*/locations/*/catalogs/*/attributesConfig\"", + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -349,6 +379,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateCompletionConfig": { + "description": "Updates the CompletionConfigs.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.updateCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided CompletionConfig to update. The following are the only supported fields: * CompletionConfig.matching_order * CompletionConfig.max_suggestions * CompletionConfig.min_prefix_length * CompletionConfig.auto_learning If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2alphaCompletionConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaCompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -364,7 +428,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -382,6 +446,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "batchRemoveCatalogAttributes": { + "description": "Removes all specified CatalogAttributes from the AttributesConfig.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:batchRemoveCatalogAttributes", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.attributesConfig.batchRemoveCatalogAttributes", + "parameterOrder": [ + "attributesConfig" + ], + "parameters": { + "attributesConfig": { + "description": "Required. The attributes config resource shared by all catalog attributes being deleted. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+attributesConfig}:batchRemoveCatalogAttributes", + "request": { + "$ref": "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeCatalogAttribute": { "description": "Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:removeCatalogAttribute", @@ -392,7 +484,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -420,7 +512,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -471,10 +563,43 @@ } } }, + "places": { + "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": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/places/{placesId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.branches.places.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/places/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -502,7 +627,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 GetProduct or ListProducts. Local inventory information can only be modified using this method. CreateProduct and UpdateProduct has no effect on local inventories. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact Cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", @@ -613,7 +738,7 @@ ] }, "import": { - "description": "Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", + "description": "Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.import", @@ -714,7 +839,7 @@ "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. The attribute key can be updated by setting the mask path as \"attributes.${key_name}\". If a key name is present in the mask but not in the patching product from the request, this key will be deleted after the update.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -731,8 +856,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": "v2alpha/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": "v2alpha/{+parent}/products:purge", + "request": { + "$ref": "GoogleCloudRetailV2alphaPurgeProductsRequest" + }, + "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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -760,7 +913,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 GetProduct or ListProducts. Local inventory information can only be removed using this method. CreateProduct and UpdateProduct has no effect on local inventories. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact Cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", @@ -788,7 +941,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 will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -822,7 +975,7 @@ "completionData": { "methods": { "import": { - "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not supported. The operation is successfully finished only after the imported suggestions are indexed successfully and ready for serving. The process takes hours. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.completionData.import", @@ -868,7 +1021,7 @@ "type": "string" }, "parent": { - "description": "Required. Full resource name of parent catalog. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -896,7 +1049,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Control to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}", + "description": "Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -921,7 +1074,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Control to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}", + "description": "Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -937,7 +1090,7 @@ ] }, "list": { - "description": "Lists all Controls linked to this catalog.", + "description": "Lists all Controls by their parent Catalog.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.controls.list", @@ -962,7 +1115,7 @@ "type": "string" }, "parent": { - "description": "Required. The catalog resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -978,7 +1131,7 @@ ] }, "patch": { - "description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to delete does not exist, a NOT_FOUND error is returned.", + "description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", "httpMethod": "PATCH", "id": "retail.projects.locations.catalogs.controls.patch", @@ -987,7 +1140,7 @@ ], "parameters": { "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/controls/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -1013,6 +1166,222 @@ } } }, + "models": { + "methods": { + "create": { + "description": "Creates a new model.", + "flatPath": "v2alpha/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": "v2alpha/{+parent}/models", + "request": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an existing model.", + "flatPath": "v2alpha/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": "v2alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "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", + "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": "v2alpha/{+parent}/models", + "response": { + "$ref": "GoogleCloudRetailV2alphaListModelsResponse" + }, + "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": "v2alpha/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": "v2alpha/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "pause": { + "description": "Pauses the training of an existing model.", + "flatPath": "v2alpha/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": "v2alpha/{+name}:pause", + "request": { + "$ref": "GoogleCloudRetailV2alphaPauseModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "resume": { + "description": "Resumes the training of an existing model.", + "flatPath": "v2alpha/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": "v2alpha/{+name}:resume", + "request": { + "$ref": "GoogleCloudRetailV2alphaResumeModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "tune": { + "description": "Tunes an existing model.", + "flatPath": "v2alpha/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": "v2alpha/{+name}:tune", + "request": { + "$ref": "GoogleCloudRetailV2alphaTuneModelRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -1095,7 +1464,7 @@ ], "parameters": { "placement": { - "description": "Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements", + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1114,7 +1483,7 @@ ] }, "search": { - "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.placements.search", @@ -1123,7 +1492,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving configuration name and the set of models that will be used to make the search.", + "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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1155,7 +1524,7 @@ ], "parameters": { "servingConfig": { - "description": "Required. The source ServingConfig resource name . Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1183,7 +1552,7 @@ ], "parameters": { "parent": { - "description": "Required. Full resource name of parent. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -1216,7 +1585,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the ServingConfig to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The resource name of the ServingConfig to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1241,7 +1610,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the ServingConfig to get. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The resource name of the ServingConfig to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1277,7 +1646,7 @@ "type": "string" }, "parent": { - "description": "Required. The catalog resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -1302,7 +1671,7 @@ ], "parameters": { "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/servingConfig/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1326,6 +1695,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "predict": { + "description": "Makes a recommendation prediction.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:predict", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.predict", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+placement}:predict", + "request": { + "$ref": "GoogleCloudRetailV2alphaPredictRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaPredictResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeControl": { "description": "Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a NOT_FOUND error if the Control is not enabled for the ServingConfig.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:removeControl", @@ -1336,7 +1733,7 @@ ], "parameters": { "servingConfig": { - "description": "Required. The source ServingConfig resource name . Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1353,6 +1750,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.search", + "parameterOrder": [ + "placement" + ], + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2alphaSearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaSearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -1380,6 +1805,16 @@ "required": true, "type": "string" }, + "prebuiltRule": { + "description": "The prebuilt rule name that can convert a specific type of raw_json. For example: \"ga4_bq\" rule for the GA4 user event schema.", + "location": "query", + "type": "string" + }, + "rawJson": { + "description": "An arbitrary serialized JSON string that contains necessary information that can comprise a user event. When this field is specified, the user_event field will be ignored. Note: line-delimited JSON is not supported, a single JSON only.", + "location": "query", + "type": "string" + }, "uri": { "description": "The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.", "location": "query", @@ -1400,7 +1835,7 @@ ] }, "import": { - "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.", + "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. `Operation.response` is of type `ImportResponse`. Note that it is possible for a subset of the items to be successfully inserted. `Operation.metadata` is of type `ImportMetadata`.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.import", @@ -1456,7 +1891,7 @@ ] }, "rejoin": { - "description": "Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.", + "description": "Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed product information for products that are missing from the catalog when the user event is ingested. These events are stored as unjoined events with limited usage on training and serving. You can use this method to start a join operation on specified events with the latest version of product catalog. You can also use this method to correct events joined with the wrong product catalog. A rejoin operation can take hours or days to complete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:rejoin", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.rejoin", @@ -1498,6 +1933,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, "type": "string" + }, + "writeAsync": { + "description": "If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write. Therefore, silent failures can occur even if the API returns success. In case of silent failures, error messages can be found in Stackdriver logs.", + "location": "query", + "type": "boolean" } }, "path": "v2alpha/{+parent}/userEvents:write", @@ -1660,7 +2100,7 @@ } } }, - "revision": "20220224", + "revision": "20230117", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -1761,7 +2201,7 @@ "type": "object" }, "GoogleCloudRetailLoggingImportErrorContext": { - "description": "The error payload that is populated on LRO import APIs. Including: \"google.cloud.retail.v2.ProductService.ImportProducts\" \"google.cloud.retail.v2.EventService.ImportUserEvents\"", + "description": "The error payload that is populated on LRO import APIs, including \"google.cloud.retail.v2.ProductService.ImportProducts\" and \"google.cloud.retail.v2.EventService.ImportUserEvents\".", "id": "GoogleCloudRetailLoggingImportErrorContext", "properties": { "catalogItem": { @@ -1814,17 +2254,29 @@ "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2AddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesResponse", + "properties": {}, + "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", @@ -1844,14 +2296,14 @@ "id": "GoogleCloudRetailV2ImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2ImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2ImportMetadata", "properties": { "createTime": { @@ -1865,11 +2317,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -1944,13 +2396,13 @@ "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -1962,25 +2414,37 @@ "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2RemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2SetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2SetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryResponse", "properties": {}, "type": "object" @@ -2025,13 +2489,13 @@ "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesRequest": { - "description": "Request message for AddFulfillmentPlaces method.", + "description": "Request message for ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesRequest", "properties": { "addTime": { @@ -2058,19 +2522,19 @@ "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the AddLocalInventories method.", + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesRequest": { - "description": "Request message for AddLocalInventories method.", + "description": "Request message for ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesRequest", "properties": { "addMask": { @@ -2098,7 +2562,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesResponse": { - "description": "Response of the AddLocalInventories API. Currently empty because there is no meaningful response populated from the AddLocalInventories method.", + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesResponse", "properties": {}, "type": "object" @@ -2115,8 +2579,8 @@ "CATALOG_LEVEL_ATTRIBUTE_CONFIG" ], "enumDescriptions": [ - "Value used when unset. Defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", - "At this level, we honor the attribute configurations set in Product.attribtues.", + "Value used when unset. In this case, server behavior defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", + "At this level, we honor the attribute configurations set in Product.attributes.", "At this level, we honor the attribute configurations set in CatalogConfig.attribute_configs." ], "readOnly": true, @@ -2130,7 +2594,7 @@ "type": "object" }, "name": { - "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: \"projects/*/locations/*/catalogs/*/attributesConfig\"", + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", "type": "string" } }, @@ -2157,12 +2621,62 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesRequest": { + "description": "Request for CatalogService.BatchRemoveCatalogAttributes method.", + "id": "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesRequest", + "properties": { + "attributeKeys": { + "description": "Required. The attribute name keys of the CatalogAttributes to delete. A maximum of 1000 catalog attributes can be deleted in a batch.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesResponse": { + "description": "Response of the CatalogService.BatchRemoveCatalogAttributes.", + "id": "GoogleCloudRetailV2alphaBatchRemoveCatalogAttributesResponse", + "properties": { + "deletedCatalogAttributes": { + "description": "Catalog attributes that were deleted. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resetCatalogAttributes": { + "description": "Catalog attributes that were reset. 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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2alphaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaBigQuerySource": { "description": "BigQuery source import data from.", "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`: This feature is in private preview. Please contact the support team for importing Google Analytics 4 events. The schema is available here: https://support.google.com/analytics/answer/7029846.", + "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.", "type": "string" }, "datasetId": { @@ -2175,7 +2689,7 @@ }, "partitionDate": { "$ref": "GoogleTypeDate", - "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported in ImportProductsRequest." }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", @@ -2216,51 +2730,93 @@ "id": "GoogleCloudRetailV2alphaCatalogAttribute", "properties": { "dynamicFacetableOption": { - "description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.", "enum": [ "DYNAMIC_FACETABLE_OPTION_UNSPECIFIED", "DYNAMIC_FACETABLE_ENABLED", "DYNAMIC_FACETABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to DYNAMIC_FACETABLE_ENABLED.", + "Value used when unset.", "Dynamic facetable option enabled for an attribute.", "Dynamic facetable option disabled for an attribute." ], "type": "string" }, + "exactSearchableOption": { + "description": "If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.", + "enum": [ + "EXACT_SEARCHABLE_OPTION_UNSPECIFIED", + "EXACT_SEARCHABLE_ENABLED", + "EXACT_SEARCHABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Exact searchable option enabled for an attribute.", + "Exact searchable option disabled for an attribute." + ], + "type": "string" + }, "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 AddCatalogAttribute, ImportCatalogAttributes, or UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only CatalogAttributes that are not in use by products can be deleted. CatalogAttributes that are in use by products 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.", + "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.", + "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.", "enum": [ "INDEXABLE_OPTION_UNSPECIFIED", "INDEXABLE_ENABLED", "INDEXABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to INDEXABLE_ENABLED.", + "Value used when unset.", "Indexable option enabled for an attribute.", "Indexable option disabled for an attribute." ], "type": "string" }, "key": { - "description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`.", + "description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.", + "type": "string" + }, + "recommendationsFilteringOption": { + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, attribute values are filterable for recommendations. This option works for categorical features only, does not work for numerical features, inventory filtering.", + "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" + }, + "retrievableOption": { + "description": "If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.", + "enum": [ + "RETRIEVABLE_OPTION_UNSPECIFIED", + "RETRIEVABLE_ENABLED", + "RETRIEVABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Retrievable option enabled for an attribute.", + "Retrievable option disabled for an attribute." + ], "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.", + "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.", "enum": [ "SEARCHABLE_OPTION_UNSPECIFIED", "SEARCHABLE_ENABLED", "SEARCHABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to SEARCHABLE_DISABLED.", + "Value used when unset.", "Searchable option enabled for an attribute.", "Searchable option disabled for an attribute." ], @@ -2296,7 +2852,7 @@ "type": "array" }, "colors": { - "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 25 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", "items": { "type": "string" }, @@ -2309,8 +2865,15 @@ "description": "Response of the auto-complete query.", "id": "GoogleCloudRetailV2alphaCompleteQueryResponse", "properties": { + "attributeResults": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseAttributeResult" + }, + "description": "A map of matched attribute suggestions. This field is only available for \"cloud-retail\" dataset. Current supported keys: * `brands` * `categories`", + "type": "object" + }, "attributionToken": { - "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "description": "A unique complete token. This should be included in the UserEvent.completion_detail for search events resulting from this completion, which enables accurate attribution of complete model performance.", "type": "string" }, "completionResults": { @@ -2321,7 +2884,7 @@ "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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "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.", "items": { "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult" }, @@ -2330,6 +2893,20 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCompleteQueryResponseAttributeResult": { + "description": "Resource that represents attribute results.", + "id": "GoogleCloudRetailV2alphaCompleteQueryResponseAttributeResult", + "properties": { + "suggestions": { + "description": "The list of suggestions for the attribute.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaCompleteQueryResponseCompletionResult": { "description": "Resource that represents completion results.", "id": "GoogleCloudRetailV2alphaCompleteQueryResponseCompletionResult", @@ -2338,7 +2915,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2alphaCustomAttribute" }, - "description": "Additional custom attributes ingested through BigQuery.", + "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" }, "suggestion": { @@ -2359,6 +2936,65 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCompletionConfig": { + "description": "Catalog level autocomplete config for customers to customize autocomplete feature's settings.", + "id": "GoogleCloudRetailV2alphaCompletionConfig", + "properties": { + "allowlistInputConfig": { + "$ref": "GoogleCloudRetailV2alphaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete allowlist phrases.", + "readOnly": true + }, + "autoLearning": { + "description": "If set to true, the auto learning function is enabled. Auto learning uses user data to generate suggestions using ML techniques. Default value is false. Only after enabling auto learning can users use `cloud-retail` data in CompleteQueryRequest.", + "type": "boolean" + }, + "denylistInputConfig": { + "$ref": "GoogleCloudRetailV2alphaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete denylist phrases.", + "readOnly": true + }, + "lastAllowlistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest allowlist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "type": "string" + }, + "lastDenylistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest denylist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "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.", + "readOnly": true, + "type": "string" + }, + "matchingOrder": { + "description": "Specifies the matching order for autocomplete suggestions, e.g., a query consisting of 'sh' with 'out-of-order' specified would suggest \"women's shoes\", whereas a query of 'red s' with 'exact-prefix' specified would suggest \"red shoes\". Currently supported values: * 'out-of-order' * 'exact-prefix' Default value: 'exact-prefix'.", + "type": "string" + }, + "maxSuggestions": { + "description": "The maximum number of autocomplete suggestions returned per term. Default value is 20. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "minPrefixLength": { + "description": "The minimum number of characters needed to be typed in order to get suggestions. Default value is 2. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "type": "string" + }, + "suggestionsInputConfig": { + "$ref": "GoogleCloudRetailV2alphaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete suggestion phrases.", + "readOnly": true + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaCompletionDataInputConfig": { "description": "The input config source for completion data.", "id": "GoogleCloudRetailV2alphaCompletionDataInputConfig", @@ -2420,7 +3056,7 @@ "type": "boolean" }, "value": { - "description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. Example) \"a b c\" is 3 terms and allowed, \" a b c d\" is 4 terms and not allowed for partial match.", + "description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, \"a b c\" is 3 terms and allowed, but \" a b c d\" is 4 terms and not allowed for a partial match.", "type": "string" } }, @@ -2444,11 +3080,11 @@ "type": "object" }, "GoogleCloudRetailV2alphaControl": { - "description": "Configures dynamic serving time metadata that is used to pre and post process search/recommendation model results.", + "description": "Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.", "id": "GoogleCloudRetailV2alphaControl", "properties": { "associatedServingConfigIds": { - "description": "Output only. List of serving configuration ids that that are associated with this control. Note the association is managed via the ServingConfig, this is an output only denormalizeed view. Assumed to be in the same catalog.", + "description": "Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.", "items": { "type": "string" }, @@ -2461,18 +3097,35 @@ }, "facetSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestFacetSpec", - "description": "A facet specification to perform faceted search." + "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": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/controls/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", "type": "string" }, "rule": { "$ref": "GoogleCloudRetailV2alphaRule", "description": "A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost \"gShoe\" when query full matches \"Running Shoes\"." }, + "searchSolutionUseCase": { + "description": "Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.", + "items": { + "enum": [ + "SEARCH_SOLUTION_USE_CASE_UNSPECIFIED", + "SEARCH_SOLUTION_USE_CASE_SEARCH", + "SEARCH_SOLUTION_USE_CASE_BROWSE" + ], + "enumDescriptions": [ + "The value when it's unspecified. In this case, server behavior defaults to SEARCH_SOLUTION_USE_CASE_SEARCH.", + "Search use case. Expects the traffic has a non-empty query.", + "Browse use case. Expects the traffic has an empty query." + ], + "type": "string" + }, + "type": "array" + }, "solutionTypes": { - "description": "Required. Immutable. The solution types that the serving config is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", + "description": "Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", "items": { "enum": [ "SOLUTION_TYPE_UNSPECIFIED", @@ -2491,12 +3144,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2alphaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2alphaCustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2alphaCustomAttribute", "properties": { "indexable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are indexed, so that it 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.", + "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" }, "numbers": { @@ -2508,7 +3172,7 @@ "type": "array" }, "searchable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', 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.", + "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" }, "text": { @@ -2533,7 +3197,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaExportMetadata", "properties": { "createTime": { @@ -2562,7 +3226,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -2580,7 +3248,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -2603,12 +3275,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2alphaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaGcsSource": { - "description": "Google Cloud Storage location for input content. format.", + "description": "Google Cloud Storage location for input content.", "id": "GoogleCloudRetailV2alphaGcsSource", "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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * 'control' (default): One JSON Control per line. Supported values for catalog attribute imports: * 'catalog_attribute' (default): One CSV CatalogAttribute 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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * `control` (default): One JSON Control per line. Supported values for catalog attribute imports: * `catalog_attribute` (default): One CSV CatalogAttribute per line.", "type": "string" }, "inputUris": { @@ -2642,7 +3325,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaImage": { - "description": "Product thumbnail/detail image.", + "description": "Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console.", "id": "GoogleCloudRetailV2alphaImage", "properties": { "height": { @@ -2671,7 +3354,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" } }, @@ -2696,14 +3379,14 @@ "id": "GoogleCloudRetailV2alphaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2alphaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaImportMetadata", "properties": { "createTime": { @@ -2717,11 +3400,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -2729,6 +3412,10 @@ "format": "int64", "type": "string" }, + "transformedUserEventsMetadata": { + "$ref": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "description": "Metadata related to transform user events." + }, "updateTime": { "description": "Operation last update time. If the operation is done, this is also the finish time.", "format": "google-datetime", @@ -2750,7 +3437,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "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.", "type": "string" }, "reconciliationMode": { @@ -2763,16 +3450,20 @@ "enumDescriptions": [ "Defaults to INCREMENTAL.", "Inserts new products or updates existing products.", - "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be set while using BigQuerySource. And the BigQuery dataset must be created in the data location \"us (multiple regions in United States)\", otherwise a PERMISSION_DENIED error is thrown. Add the IAM permission \"BigQuery Data Viewer\" for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search." + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location." ], "type": "string" }, "requestId": { - "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: `[a-zA-Z0-9_]+`. This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "description": "Deprecated. This field has no effect.", "type": "string" }, + "skipDefaultBranchProtection": { + "description": "If true, this performs the FULL import even if it would delete a large proportion of the products in the default branch, which could potentially cause outages if you have live predict/search traffic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "type": "boolean" + }, "updateMask": { - "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", + "description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated.", "format": "google-fieldmask", "type": "string" } @@ -2897,6 +3588,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaListModelsResponse": { + "description": "Response to a ListModelRequest.", + "id": "GoogleCloudRetailV2alphaListModelsResponse", + "properties": { + "models": { + "description": "List of Models.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModel" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token, if not returned indicates the last page.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaListProductsResponse": { "description": "Response message for ProductService.ListProducts method.", "id": "GoogleCloudRetailV2alphaListProductsResponse", @@ -2946,9 +3655,16 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2alphaCustomAttribute" }, - "description": "Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * The max number of values per attribute is 10. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", + "description": "Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", "type": "object" }, + "fulfillmentTypes": { + "description": "Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, "placeId": { "description": "The place ID for the current set of inventory information.", "type": "string" @@ -2960,27 +3676,50 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2alphaMerchantCenterFeedFilter", + "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" + }, "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.", "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": { - "description": "String representing the destination to import for, all if left empty. List of possible values can be found here. [https://support.google.com/merchants/answer/7501026] List of allowed string values: \"Shopping_ads\", \"Buy_on_google_listings\", \"Display_ads\", \"Local_inventory _ads\", \"Free_listings\", \"Free_local_listings\" NOTE: The string values are case sensitive.", + "description": "String representing the destination to import for, all if left empty. List of possible values is given in [Included destination](https://support.google.com/merchants/answer/7501026). List of allowed string values: \"Shopping_ads\", \"Buy_on_google_listings\", \"Display_ads\", \"Local_inventory _ads\", \"Free_listings\", \"Free_local_listings\" NOTE: The string values are case sensitive.", "items": { "type": "string" }, "type": "array" }, + "feeds": { + "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": "GoogleCloudRetailV2alphaMerchantCenterFeedFilter" + }, + "type": "array" + }, "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.", + "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.", + "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" }, @@ -3005,40 +3744,284 @@ }, "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", + "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" + }, + "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" + }, + "pageOptimizationConfig": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", + "description": "Optional. The page optimization config." + }, + "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": "GoogleCloudRetailV2alphaModelServingConfigList" + }, + "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" + }, + "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", + "properties": { + "pageOptimizationEventType": { + "description": "Required. The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types.", + "type": "string" + }, + "panels": { + "description": "Required. A list of panel configurations. Limit = 5.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel" + }, + "type": "array" + }, + "restriction": { + "description": "Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`.", + "enum": [ + "RESTRICTION_UNSPECIFIED", + "NO_RESTRICTION", + "UNIQUE_SERVING_CONFIG_RESTRICTION", + "UNIQUE_MODEL_RESTRICTION", + "UNIQUE_MODEL_TYPE_RESTRICTION" + ], + "enumDescriptions": [ + "Unspecified value for restriction.", + "Allow any ServingConfig to be show on any number of panels. Example: `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity `Panel2 candidates`: home_page_ctr_no_diversity, home_page_ctr_diversity, pdp_cvr_no_diversity `Restriction` = NO_RESTRICTION `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: []", + "Do not allow the same ServingConfig.name to be shown on multiple panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_SERVING_CONFIG_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity_low) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.name to be show on on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.type to be shown on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) *" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate": { + "description": "A candidate to consider for a given panel. Currently only ServingConfig are valid candidates.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "properties": { + "servingConfigId": { + "description": "This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel": { + "description": "An individual panel with a list of ServingConfigs to consider for it.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel", + "properties": { + "candidates": { + "description": "Required. The candidates to consider on the panel.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate" + }, + "type": "array" + }, + "defaultCandidate": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "description": "Required. The default candidate. If the model fails at serving time, we fall back to the default." + }, + "displayName": { + "description": "Optional. The name to display for the panel.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2alphaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2alphaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaPauseModelRequest": { + "description": "Request for pausing training of a model.", + "id": "GoogleCloudRetailV2alphaPauseModelRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaPredictRequest": { "description": "Request message for Predict method.", "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, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.", + "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\"))", "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. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", "type": "object" }, "pageSize": { - "description": "Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", + "description": "Maximum number of results to return. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", "format": "int32", "type": "integer" }, "pageToken": { - "description": "The previous PredictResponse.next_page_token.", + "description": "This field is not used; leave it unset.", "type": "string" }, "params": { "additionalProperties": { "type": "any" }, - "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of an product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category.", + "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of a product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category. * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` field is interpreteted according to the new, attribute-based syntax.", "type": "object" }, "userEvent": { "$ref": "GoogleCloudRetailV2alphaUserEvent", - "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging." + "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserEvent.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserEvent.visitor_id to a random unique ID and leave UserInfo.user_id unset." }, "validateOnly": { "description": "Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.", @@ -3088,7 +4071,7 @@ "additionalProperties": { "type": "any" }, - "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.", + "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Is set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Is set if `returnScore` is set to true in `PredictRequest.params`.", "type": "object" } }, @@ -3108,7 +4091,7 @@ "type": "string" }, "originalPrice": { - "description": "Price of the product without any discount. If zero, by default set to be the price.", + "description": "Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown.", "format": "float", "type": "number" }, @@ -3189,7 +4172,7 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for SearchService.Search.", + "description": "The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.", "format": "google-datetime", "type": "string" }, @@ -3201,14 +4184,14 @@ "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, please 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. 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" }, "type": "array" }, "collectionMemberIds": { - "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", "items": { "type": "string" }, @@ -3230,7 +4213,7 @@ "type": "string" }, "expireTime": { - "description": "The timestamp when this product becomes unavailable for SearchService.Search. 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": "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).", "format": "google-datetime", "type": "string" }, @@ -3250,7 +4233,7 @@ "type": "string" }, "images": { - "description": "Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", + "description": "Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", "items": { "$ref": "GoogleCloudRetailV2alphaImage" }, @@ -3260,6 +4243,14 @@ "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). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", "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.", + "items": { + "$ref": "GoogleCloudRetailV2alphaLocalInventory" + }, + "readOnly": true, + "type": "array" + }, "materials": { "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", "items": { @@ -3303,7 +4294,7 @@ "description": "The rating of this product." }, "retrievableFields": { - "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 Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse may increase response payload size and serving latency.", + "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" }, @@ -3326,7 +4317,7 @@ "type": "string" }, "ttl": { - "description": "Input only. The TTL (time to live) of the product. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "description": "Input only. The TTL (time to live) of the product. 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, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", "format": "google-duration", "type": "string" }, @@ -3415,22 +4406,22 @@ "id": "GoogleCloudRetailV2alphaProductLevelConfig", "properties": { "ingestionProductType": { - "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant` (incompatible with Retail Search): You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" }, "merchantCenterProductIdField": { - "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2alphaPromotion": { - "description": "Promotion information.", + "description": "Promotion specification.", "id": "GoogleCloudRetailV2alphaPromotion", "properties": { "promotionId": { - "description": "ID of the promotion. For example, \"free gift\". The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "description": "Promotion identifier, which is the final component of name. For example, this field is \"free_gift\", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148).", "type": "string" } }, @@ -3472,6 +4463,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaPurgeProductsMetadata", + "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" + }, + "GoogleCloudRetailV2alphaPurgeProductsRequest": { + "description": "Request message for PurgeProducts method.", + "id": "GoogleCloudRetailV2alphaPurgeProductsRequest", + "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" + }, + "GoogleCloudRetailV2alphaPurgeProductsResponse": { + "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": "GoogleCloudRetailV2alphaPurgeProductsResponse", + "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" + }, "GoogleCloudRetailV2alphaPurgeUserEventsRequest": { "description": "Request message for PurgeUserEvents method.", "id": "GoogleCloudRetailV2alphaPurgeUserEventsRequest", @@ -3525,7 +4577,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", "properties": {}, "type": "object" @@ -3535,7 +4587,7 @@ "id": "GoogleCloudRetailV2alphaRejoinUserEventsRequest", "properties": { "userEventRejoinScope": { - "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", + "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an invalid integer value.", "enum": [ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", "JOINED_EVENTS", @@ -3552,7 +4604,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -3586,13 +4638,13 @@ "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesRequest": { - "description": "Request message for RemoveFulfillmentPlaces method.", + "description": "Request message for ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesRequest", "properties": { "allowMissing": { @@ -3619,19 +4671,19 @@ "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the RemoveLocalInventories method.", + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesRequest": { - "description": "Request message for RemoveLocalInventories method.", + "description": "Request message for ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesRequest", "properties": { "allowMissing": { @@ -3654,7 +4706,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse": { - "description": "Response of the RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the RemoveLocalInventories method.", + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse", "properties": {}, "type": "object" @@ -3675,8 +4727,14 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaResumeModelRequest": { + "description": "Request for resuming training of a model.", + "id": "GoogleCloudRetailV2alphaResumeModelRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaRule": { - "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 only boost rules are supported. Currently only supported by the search endpoint.", + "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": "GoogleCloudRetailV2alphaRule", "properties": { "boostAction": { @@ -3763,7 +4821,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRuleFilterAction": { - "description": "* Rule Condition: - No Condition provided is a global match. - 1 or more Condition provided is combined with OR operator. * Action Input: The request query and filter that will be applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", + "description": "* Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", "id": "GoogleCloudRetailV2alphaRuleFilterAction", "properties": { "filter": { @@ -3816,7 +4874,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRuleRedirectAction": { - "description": "Redirects a shopper to a specific page. * Rule Condition: - Must specify Condition. * 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": { @@ -3849,7 +4907,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaRuleTwowaySynonymsAction": { - "description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\". * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", + "description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\": * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", "id": "GoogleCloudRetailV2alphaRuleTwowaySynonymsAction", "properties": { "synonyms": { @@ -3868,19 +4926,19 @@ "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. 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." }, "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 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. 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.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec", - "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Search support team if you are interested in using dynamic facet feature." + "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." }, "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.", @@ -3893,6 +4951,13 @@ "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.", "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.", + "type": "object" + }, "offset": { "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", @@ -3903,7 +4968,7 @@ "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, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "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\"].", "items": { "type": "string" }, @@ -3920,10 +4985,10 @@ }, "personalizationSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestPersonalizationSpec", - "description": "The specification for personalization." + "description": "The specification for personalization. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." }, "query": { - "description": "Raw search query.", + "description": "Raw search query. If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.", "type": "string" }, "queryExpansionSpec": { @@ -3940,7 +5005,7 @@ "LOWEST" ], "enumDescriptions": [ - "Default value. Defaults to RelevanceThreshold.HIGH.", + "Default value. In this case, server behavior defaults to RelevanceThreshold.HIGH.", "High relevance threshold.", "Medium relevance threshold.", "Low relevance threshold.", @@ -3956,18 +5021,22 @@ "FACETED_SEARCH_ONLY" ], "enumDescriptions": [ - "Default value. In this case both product search and faceted search will be performed. Both [SearchResponse.SearchResult] and [SearchResponse.Facet] will be returned.", - "Only product search will be performed. The faceted search will be disabled. Only [SearchResponse.SearchResult] will be returned. [SearchResponse.Facet] will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", - "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_spec and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] will not be returned." + "Default value. In this case both product search and faceted search will be performed. Both SearchResponse.SearchResult and SearchResponse.Facet will be returned.", + "Only product search will be performed. The faceted search will be disabled. Only SearchResponse.SearchResult will be returned. SearchResponse.Facet will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", + "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_specs and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only SearchResponse.Facet will be returned. SearchResponse.SearchResult will not be returned." ], "type": "string" }, + "spellCorrectionSpec": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestSpellCorrectionSpec", + "description": "The spell correction specification that specifies the mode under which spell correction will take effect." + }, "userInfo": { "$ref": "GoogleCloudRetailV2alphaUserInfo", "description": "User information." }, "variantRollupKeys": { - "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.local_inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -3985,7 +5054,7 @@ "id": "GoogleCloudRetailV2alphaSearchRequestBoostSpec", "properties": { "conditionBoostSpecs": { - "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", "items": { "$ref": "GoogleCloudRetailV2alphaSearchRequestBoostSpecConditionBoostSpec" }, @@ -4044,7 +5113,7 @@ "type": "boolean" }, "excludedFilterKeys": { - "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet \"Red\" and 200 products with the color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and having \"colorFamilies\" as FacetKey.key would by default return only \"Red\" products in the search results, and also return \"Red\" with count 100 as the only color facet. Although there are also blue products available, \"Blue\" would not be shown as an available facet value. If \"colorFamilies\" is listed in \"excludedFilterKeys\", then the query returns the facet values \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only \"Red\" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -4055,7 +5124,7 @@ "description": "Required. The facet key specification." }, "limit": { - "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", "type": "integer" } @@ -4066,6 +5135,10 @@ "description": "Specifies how a facet is computed.", "id": "GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey", "properties": { + "caseInsensitive": { + "description": "True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise.", + "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.", "items": { @@ -4085,7 +5158,7 @@ "type": "string" }, "orderBy": { - "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", + "description": "The order in which SearchResponse.Facet.values are returned. Allowed values are: * \"count desc\", which means order by SearchResponse.Facet.values.count descending. * \"value desc\", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", "type": "string" }, "prefixes": { @@ -4096,15 +5169,19 @@ "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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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 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\".", "type": "string" }, "restrictedValues": { - "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", "items": { "type": "string" }, "type": "array" + }, + "returnMinMax": { + "description": "Returns the min and max value for each numerical facet intervals. Ignored for textual facets.", + "type": "boolean" } }, "type": "object" @@ -4121,8 +5198,8 @@ "DISABLED" ], "enumDescriptions": [ - "Default value. Defaults to Mode.AUTO.", - "Let CRS decide whether to use personalization.", + "Default value. In this case, server behavior defaults to Mode.AUTO.", + "Let CRS decide whether to use personalization based on quality of user event data.", "Disable personalization." ], "type": "string" @@ -4142,7 +5219,7 @@ "AUTO" ], "enumDescriptions": [ - "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Unspecified query expansion condition. In this case, server behavior defaults to Condition.DISABLED.", "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", "Automatic query expansion built by Google Retail Search." ], @@ -4155,6 +5232,27 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaSearchRequestSpellCorrectionSpec": { + "description": "The specification for query spell correction.", + "id": "GoogleCloudRetailV2alphaSearchRequestSpellCorrectionSpec", + "properties": { + "mode": { + "description": "The mode under which spell correction should take effect to replace the original search query. Default to Mode.AUTO.", + "enum": [ + "MODE_UNSPECIFIED", + "SUGGESTION_ONLY", + "AUTO" + ], + "enumDescriptions": [ + "Unspecified spell correction mode. In this case, server behavior defaults to Mode.AUTO.", + "Google Retail Search will try to find a spell suggestion if there is any and put in the SearchResponse.corrected_query. The spell suggestion will not be used as the search query.", + "Automatic spell correction built by Google Retail Search. Search will be based on the corrected query if found." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaSearchResponse": { "description": "Response message for SearchService.Search method.", "id": "GoogleCloudRetailV2alphaSearchResponse", @@ -4171,7 +5269,7 @@ "type": "string" }, "correctedQuery": { - "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "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" }, "facets": { @@ -4197,7 +5295,7 @@ "description": "Query expansion information for the returned results." }, "redirectUri": { - "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search is performed, and only redirect_uri and attribution_token are set in the response.", "type": "string" }, "results": { @@ -4250,6 +5348,16 @@ "$ref": "GoogleCloudRetailV2alphaInterval", "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." }, + "maxValue": { + "description": "The maximum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, + "minValue": { + "description": "The minimum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, "value": { "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", "type": "string" @@ -4294,6 +5402,13 @@ "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", "type": "object" }, + "personalLabels": { + "description": "Specifies previous events related to this product for this user based on UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set only when SearchRequest.PersonalizationSpec.mode is SearchRequest.PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that this product has been purchased before.", + "items": { + "type": "string" + }, + "type": "array" + }, "product": { "$ref": "GoogleCloudRetailV2alphaProduct", "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." @@ -4309,11 +5424,11 @@ "type": "object" }, "GoogleCloudRetailV2alphaServingConfig": { - "description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions). The ServingConfig is passed in the search and predict request and together with the Catalog.default_branch, generates results.", + "description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions).", "id": "GoogleCloudRetailV2alphaServingConfig", "properties": { "boostControlIds": { - "description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids 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. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids 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. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", "items": { "type": "string" }, @@ -4324,7 +5439,21 @@ "type": "string" }, "diversityLevel": { - "description": "How much diversity to use in recommendation model results e.g. 'medium-diversity' or 'high-diversity'. Currently supported values: * 'no-diversity' * 'low-diversity' * 'medium-diversity' * 'high-diversity' * 'auto-diversity' If not specified, we choose default based on recommendation model type. Default value: 'no-diversity'. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "How much diversity to use in recommendation model results e.g. `medium-diversity` or `high-diversity`. Currently supported values: * `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If not specified, we choose default based on recommendation model type. Default value: `no-diversity`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "diversityType": { + "description": "What kind of diversity to use - data driven or rule based. If unset, the server behavior defaults to RULE_BASED_DIVERSITY.", + "enum": [ + "DIVERSITY_TYPE_UNSPECIFIED", + "RULE_BASED_DIVERSITY", + "DATA_DRIVEN_DIVERSITY" + ], + "enumDescriptions": [ + "Default value.", + "Rule based diversity.", + "Data driven diversity." + ], "type": "string" }, "doNotAssociateControlIds": { @@ -4339,7 +5468,7 @@ "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. Can only be set if solution_types is SOLUTION_TYPE_SEARCH." }, "enableCategoryFilterLevel": { - "description": "Whether to add additional category filters on the 'similar-items' model. If not specified, we enable it by default. Allowed values are: * 'no-category-match': No additional filtering of original results from the model and the customer's filters. * 'relaxed-category-match': Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "Whether to add additional category filters on the `similar-items` model. If not specified, we enable it by default. Allowed values are: * `no-category-match`: No additional filtering of original results from the model and the customer's filters. * `relaxed-category-match`: Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "facetControlIds": { @@ -4364,11 +5493,11 @@ "type": "array" }, "modelId": { - "description": "The id of the model to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/servingConfig/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", "type": "string" }, "onewaySynonymsControlIds": { @@ -4378,8 +5507,12 @@ }, "type": "array" }, + "personalizationSpec": { + "$ref": "GoogleCloudRetailV2alphaSearchRequestPersonalizationSpec", + "description": "The specification for personalization spec. Can only be set if solution_types is SOLUTION_TYPE_SEARCH. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." + }, "priceRerankingLevel": { - "description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * 'no-price-reranking' * 'low-price-raranking' * 'medium-price-reranking' * 'high-price-reranking' If not specified, we choose default based on model type. Default value: 'no-price-reranking'. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * `no-price-reranking` * `low-price-reranking` * `medium-price-reranking` * `high-price-reranking` If not specified, we choose default based on model type. Default value: `no-price-reranking`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "redirectControlIds": { @@ -4443,13 +5576,13 @@ "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryRequest": { - "description": "Request message for SetInventory method.", + "description": "Request message for ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryRequest", "properties": { "allowMissing": { @@ -4458,7 +5591,7 @@ }, "inventory": { "$ref": "GoogleCloudRetailV2alphaProduct", - "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, ProductService.UpdateProduct should be invoked instead." }, "setMask": { "description": "Indicates which inventory fields in the provided Product to update. At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", @@ -4474,11 +5607,51 @@ "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaTransformedUserEventsMetadata": { + "description": "Metadata related to transform user events operation.", + "id": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "properties": { + "sourceEventsCount": { + "description": "Count of entries in the source user events BigQuery table.", + "format": "int64", + "type": "string" + }, + "transformedEventsCount": { + "description": "Count of entries in the transformed user events BigQuery table, which could be different from the actually imported number of user events.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2alphaTuneModelRequest": { + "description": "Request to manually start a tuning process now (instead of waiting for the periodically scheduled tuning to happen).", + "id": "GoogleCloudRetailV2alphaTuneModelRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2alphaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaUserEvent": { "description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", "id": "GoogleCloudRetailV2alphaUserEvent", @@ -4487,7 +5660,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2alphaCustomAttribute" }, - "description": "Extra user event features to include in the recommendation model. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.", + "description": "Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways.", "type": "object" }, "attributionToken": { @@ -4532,7 +5705,7 @@ "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -4543,7 +5716,7 @@ "type": "string" }, "productDetails": { - "description": "The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` * `search` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", + "description": "The main product details related to the event. This field is optional except for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", "items": { "$ref": "GoogleCloudRetailV2alphaProductDetail" }, @@ -4574,7 +5747,7 @@ "description": "User information." }, "visitorId": { - "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", "type": "string" } }, @@ -4639,7 +5812,7 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when: * setting SearchRequest.user_info. * using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { @@ -4647,24 +5820,62 @@ "type": "string" }, "userId": { - "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaAddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2betaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2betaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2betaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2betaExportErrorsConfig", @@ -4677,7 +5888,7 @@ "type": "object" }, "GoogleCloudRetailV2betaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaExportMetadata", "properties": { "createTime": { @@ -4706,7 +5917,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -4724,7 +5939,22 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2betaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" } }, "type": "object" @@ -4748,14 +5978,14 @@ "id": "GoogleCloudRetailV2betaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2betaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaImportMetadata", "properties": { "createTime": { @@ -4769,11 +5999,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -4829,6 +6059,171 @@ }, "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", + "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" + }, + "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": "GoogleCloudRetailV2betaModelServingConfigList" + }, + "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" + }, + "GoogleCloudRetailV2betaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2betaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2betaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaPurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaPurgeMetadata", @@ -4848,13 +6243,13 @@ "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -4866,29 +6261,58 @@ "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2betaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2betaUserEventImportSummary", @@ -4960,7 +6384,7 @@ "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" @@ -4993,7 +6417,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/retail/v2beta/retail-api.json b/etc/api/retail/v2beta/retail-api.json index 1b164dbdb9..6086ad8652 100644 --- a/etc/api/retail/v2beta/retail-api.json +++ b/etc/api/retail/v2beta/retail-api.json @@ -112,7 +112,7 @@ "catalogs": { "methods": { "completeQuery": { - "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Completes the specified prefix with keyword suggestions. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:completeQuery", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.completeQuery", @@ -128,17 +128,17 @@ "type": "string" }, "dataset": { - "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail This option requires additional allowlisting. Before using cloud-retail, contact Cloud Retail support team first.", + "description": "Determines which dataset to use for fetching completion. \"user-data\" will use the imported dataset through CompletionService.ImportCompletionData. \"cloud-retail\" will use the dataset generated by cloud retail based on user events. If leave empty, it will use the \"user-data\". Current supported values: * user-data * cloud-retail: This option requires enabling auto-learning function first. See [guidelines](https://cloud.google.com/retail/docs/completion-overview#generated-completion-dataset).", "location": "query", "type": "string" }, "deviceType": { - "description": "The device type context for completion suggestions. It is useful to apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", + "description": "The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on different device types, e.g. `DESKTOP`, `MOBILE`. If it is empty, the suggestions are across all device types. Supported formats: * `UNKNOWN_DEVICE_TYPE` * `DESKTOP` * `MOBILE` * A customized string starts with `OTHER_`, e.g. `OTHER_IPHONE`.", "location": "query", "type": "string" }, "languageCodes": { - "description": "The list of languages of the query. This is the BCP-47 language code, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). The maximum number of allowed characters is 255. Only \"en-US\" is currently supported.", + "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", "repeated": true, "type": "string" @@ -155,7 +155,7 @@ "type": "string" }, "visitorId": { - "description": "A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Required field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "location": "query", "type": "string" } @@ -178,7 +178,7 @@ ], "parameters": { "name": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -193,6 +193,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getCompletionConfig": { + "description": "Gets a CompletionConfig.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "GET", + "id": "retail.projects.locations.catalogs.getCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full CompletionConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2betaCompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getDefaultBranch": { "description": "Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified parent catalog.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:getDefaultBranch", @@ -326,7 +351,7 @@ ], "parameters": { "name": { - "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: \"projects/*/locations/*/catalogs/*/attributesConfig\"", + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -349,6 +374,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateCompletionConfig": { + "description": "Updates the CompletionConfigs.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionConfig", + "httpMethod": "PATCH", + "id": "retail.projects.locations.catalogs.updateCompletionConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/completionConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided CompletionConfig to update. The following are the only supported fields: * CompletionConfig.matching_order * CompletionConfig.max_suggestions * CompletionConfig.min_prefix_length * CompletionConfig.auto_learning If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2beta/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2betaCompletionConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaCompletionConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -364,7 +423,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -382,6 +441,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "batchRemoveCatalogAttributes": { + "description": "Removes all specified CatalogAttributes from the AttributesConfig.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:batchRemoveCatalogAttributes", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.attributesConfig.batchRemoveCatalogAttributes", + "parameterOrder": [ + "attributesConfig" + ], + "parameters": { + "attributesConfig": { + "description": "Required. The attributes config resource shared by all catalog attributes being deleted. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+attributesConfig}:batchRemoveCatalogAttributes", + "request": { + "$ref": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeCatalogAttribute": { "description": "Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig:removeCatalogAttribute", @@ -392,7 +479,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -420,7 +507,7 @@ ], "parameters": { "attributesConfig": { - "description": "Required. Full AttributesConfig resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig", + "description": "Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/attributesConfig$", "required": true, @@ -474,7 +561,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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -501,6 +588,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addLocalInventories", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.addLocalInventories", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "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 access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+product}:addLocalInventories", + "request": { + "$ref": "GoogleCloudRetailV2betaAddLocalInventoriesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Product.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products", @@ -585,7 +700,7 @@ ] }, "import": { - "description": "Bulk import of multiple Products. Request processing may be synchronous. No partial updating is supported. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", + "description": "Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created. Note that it is possible for a subset of the Products to be successfully updated.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.import", @@ -681,7 +796,7 @@ "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned.", + "description": "Indicates which fields in the provided Product to update. The immutable and output only fields are NOT supported. If not set, all supported fields (the fields that are neither immutable nor output only) are updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned. The attribute key can be updated by setting the mask path as \"attributes.${key_name}\". If a key name is present in the mask but not in the patching product from the request, this key will be deleted after the update.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -699,7 +814,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 GetProduct or ListProducts. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -726,8 +841,36 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeLocalInventories", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.branches.products.removeLocalInventories", + "parameterOrder": [ + "product" + ], + "parameters": { + "product": { + "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 access the Product, regardless of whether or not it exists, a PERMISSION_DENIED error is returned.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/branches/[^/]+/products/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+product}:removeLocalInventories", + "request": { + "$ref": "GoogleCloudRetailV2betaRemoveLocalInventoriesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "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 will be enqueued and processed downstream. As a consequence, when a response is returned, updates are not immediately manifested in the Product queried by GetProduct or ListProducts. When inventory is updated with CreateProduct and UpdateProduct, the specified inventory field value(s) will overwrite any existing value(s) while ignoring the last update time for this field. Furthermore, the last update time for the specified inventory fields will be overwritten to the time of the CreateProduct or UpdateProduct request. If no inventory fields are set in CreateProductRequest.product, then any pre-existing inventory information for this product will be used. If no inventory fields are set in SetInventoryRequest.set_mask, then any existing inventory information will be preserved. Pre-existing inventory information can only be updated with SetInventory, AddFulfillmentPlaces, and RemoveFulfillmentPlaces. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "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.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:setInventory", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.setInventory", @@ -761,7 +904,7 @@ "completionData": { "methods": { "import": { - "description": "Bulk import of processed completion dataset. Request processing may be synchronous. Partial updating is not supported. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not supported. The operation is successfully finished only after the imported suggestions are indexed successfully and ready for serving. The process takes hours. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/completionData:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.completionData.import", @@ -807,7 +950,7 @@ "type": "string" }, "parent": { - "description": "Required. Full resource name of parent catalog. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -835,7 +978,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Control to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}", + "description": "Required. The resource name of the Control to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -860,7 +1003,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Control to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}", + "description": "Required. The resource name of the Control to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/controls/{control_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -876,7 +1019,7 @@ ] }, "list": { - "description": "Lists all Controls linked to this catalog.", + "description": "Lists all Controls by their parent Catalog.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls", "httpMethod": "GET", "id": "retail.projects.locations.catalogs.controls.list", @@ -901,7 +1044,7 @@ "type": "string" }, "parent": { - "description": "Required. The catalog resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -917,7 +1060,7 @@ ] }, "patch": { - "description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to delete does not exist, a NOT_FOUND error is returned.", + "description": "Updates a Control. Control cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned. If the Control to update does not exist, a NOT_FOUND error is returned.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/controls/{controlsId}", "httpMethod": "PATCH", "id": "retail.projects.locations.catalogs.controls.patch", @@ -926,7 +1069,7 @@ ], "parameters": { "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/controls/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/controls/[^/]+$", "required": true, @@ -952,6 +1095,222 @@ } } }, + "models": { + "methods": { + "create": { + "description": "Creates a new model.", + "flatPath": "v2beta/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": "v2beta/{+parent}/models", + "request": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an existing model.", + "flatPath": "v2beta/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": "v2beta/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "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", + "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": "v2beta/{+parent}/models", + "response": { + "$ref": "GoogleCloudRetailV2betaListModelsResponse" + }, + "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": "v2beta/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": "v2beta/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "pause": { + "description": "Pauses the training of an existing model.", + "flatPath": "v2beta/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": "v2beta/{+name}:pause", + "request": { + "$ref": "GoogleCloudRetailV2betaPauseModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "resume": { + "description": "Resumes the training of an existing model.", + "flatPath": "v2beta/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": "v2beta/{+name}:resume", + "request": { + "$ref": "GoogleCloudRetailV2betaResumeModelRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "tune": { + "description": "Tunes an existing model.", + "flatPath": "v2beta/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": "v2beta/{+name}:tune", + "request": { + "$ref": "GoogleCloudRetailV2betaTuneModelRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "get": { @@ -1034,7 +1393,7 @@ ], "parameters": { "placement": { - "description": "Required. Full resource name of the format: {name=projects/*/locations/global/catalogs/default_catalog/placements/*} The ID of the Recommendations AI placement. Before you can request predictions from your model, you must create at least one placement for it. For more information, see [Managing placements](https://cloud.google.com/retail/recommendations-ai/docs/manage-placements). The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements", + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1053,7 +1412,7 @@ ] }, "search": { - "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search.", + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/placements/{placementsId}:search", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.placements.search", @@ -1062,7 +1421,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the search engine placement, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving configuration name and the set of models that will be used to make the search.", + "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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1094,7 +1453,7 @@ ], "parameters": { "servingConfig": { - "description": "Required. The source ServingConfig resource name . Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1122,7 +1481,7 @@ ], "parameters": { "parent": { - "description": "Required. Full resource name of parent. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -1155,7 +1514,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the ServingConfig to delete. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The resource name of the ServingConfig to delete. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1180,7 +1539,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the ServingConfig to get. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The resource name of the ServingConfig to get. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1216,7 +1575,7 @@ "type": "string" }, "parent": { - "description": "Required. The catalog resource name. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}", + "description": "Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, @@ -1241,7 +1600,7 @@ ], "parameters": { "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/servingConfig/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1265,6 +1624,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "predict": { + "description": "Makes a recommendation prediction.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:predict", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.predict", + "parameterOrder": [ + "placement" + ], + "parameters": { + "placement": { + "description": "Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or `{placement=projects/*/locations/global/catalogs/default_catalog/placements/*}`. We recommend using the `servingConfigs` resource. `placements` is a legacy resource. The ID of the Recommendations AI serving config or placement. Before you can request predictions from your model, you must create at least one serving config or placement for it. For more information, see [Manage serving configs] (https://cloud.google.com/retail/docs/manage-configs). The full list of available serving configs can be seen at https://console.cloud.google.com/ai/retail/catalogs/default_catalog/configs", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+placement}:predict", + "request": { + "$ref": "GoogleCloudRetailV2betaPredictRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaPredictResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "removeControl": { "description": "Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a NOT_FOUND error if the Control is not enabled for the ServingConfig.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:removeControl", @@ -1275,7 +1662,7 @@ ], "parameters": { "servingConfig": { - "description": "Required. The source ServingConfig resource name . Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}", + "description": "Required. The source ServingConfig resource name . Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/servingConfigs/{serving_config_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -1292,6 +1679,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "search": { + "description": "Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.", + "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/servingConfigs/{servingConfigsId}:search", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.servingConfigs.search", + "parameterOrder": [ + "placement" + ], + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta/{+placement}:search", + "request": { + "$ref": "GoogleCloudRetailV2betaSearchRequest" + }, + "response": { + "$ref": "GoogleCloudRetailV2betaSearchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -1319,6 +1734,16 @@ "required": true, "type": "string" }, + "prebuiltRule": { + "description": "The prebuilt rule name that can convert a specific type of raw_json. For example: \"ga4_bq\" rule for the GA4 user event schema.", + "location": "query", + "type": "string" + }, + "rawJson": { + "description": "An arbitrary serialized JSON string that contains necessary information that can comprise a user event. When this field is specified, the user_event field will be ignored. Note: line-delimited JSON is not supported, a single JSON only.", + "location": "query", + "type": "string" + }, "uri": { "description": "The URL including cgi-parameters but excluding the hash fragment with a length limit of 5,000 characters. This is often more useful than the referer URL, because many browsers only send the domain for 3rd party requests.", "location": "query", @@ -1339,7 +1764,7 @@ ] }, "import": { - "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully inserted. Operation.metadata is of type ImportMetadata.", + "description": "Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped. Use this method for backfilling historical user events. `Operation.response` is of type `ImportResponse`. Note that it is possible for a subset of the items to be successfully inserted. `Operation.metadata` is of type `ImportMetadata`.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:import", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.import", @@ -1395,7 +1820,7 @@ ] }, "rejoin": { - "description": "Triggers a user event rejoin operation with latest product catalog. Events will not be annotated with detailed product information if product is missing from the catalog at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of product catalog. It can also be used to correct events joined with wrong product catalog.", + "description": "Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed product information for products that are missing from the catalog when the user event is ingested. These events are stored as unjoined events with limited usage on training and serving. You can use this method to start a join operation on specified events with the latest version of product catalog. You can also use this method to correct events joined with the wrong product catalog. A rejoin operation can take hours or days to complete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/userEvents:rejoin", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.userEvents.rejoin", @@ -1437,6 +1862,11 @@ "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", "required": true, "type": "string" + }, + "writeAsync": { + "description": "If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write. Therefore, silent failures can occur even if the API returns success. In case of silent failures, error messages can be found in Stackdriver logs.", + "location": "query", + "type": "boolean" } }, "path": "v2beta/{+parent}/userEvents:write", @@ -1599,7 +2029,7 @@ } } }, - "revision": "20220224", + "revision": "20230117", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -1700,7 +2130,7 @@ "type": "object" }, "GoogleCloudRetailLoggingImportErrorContext": { - "description": "The error payload that is populated on LRO import APIs. Including: \"google.cloud.retail.v2.ProductService.ImportProducts\" \"google.cloud.retail.v2.EventService.ImportUserEvents\"", + "description": "The error payload that is populated on LRO import APIs, including \"google.cloud.retail.v2.ProductService.ImportProducts\" and \"google.cloud.retail.v2.EventService.ImportUserEvents\".", "id": "GoogleCloudRetailLoggingImportErrorContext", "properties": { "catalogItem": { @@ -1753,17 +2183,29 @@ "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2AddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2AddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2AddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2AddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2AddLocalInventoriesResponse", + "properties": {}, + "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", @@ -1783,14 +2225,14 @@ "id": "GoogleCloudRetailV2ImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2ImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2ImportMetadata", "properties": { "createTime": { @@ -1804,11 +2246,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -1883,13 +2325,13 @@ "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2RejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2RejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -1901,25 +2343,37 @@ "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2RemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2RemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2RemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2RemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2SetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2SetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2SetInventoryResponse", "properties": {}, "type": "object" @@ -1942,29 +2396,55 @@ "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the AddLocalInventories method.", + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaAddLocalInventoriesResponse": { - "description": "Response of the AddLocalInventories API. Currently empty because there is no meaningful response populated from the AddLocalInventories method.", + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", "id": "GoogleCloudRetailV2alphaAddLocalInventoriesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2alphaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2alphaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2alphaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2alphaExportErrorsConfig", @@ -1977,7 +2457,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaExportMetadata", "properties": { "createTime": { @@ -2006,7 +2486,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -2024,7 +2508,22 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2alphaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" } }, "type": "object" @@ -2048,14 +2547,14 @@ "id": "GoogleCloudRetailV2alphaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2alphaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaImportMetadata", "properties": { "createTime": { @@ -2069,11 +2568,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -2081,6 +2580,10 @@ "format": "int64", "type": "string" }, + "transformedUserEventsMetadata": { + "$ref": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "description": "Metadata related to transform user events." + }, "updateTime": { "description": "Operation last update time. If the operation is done, this is also the finish time.", "format": "google-datetime", @@ -2129,12 +2632,296 @@ }, "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", + "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" + }, + "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" + }, + "pageOptimizationConfig": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", + "description": "Optional. The page optimization config." + }, + "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": "GoogleCloudRetailV2alphaModelServingConfigList" + }, + "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" + }, + "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", + "properties": { + "pageOptimizationEventType": { + "description": "Required. The type of UserEvent this page optimization is shown for. Each page has an associated event type - this will be the corresponding event type for the page that the page optimization model is used on. Supported types: * `add-to-cart`: Products being added to cart. * `detail-page-view`: Products detail page viewed. * `home-page-view`: Homepage viewed * `category-page-view`: Homepage viewed * `shopping-cart-page-view`: User viewing a shopping cart. `home-page-view` only allows models with type `recommended-for-you`. All other page_optimization_event_type allow all Model.types.", + "type": "string" + }, + "panels": { + "description": "Required. A list of panel configurations. Limit = 5.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel" + }, + "type": "array" + }, + "restriction": { + "description": "Optional. How to restrict results across panels e.g. can the same ServingConfig be shown on multiple panels at once. If unspecified, default to `UNIQUE_MODEL_RESTRICTION`.", + "enum": [ + "RESTRICTION_UNSPECIFIED", + "NO_RESTRICTION", + "UNIQUE_SERVING_CONFIG_RESTRICTION", + "UNIQUE_MODEL_RESTRICTION", + "UNIQUE_MODEL_TYPE_RESTRICTION" + ], + "enumDescriptions": [ + "Unspecified value for restriction.", + "Allow any ServingConfig to be show on any number of panels. Example: `Panel1 candidates`: pdp_ctr, pdp_cvr, home_page_ctr_no_diversity `Panel2 candidates`: home_page_ctr_no_diversity, home_page_ctr_diversity, pdp_cvr_no_diversity `Restriction` = NO_RESTRICTION `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: []", + "Do not allow the same ServingConfig.name to be shown on multiple panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_SERVING_CONFIG_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity_low) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.name to be show on on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) *", + "Do not allow multiple ServingConfigs with same Model.type to be shown on different panels. Example: `Panel1 candidates`: * pdp_ctr, pdp_cvr, home_page_ctr_no_diversity * `Panel2 candidates`: * home_page_ctr_no_diversity, home_page_ctr_diversity_low, pdp_cvr_no_diversity * `Restriction` = `UNIQUE_MODEL_RESTRICTION` `Valid combinations`: * * (pdp_ctr, home_page_ctr_no_diversity) * (pdp_ctr, home_page_ctr_diversity) * (pdp_cvr, home_page_ctr_no_diversity) * (pdp_cvr, home_page_ctr_diversity_low) * (home_page_ctr_no_diversity, pdp_cvr_no_diversity) * `Invalid combinations`: * * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_ctr, pdp_cvr_no_diversity) * (pdp_cvr, pdp_cvr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_no_diversity) * (home_page_ctr_no_diversity, home_page_ctr_diversity) *" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate": { + "description": "A candidate to consider for a given panel. Currently only ServingConfig are valid candidates.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "properties": { + "servingConfigId": { + "description": "This has to be a valid ServingConfig identifier. For example, for a ServingConfig with full name: `projects/*/locations/global/catalogs/default_catalog/servingConfigs/my_candidate_config`, this would be `my_candidate_config`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel": { + "description": "An individual panel with a list of ServingConfigs to consider for it.", + "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfigPanel", + "properties": { + "candidates": { + "description": "Required. The candidates to consider on the panel.", + "items": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate" + }, + "type": "array" + }, + "defaultCandidate": { + "$ref": "GoogleCloudRetailV2alphaModelPageOptimizationConfigCandidate", + "description": "Required. The default candidate. If the model fails at serving time, we fall back to the default." + }, + "displayName": { + "description": "Optional. The name to display for the panel.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2alphaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2alphaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2alphaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaPurgeMetadata": { "description": "Metadata related to the progress of the Purge operation. This will be returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2alphaPurgeMetadata", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaPurgeProductsMetadata": { + "description": "Metadata related to the progress of the PurgeProducts operation. This will be returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2alphaPurgeProductsMetadata", + "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" + }, + "GoogleCloudRetailV2alphaPurgeProductsResponse": { + "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": "GoogleCloudRetailV2alphaPurgeProductsResponse", + "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" + }, "GoogleCloudRetailV2alphaPurgeUserEventsResponse": { "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": "GoogleCloudRetailV2alphaPurgeUserEventsResponse", @@ -2148,13 +2935,13 @@ "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2alphaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -2166,41 +2953,75 @@ "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2alphaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata": { - "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the RemoveLocalInventories method.", + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse": { - "description": "Response of the RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the RemoveLocalInventories method.", + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", "id": "GoogleCloudRetailV2alphaRemoveLocalInventoriesResponse", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2alphaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2alphaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaTransformedUserEventsMetadata": { + "description": "Metadata related to transform user events operation.", + "id": "GoogleCloudRetailV2alphaTransformedUserEventsMetadata", + "properties": { + "sourceEventsCount": { + "description": "Count of entries in the source user events BigQuery table.", + "format": "int64", + "type": "string" + }, + "transformedEventsCount": { + "description": "Count of entries in the transformed user events BigQuery table, which could be different from the actually imported number of user events.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2alphaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2alphaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2alphaUserEventImportSummary": { "description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", "id": "GoogleCloudRetailV2alphaUserEventImportSummary", @@ -2241,13 +3062,13 @@ "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the AddFulfillmentPlaces method.", + "description": "Metadata related to the progress of the AddFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest": { - "description": "Request message for AddFulfillmentPlaces method.", + "description": "Request message for ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesRequest", "properties": { "addTime": { @@ -2274,11 +3095,51 @@ "type": "object" }, "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse": { - "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the AddFulfillmentPlaces method.", + "description": "Response of the AddFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.AddFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaAddFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaAddLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the AddLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaAddLocalInventoriesRequest": { + "description": "Request message for ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesRequest", + "properties": { + "addMask": { + "description": "Indicates which inventory fields in the provided list of LocalInventory to update. The field is updated to the provided value. If a field is set while the place does not have a previous local inventory, the local inventory at that store is created. If a field is set while the value of that field is not provided, the original field value, if it exists, is deleted. If the mask is not set or set with empty paths, all inventory fields will be updated. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", + "format": "google-fieldmask", + "type": "string" + }, + "addTime": { + "description": "The time when the inventory updates are issued. Used to prevent out-of-order updates on local inventory fields. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + }, + "allowMissing": { + "description": "If set to true, and the Product is not found, the local inventory will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", + "type": "boolean" + }, + "localInventories": { + "description": "Required. A list of inventory information at difference places. Each place is identified by its place ID. At most 3000 inventories are allowed per request.", + "items": { + "$ref": "GoogleCloudRetailV2betaLocalInventory" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaAddLocalInventoriesResponse": { + "description": "Response of the ProductService.AddLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.AddLocalInventories method.", + "id": "GoogleCloudRetailV2betaAddLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaAttributesConfig": { "description": "Catalog level attribute config.", "id": "GoogleCloudRetailV2betaAttributesConfig", @@ -2291,8 +3152,8 @@ "CATALOG_LEVEL_ATTRIBUTE_CONFIG" ], "enumDescriptions": [ - "Value used when unset. Defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", - "At this level, we honor the attribute configurations set in Product.attribtues.", + "Value used when unset. In this case, server behavior defaults to CATALOG_LEVEL_ATTRIBUTE_CONFIG.", + "At this level, we honor the attribute configurations set in Product.attributes.", "At this level, we honor the attribute configurations set in CatalogConfig.attribute_configs." ], "readOnly": true, @@ -2306,7 +3167,7 @@ "type": "object" }, "name": { - "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: \"projects/*/locations/*/catalogs/*/attributesConfig\"", + "description": "Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`", "type": "string" } }, @@ -2333,12 +3194,62 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest": { + "description": "Request for CatalogService.BatchRemoveCatalogAttributes method.", + "id": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesRequest", + "properties": { + "attributeKeys": { + "description": "Required. The attribute name keys of the CatalogAttributes to delete. A maximum of 1000 catalog attributes can be deleted in a batch.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse": { + "description": "Response of the CatalogService.BatchRemoveCatalogAttributes.", + "id": "GoogleCloudRetailV2betaBatchRemoveCatalogAttributesResponse", + "properties": { + "deletedCatalogAttributes": { + "description": "Catalog attributes that were deleted. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted.", + "items": { + "type": "string" + }, + "type": "array" + }, + "resetCatalogAttributes": { + "description": "Catalog attributes that were reset. 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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaBigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2betaBigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaBigQuerySource": { "description": "BigQuery source import data from.", "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`: This feature is in private preview. Please contact the support team for importing Google Analytics 4 events. The schema is available here: https://support.google.com/analytics/answer/7029846.", + "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.", "type": "string" }, "datasetId": { @@ -2351,7 +3262,7 @@ }, "partitionDate": { "$ref": "GoogleTypeDate", - "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`." + "description": "BigQuery time partitioned table's _PARTITIONDATE in YYYY-MM-DD format. Only supported in ImportProductsRequest." }, "projectId": { "description": "The project ID (can be project # or ID) that the BigQuery source is in with a length limit of 128 characters. If not specified, inherits the project ID from the parent request.", @@ -2372,6 +3283,10 @@ "description": "Required. Immutable. The catalog display name. This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" }, + "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." + }, "name": { "description": "Required. Immutable. The fully qualified resource name of the catalog.", "type": "string" @@ -2388,51 +3303,93 @@ "id": "GoogleCloudRetailV2betaCatalogAttribute", "properties": { "dynamicFacetableOption": { - "description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.", "enum": [ "DYNAMIC_FACETABLE_OPTION_UNSPECIFIED", "DYNAMIC_FACETABLE_ENABLED", "DYNAMIC_FACETABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to DYNAMIC_FACETABLE_ENABLED.", + "Value used when unset.", "Dynamic facetable option enabled for an attribute.", "Dynamic facetable option disabled for an attribute." ], "type": "string" }, + "exactSearchableOption": { + "description": "If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.", + "enum": [ + "EXACT_SEARCHABLE_OPTION_UNSPECIFIED", + "EXACT_SEARCHABLE_ENABLED", + "EXACT_SEARCHABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Exact searchable option enabled for an attribute.", + "Exact searchable option disabled for an attribute." + ], + "type": "string" + }, "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 AddCatalogAttribute, ImportCatalogAttributes, or UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only CatalogAttributes that are not in use by products can be deleted. CatalogAttributes that are in use by products 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.", + "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.", + "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.", "enum": [ "INDEXABLE_OPTION_UNSPECIFIED", "INDEXABLE_ENABLED", "INDEXABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to INDEXABLE_ENABLED.", + "Value used when unset.", "Indexable option enabled for an attribute.", "Indexable option disabled for an attribute." ], "type": "string" }, "key": { - "description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`.", + "description": "Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.", + "type": "string" + }, + "recommendationsFilteringOption": { + "description": "When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if RECOMMENDATIONS_FILTERING_ENABLED, attribute values are filterable for recommendations. This option works for categorical features only, does not work for numerical features, inventory filtering.", + "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" + }, + "retrievableOption": { + "description": "If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.", + "enum": [ + "RETRIEVABLE_OPTION_UNSPECIFIED", + "RETRIEVABLE_ENABLED", + "RETRIEVABLE_DISABLED" + ], + "enumDescriptions": [ + "Value used when unset.", + "Retrievable option enabled for an attribute.", + "Retrievable option disabled for an attribute." + ], "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.", + "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.", "enum": [ "SEARCHABLE_OPTION_UNSPECIFIED", "SEARCHABLE_ENABLED", "SEARCHABLE_DISABLED" ], "enumDescriptions": [ - "Value used when unset. Defaults to SEARCHABLE_DISABLED.", + "Value used when unset.", "Searchable option enabled for an attribute.", "Searchable option disabled for an attribute." ], @@ -2468,7 +3425,7 @@ "type": "array" }, "colors": { - "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 25 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", + "description": "The color display names, which may be different from standard color family names, such as the color aliases used in the website frontend. Normally it is expected to have only 1 color. May consider using single \"Mixed\" instead of multiple values. A maximum of 75 colors are allowed. Each value must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [color](https://support.google.com/merchants/answer/6324487). Schema.org property [Product.color](https://schema.org/color).", "items": { "type": "string" }, @@ -2482,7 +3439,7 @@ "id": "GoogleCloudRetailV2betaCompleteQueryResponse", "properties": { "attributionToken": { - "description": "A unique complete token. This should be included in the SearchRequest resulting from this completion, which enables accurate attribution of complete model performance.", + "description": "A unique complete token. This should be included in the UserEvent.completion_detail for search events resulting from this completion, which enables accurate attribution of complete model performance.", "type": "string" }, "completionResults": { @@ -2493,7 +3450,7 @@ "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 cases. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "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.", "items": { "$ref": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult" }, @@ -2510,7 +3467,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2betaCustomAttribute" }, - "description": "Additional custom attributes ingested through BigQuery.", + "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" }, "suggestion": { @@ -2531,6 +3488,65 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCompletionConfig": { + "description": "Catalog level autocomplete config for customers to customize autocomplete feature's settings.", + "id": "GoogleCloudRetailV2betaCompletionConfig", + "properties": { + "allowlistInputConfig": { + "$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete allowlist phrases.", + "readOnly": true + }, + "autoLearning": { + "description": "If set to true, the auto learning function is enabled. Auto learning uses user data to generate suggestions using ML techniques. Default value is false. Only after enabling auto learning can users use `cloud-retail` data in CompleteQueryRequest.", + "type": "boolean" + }, + "denylistInputConfig": { + "$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete denylist phrases.", + "readOnly": true + }, + "lastAllowlistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest allowlist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "type": "string" + }, + "lastDenylistImportOperation": { + "description": "Output only. Name of the LRO corresponding to the latest denylist import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "readOnly": true, + "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.", + "readOnly": true, + "type": "string" + }, + "matchingOrder": { + "description": "Specifies the matching order for autocomplete suggestions, e.g., a query consisting of 'sh' with 'out-of-order' specified would suggest \"women's shoes\", whereas a query of 'red s' with 'exact-prefix' specified would suggest \"red shoes\". Currently supported values: * 'out-of-order' * 'exact-prefix' Default value: 'exact-prefix'.", + "type": "string" + }, + "maxSuggestions": { + "description": "The maximum number of autocomplete suggestions returned per term. Default value is 20. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "minPrefixLength": { + "description": "The minimum number of characters needed to be typed in order to get suggestions. Default value is 2. If left unset or set to 0, then will fallback to default value. Value range is 1 to 20.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. Immutable. Fully qualified name `projects/*/locations/*/catalogs/*/completionConfig`", + "type": "string" + }, + "suggestionsInputConfig": { + "$ref": "GoogleCloudRetailV2betaCompletionDataInputConfig", + "description": "Output only. The source data for the latest import of the autocomplete suggestion phrases.", + "readOnly": true + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaCompletionDataInputConfig": { "description": "The input config source for completion data.", "id": "GoogleCloudRetailV2betaCompletionDataInputConfig", @@ -2592,7 +3608,7 @@ "type": "boolean" }, "value": { - "description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. Example) \"a b c\" is 3 terms and allowed, \" a b c d\" is 4 terms and not allowed for partial match.", + "description": "The value of the term to match on. Value cannot be empty. Value can have at most 3 terms if specified as a partial match. Each space separated string is considered as one term. For example, \"a b c\" is 3 terms and allowed, but \" a b c d\" is 4 terms and not allowed for a partial match.", "type": "string" } }, @@ -2616,11 +3632,11 @@ "type": "object" }, "GoogleCloudRetailV2betaControl": { - "description": "Configures dynamic serving time metadata that is used to pre and post process search/recommendation model results.", + "description": "Configures dynamic metadata that can be linked to a ServingConfig and affect search or recommendation results at serving time.", "id": "GoogleCloudRetailV2betaControl", "properties": { "associatedServingConfigIds": { - "description": "Output only. List of serving configuration ids that that are associated with this control. Note the association is managed via the ServingConfig, this is an output only denormalizeed view. Assumed to be in the same catalog.", + "description": "Output only. List of serving config ids that are associated with this control in the same Catalog. Note the association is managed via the ServingConfig, this is an output only denormalized view.", "items": { "type": "string" }, @@ -2633,18 +3649,35 @@ }, "facetSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestFacetSpec", - "description": "A facet specification to perform faceted search." + "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": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/controls/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/controls/*`", "type": "string" }, "rule": { "$ref": "GoogleCloudRetailV2betaRule", "description": "A rule control - a condition-action pair. Enacts a set action when the condition is triggered. For example: Boost \"gShoe\" when query full matches \"Running Shoes\"." }, + "searchSolutionUseCase": { + "description": "Specifies the use case for the control. Affects what condition fields can be set. Only settable by search controls. Will default to SEARCH_SOLUTION_USE_CASE_SEARCH if not specified. Currently only allow one search_solution_use_case per control.", + "items": { + "enum": [ + "SEARCH_SOLUTION_USE_CASE_UNSPECIFIED", + "SEARCH_SOLUTION_USE_CASE_SEARCH", + "SEARCH_SOLUTION_USE_CASE_BROWSE" + ], + "enumDescriptions": [ + "The value when it's unspecified. In this case, server behavior defaults to SEARCH_SOLUTION_USE_CASE_SEARCH.", + "Search use case. Expects the traffic has a non-empty query.", + "Browse use case. Expects the traffic has an empty query." + ], + "type": "string" + }, + "type": "array" + }, "solutionTypes": { - "description": "Required. Immutable. The solution types that the serving config is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", + "description": "Required. Immutable. The solution types that the control is used for. Currently we support setting only one type of solution at creation time. Only `SOLUTION_TYPE_SEARCH` value is supported at the moment. If no solution type is provided at creation time, will default to SOLUTION_TYPE_SEARCH.", "items": { "enum": [ "SOLUTION_TYPE_UNSPECIFIED", @@ -2663,12 +3696,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaCreateModelMetadata": { + "description": "Metadata associated with a create operation.", + "id": "GoogleCloudRetailV2betaCreateModelMetadata", + "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" + }, "GoogleCloudRetailV2betaCustomAttribute": { "description": "A custom attribute that is not explicitly modeled in Product.", "id": "GoogleCloudRetailV2betaCustomAttribute", "properties": { "indexable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', if true, custom attribute values are indexed, so that it 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.", + "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" }, "numbers": { @@ -2680,7 +3724,7 @@ "type": "array" }, "searchable": { - "description": "This field will only be used when AttributesConfig.attribute_config_level of the Catalog is 'PRODUCT_LEVEL_ATTRIBUTE_CONFIG', 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.", + "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" }, "text": { @@ -2705,7 +3749,7 @@ "type": "object" }, "GoogleCloudRetailV2betaExportMetadata": { - "description": "Metadata related to the progress of the Export operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaExportMetadata", "properties": { "createTime": { @@ -2734,7 +3778,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors in the request if set." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -2752,7 +3800,11 @@ }, "errorsConfig": { "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", - "description": "Echoes the destination for the complete errors if this field was set in the request." + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." } }, "type": "object" @@ -2775,12 +3827,23 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaGcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2betaGcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaGcsSource": { - "description": "Google Cloud Storage location for input content. format.", + "description": "Google Cloud Storage location for input content.", "id": "GoogleCloudRetailV2betaGcsSource", "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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * 'control' (default): One JSON Control per line. Supported values for catalog attribute imports: * 'catalog_attribute' (default): One CSV CatalogAttribute 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`: Using https://support.google.com/analytics/answer/3437719. Supported values for control imports: * `control` (default): One JSON Control per line. Supported values for catalog attribute imports: * `catalog_attribute` (default): One CSV CatalogAttribute per line.", "type": "string" }, "inputUris": { @@ -2814,7 +3877,7 @@ "type": "object" }, "GoogleCloudRetailV2betaImage": { - "description": "Product thumbnail/detail image.", + "description": "Product image. Recommendations AI and Retail Search do not use product images to improve prediction and search results. However, product images can be returned in results, and are shown in prediction or search previews in the console.", "id": "GoogleCloudRetailV2betaImage", "properties": { "height": { @@ -2843,7 +3906,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" } }, @@ -2868,14 +3931,14 @@ "id": "GoogleCloudRetailV2betaImportErrorsConfig", "properties": { "gcsPrefix": { - "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors will be written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", + "description": "Google Cloud Storage prefix for import errors. This must be an empty, existing Cloud Storage directory. Import errors are written to sharded files in this directory, one per line, as a JSON-encoded `google.rpc.Status` message.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2betaImportMetadata": { - "description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", + "description": "Metadata related to the progress of the Import operation. This is returned by the google.longrunning.Operation.metadata field.", "id": "GoogleCloudRetailV2betaImportMetadata", "properties": { "createTime": { @@ -2889,11 +3952,11 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`.", + "description": "Pub/Sub topic 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}`.", "type": "string" }, "requestId": { - "description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", + "description": "Deprecated. This field is never set.", "type": "string" }, "successCount": { @@ -2922,7 +3985,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Pub/Sub topic for receiving notification. If this field is set, when the import is finished, a notification will be sent to specified Pub/Sub topic. The message data will be JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "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.", "type": "string" }, "reconciliationMode": { @@ -2935,16 +3998,16 @@ "enumDescriptions": [ "Defaults to INCREMENTAL.", "Inserts new products or updates existing products.", - "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location. Can only be set while using BigQuerySource. And the BigQuery dataset must be created in the data location \"us (multiple regions in United States)\", otherwise a PERMISSION_DENIED error is thrown. Add the IAM permission \"BigQuery Data Viewer\" for cloud-retail-customer-data-access@system.gserviceaccount.com before using this feature otherwise an error is thrown. This feature is only available for users who have Retail Search enabled. Please submit a form [here](https://cloud.google.com/contact) to contact cloud sales if you are interested in using Retail Search." + "Calculates diff and replaces the entire product dataset. Existing products may be deleted if they are not present in the source location." ], "type": "string" }, "requestId": { - "description": "Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long and must match the pattern: `[a-zA-Z0-9_]+`. This is returned as Operation.name in ImportMetadata. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", + "description": "Deprecated. This field has no effect.", "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided imported 'products' to update. If not set, will by default update all fields.", + "description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated.", "format": "google-fieldmask", "type": "string" } @@ -3069,6 +4132,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaListModelsResponse": { + "description": "Response to a ListModelRequest.", + "id": "GoogleCloudRetailV2betaListModelsResponse", + "properties": { + "models": { + "description": "List of Models.", + "items": { + "$ref": "GoogleCloudRetailV2betaModel" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token, if not returned indicates the last page.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaListProductsResponse": { "description": "Response message for ProductService.ListProducts method.", "id": "GoogleCloudRetailV2betaListProductsResponse", @@ -3105,40 +4186,308 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaLocalInventory": { + "description": "The inventory information at a place (e.g. a store) identified by a place ID.", + "id": "GoogleCloudRetailV2betaLocalInventory", + "properties": { + "attributes": { + "additionalProperties": { + "$ref": "GoogleCloudRetailV2betaCustomAttribute" + }, + "description": "Additional local inventory attributes, for example, store name, promotion tags, etc. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * At most 30 attributes are allowed. * The key must be a UTF-8 encoded string with a length limit of 32 characters. * The key must match the pattern: `a-zA-Z0-9*`. For example, key0LikeThis or KEY_1_LIKE_THIS. * The attribute values must be of the same type (text or number). * Only 1 value is allowed for each attribute. * For text values, the length limit is 256 UTF-8 characters. * The attribute does not support search. The `searchable` field should be unset or set to false. * The max summed total bytes of custom attribute keys and values per product is 5MiB.", + "type": "object" + }, + "fulfillmentTypes": { + "description": "Input only. Supported fulfillment types. Valid fulfillment type values include commonly used types (such as pickup in store and same day delivery), and custom types. Customers have to map custom types to their display names before rendering UI. Supported values: * \"pickup-in-store\" * \"ship-to-store\" * \"same-day-delivery\" * \"next-day-delivery\" * \"custom-type-1\" * \"custom-type-2\" * \"custom-type-3\" * \"custom-type-4\" * \"custom-type-5\" If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. All the elements must be distinct. Otherwise, an INVALID_ARGUMENT error is returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "placeId": { + "description": "The place ID for the current set of inventory information.", + "type": "string" + }, + "priceInfo": { + "$ref": "GoogleCloudRetailV2betaPriceInfo", + "description": "Product price and cost information. Google Merchant Center property [price](https://support.google.com/merchants/answer/6324371)." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaMerchantCenterFeedFilter": { + "description": "Merchant Center Feed filter criterion.", + "id": "GoogleCloudRetailV2betaMerchantCenterFeedFilter", + "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" + }, + "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.", + "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.", + "type": "string" + }, + "destinations": { + "description": "String representing the destination to import for, all if left empty. List of possible values is given in [Included destination](https://support.google.com/merchants/answer/7501026). List of allowed string values: \"Shopping_ads\", \"Buy_on_google_listings\", \"Display_ads\", \"Local_inventory _ads\", \"Free_listings\", \"Free_local_listings\" NOTE: The string values are case sensitive.", + "items": { + "type": "string" + }, + "type": "array" + }, + "feeds": { + "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": "GoogleCloudRetailV2betaMerchantCenterFeedFilter" + }, + "type": "array" + }, + "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" + }, + "regionCode": { + "description": "Region code of offers to accept. 2-letter Uppercase ISO 3166-1 alpha-2 code. List of values can be found [here](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) under the `region` tag. If left blank no region filtering will be performed. Example value: `US`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaMerchantCenterLinkingConfig": { + "description": "Configures Merchant Center linking. Links contained in the config will be used to sync data from a Merchant Center account to a Cloud Retail branch.", + "id": "GoogleCloudRetailV2betaMerchantCenterLinkingConfig", + "properties": { + "links": { + "description": "Links between Merchant Center accounts and branches.", + "items": { + "$ref": "GoogleCloudRetailV2betaMerchantCenterLink" + }, + "type": "array" + } + }, + "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", + "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" + }, + "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": "GoogleCloudRetailV2betaModelServingConfigList" + }, + "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" + }, + "GoogleCloudRetailV2betaModelServingConfigList": { + "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", + "id": "GoogleCloudRetailV2betaModelServingConfigList", + "properties": { + "servingConfigIds": { + "description": "Optional. A set of valid serving configs that may be used for `PAGE_OPTIMIZATION`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaOutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2betaOutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaBigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2betaGcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaPauseModelRequest": { + "description": "Request for pausing training of a model.", + "id": "GoogleCloudRetailV2betaPauseModelRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaPredictRequest": { "description": "Request message for Predict method.", "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, nothing will be returned. If you want generic (unfiltered) popular products to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.", + "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\"))", "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. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", "type": "object" }, "pageSize": { - "description": "Maximum number of results to return per page. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", + "description": "Maximum number of results to return. Set this property to the number of prediction results needed. If zero, the service will choose a reasonable default. The maximum allowed value is 100. Values above 100 will be coerced to 100.", "format": "int32", "type": "integer" }, "pageToken": { - "description": "The previous PredictResponse.next_page_token.", + "description": "This field is not used; leave it unset.", "type": "string" }, "params": { "additionalProperties": { "type": "any" }, - "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of an product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category.", + "description": "Additional domain specific parameters for the predictions. Allowed values: * `returnProduct`: Boolean. If set to true, the associated product object will be returned in the `results.metadata` field in the prediction response. * `returnScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned product will be set in the `results.metadata` field in the prediction response. The given 'score' indicates the probability of a product being clicked/purchased given the user's context and history. * `strictFiltering`: Boolean. True by default. If set to false, the service will return generic (unfiltered) popular products instead of empty if your filter blocks all prediction results. * `priceRerankLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-price-reranking', 'low-price-reranking', 'medium-price-reranking', 'high-price-reranking'}. This gives request-level control and adjusts prediction results based on product price. * `diversityLevel`: String. Default empty. If set to be non-empty, then it needs to be one of {'no-diversity', 'low-diversity', 'medium-diversity', 'high-diversity', 'auto-diversity'}. This gives request-level control and adjusts prediction results based on product category. * `filterSyntaxV2`: Boolean. False by default. If set to true, the `filter` field is interpreteted according to the new, attribute-based syntax.", "type": "object" }, "userEvent": { "$ref": "GoogleCloudRetailV2betaUserEvent", - "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging." + "description": "Required. Context about the user, what they are looking at and what action they took to trigger the predict request. Note that this user event detail won't be ingested to userEvent logs. Thus, a separate userEvent write request is required for event logging. Don't set UserEvent.visitor_id or UserInfo.user_id to the same fixed ID for different users. If you are trying to receive non-personalized recommendations (not recommended; this can negatively impact model performance), instead set UserEvent.visitor_id to a random unique ID and leave UserInfo.user_id unset." }, "validateOnly": { "description": "Use validate only mode for this prediction query. If set to true, a dummy model will be used that returns arbitrary products. Note that the validate only mode should only be used for testing the API, or if the model is not ready.", @@ -3188,7 +4537,7 @@ "additionalProperties": { "type": "any" }, - "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Will be set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnScore` is set to true in `PredictRequest.params`.", + "description": "Additional product metadata / annotations. Possible values: * `product`: JSON representation of the product. Is set if `returnProduct` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Is set if `returnScore` is set to true in `PredictRequest.params`.", "type": "object" } }, @@ -3208,7 +4557,7 @@ "type": "string" }, "originalPrice": { - "description": "Price of the product without any discount. If zero, by default set to be the price.", + "description": "Price of the product without any discount. If zero, by default set to be the price. If set, original_price should be greater than or equal to price, otherwise an INVALID_ARGUMENT error is thrown.", "format": "float", "type": "number" }, @@ -3289,7 +4638,7 @@ "type": "integer" }, "availableTime": { - "description": "The timestamp when this Product becomes available for SearchService.Search.", + "description": "The timestamp when this Product becomes available for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT.", "format": "google-datetime", "type": "string" }, @@ -3301,14 +4650,14 @@ "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, please 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. 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" }, "type": "array" }, "collectionMemberIds": { - "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise and INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", + "description": "The id of the collection members when type is Type.COLLECTION. Non-existent product ids are allowed. The type of the members must be either Type.PRIMARY or Type.VARIANT otherwise an INVALID_ARGUMENT error is thrown. Should not set it for other types. A maximum of 1000 values are allowed. Otherwise, an INVALID_ARGUMENT error is return.", "items": { "type": "string" }, @@ -3330,7 +4679,7 @@ "type": "string" }, "expireTime": { - "description": "The timestamp when this product becomes unavailable for SearchService.Search. 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": "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).", "format": "google-datetime", "type": "string" }, @@ -3350,7 +4699,7 @@ "type": "string" }, "images": { - "description": "Product images for the product.Highly recommended to put the main image to the first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", + "description": "Product images for the product. We highly recommend putting the main image first. A maximum of 300 images are allowed. Corresponding properties: Google Merchant Center property [image_link](https://support.google.com/merchants/answer/6324350). Schema.org property [Product.image](https://schema.org/image).", "items": { "$ref": "GoogleCloudRetailV2betaImage" }, @@ -3360,6 +4709,14 @@ "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). For product prediction, this field is ignored and the model automatically detects the text language. The Product can include text in different languages, but duplicating Products to provide text in multiple languages can result in degraded model performance. For product search this field is in use. It defaults to \"en-US\" if unset.", "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.", + "items": { + "$ref": "GoogleCloudRetailV2betaLocalInventory" + }, + "readOnly": true, + "type": "array" + }, "materials": { "description": "The material of the product. For example, \"leather\", \"wooden\". A maximum of 20 values are allowed. Each value must be a UTF-8 encoded string with a length limit of 200 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property [material](https://support.google.com/merchants/answer/6324410). Schema.org property [Product.material](https://schema.org/material).", "items": { @@ -3403,7 +4760,7 @@ "description": "The rating of this product." }, "retrievableFields": { - "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 Maximum number of paths is 30. Otherwise, an INVALID_ARGUMENT error is returned. Note: Returning more fields in SearchResponse may increase response payload size and serving latency.", + "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" }, @@ -3426,7 +4783,7 @@ "type": "string" }, "ttl": { - "description": "Input only. The TTL (time to live) of the product. If it is set, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", + "description": "Input only. The TTL (time to live) of the product. 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, it must be a non-negative value, and expire_time is set as current timestamp plus ttl. The derived expire_time is returned in the output and ttl is left blank when retrieving the Product. If it is set, the product is not available for SearchService.Search after current timestamp plus ttl. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts.", "format": "google-duration", "type": "string" }, @@ -3515,22 +4872,22 @@ "id": "GoogleCloudRetailV2betaProductLevelConfig", "properties": { "ingestionProductType": { - "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant`: You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "The type of Products allowed to be ingested into the catalog. Acceptable values are: * `primary` (default): You can ingest Products of all types. When ingesting a Product, its type will default to Product.Type.PRIMARY if unset. * `variant` (incompatible with Retail Search): You can only ingest Product.Type.VARIANT Products. This means Product.primary_product_id cannot be empty. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `variant` and merchant_center_product_id_field is `itemGroupId`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" }, "merchantCenterProductIdField": { - "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Using product levels](https://cloud.google.com/retail/recommendations-ai/docs/catalog#product-levels) for more details.", + "description": "Which field of [Merchant Center Product](/bigquery-transfer/docs/merchant-center-products-schema) should be imported as Product.id. Acceptable values are: * `offerId` (default): Import `offerId` as the product ID. * `itemGroupId`: Import `itemGroupId` as the product ID. Notice that Retail API will choose one item from the ones with the same `itemGroupId`, and use it to represent the item group. If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned. If this field is `itemGroupId` and ingestion_product_type is `variant`, an INVALID_ARGUMENT error is returned. See [Product levels](https://cloud.google.com/retail/docs/catalog#product-levels) for more details.", "type": "string" } }, "type": "object" }, "GoogleCloudRetailV2betaPromotion": { - "description": "Promotion information.", + "description": "Promotion specification.", "id": "GoogleCloudRetailV2betaPromotion", "properties": { "promotionId": { - "description": "ID of the promotion. For example, \"free gift\". The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Google Merchant Center property [promotion](https://support.google.com/merchants/answer/7050148).", + "description": "Promotion identifier, which is the final component of name. For example, this field is \"free_gift\", if name is `projects/*/locations/global/catalogs/default_catalog/promotions/free_gift`. The value must be a UTF-8 encoded string with a length limit of 128 characters, and match the pattern: `a-zA-Z*`. For example, id0LikeThis or ID_1_LIKE_THIS. Otherwise, an INVALID_ARGUMENT error is returned. Corresponds to Google Merchant Center property [promotion_id](https://support.google.com/merchants/answer/7050148).", "type": "string" } }, @@ -3625,7 +4982,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsMetadata": { - "description": "Metadata for RejoinUserEvents method.", + "description": "Metadata for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsMetadata", "properties": {}, "type": "object" @@ -3635,7 +4992,7 @@ "id": "GoogleCloudRetailV2betaRejoinUserEventsRequest", "properties": { "userEventRejoinScope": { - "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to USER_EVENT_REJOIN_SCOPE_UNSPECIFIED if this field is not set, or set to an invalid integer value.", + "description": "The type of the user event rejoin to define the scope and range of the user events to be rejoined with the latest product catalog. Defaults to `USER_EVENT_REJOIN_SCOPE_UNSPECIFIED` if this field is not set, or set to an invalid integer value.", "enum": [ "USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", "JOINED_EVENTS", @@ -3652,7 +5009,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRejoinUserEventsResponse": { - "description": "Response message for RejoinUserEvents method.", + "description": "Response message for `RejoinUserEvents` method.", "id": "GoogleCloudRetailV2betaRejoinUserEventsResponse", "properties": { "rejoinedUserEventsCount": { @@ -3686,13 +5043,13 @@ "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata": { - "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the RemoveFulfillmentPlaces method.", + "description": "Metadata related to the progress of the RemoveFulfillmentPlaces operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest": { - "description": "Request message for RemoveFulfillmentPlaces method.", + "description": "Request message for ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesRequest", "properties": { "allowMissing": { @@ -3719,11 +5076,46 @@ "type": "object" }, "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse": { - "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the RemoveFulfillmentPlaces method.", + "description": "Response of the RemoveFulfillmentPlacesRequest. Currently empty because there is no meaningful response populated from the ProductService.RemoveFulfillmentPlaces method.", "id": "GoogleCloudRetailV2betaRemoveFulfillmentPlacesResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata": { + "description": "Metadata related to the progress of the RemoveLocalInventories operation. Currently empty because there is no meaningful metadata populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesRequest": { + "description": "Request message for ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the Product is not found, the local inventory removal request will still be processed and retained for at most 1 day and processed once the Product is created. If set to false, a NOT_FOUND error is returned if the Product is not found.", + "type": "boolean" + }, + "placeIds": { + "description": "Required. A list of place IDs to have their inventory deleted. At most 3000 place IDs are allowed per request.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeTime": { + "description": "The time when the inventory deletions are issued. Used to prevent out-of-order updates and deletions on local inventory fields. If not provided, the internal system time will be used.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse": { + "description": "Response of the ProductService.RemoveLocalInventories API. Currently empty because there is no meaningful response populated from the ProductService.RemoveLocalInventories method.", + "id": "GoogleCloudRetailV2betaRemoveLocalInventoriesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaReplaceCatalogAttributeRequest": { "description": "Request for CatalogService.ReplaceCatalogAttribute method.", "id": "GoogleCloudRetailV2betaReplaceCatalogAttributeRequest", @@ -3740,8 +5132,14 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaResumeModelRequest": { + "description": "Request for resuming training of a model.", + "id": "GoogleCloudRetailV2betaResumeModelRequest", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaRule": { - "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 only boost rules are supported. Currently only supported by the search endpoint.", + "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": "GoogleCloudRetailV2betaRule", "properties": { "boostAction": { @@ -3828,7 +5226,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRuleFilterAction": { - "description": "* Rule Condition: - No Condition provided is a global match. - 1 or more Condition provided is combined with OR operator. * Action Input: The request query and filter that will be applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", + "description": "* Rule Condition: - No Condition.query_terms provided is a global match. - 1 or more Condition.query_terms provided are combined with OR operator. * Action Input: The request query and filter that are applied to the retrieved products, in addition to any filters already provided with the SearchRequest. The AND operator is used to combine the query's existing filters with the filter rule(s). NOTE: May result in 0 results when filters conflict. * Action Result: Filters the returned objects to be ONLY those that passed the filter.", "id": "GoogleCloudRetailV2betaRuleFilterAction", "properties": { "filter": { @@ -3881,7 +5279,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRuleRedirectAction": { - "description": "Redirects a shopper to a specific page. * Rule Condition: - Must specify Condition. * 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": { @@ -3914,7 +5312,7 @@ "type": "object" }, "GoogleCloudRetailV2betaRuleTwowaySynonymsAction": { - "description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\". * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", + "description": "Creates a set of terms that will be treated as synonyms of each other. Example: synonyms of \"sneakers\" and \"shoes\": * \"sneakers\" will use a synonym of \"shoes\". * \"shoes\" will use a synonym of \"sneakers\".", "id": "GoogleCloudRetailV2betaRuleTwowaySynonymsAction", "properties": { "synonyms": { @@ -3933,19 +5331,19 @@ "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. 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." }, "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 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. 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.", "type": "string" }, "dynamicFacetSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec", - "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. This feature requires additional allowlisting. Contact Retail Search support team if you are interested in using dynamic facet feature." + "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." }, "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.", @@ -3958,6 +5356,13 @@ "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.", "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.", + "type": "object" + }, "offset": { "description": "A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", @@ -3968,7 +5373,7 @@ "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, please replace it with other character(s). Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: \"pageCategories\" : [\"Sales > 2017 Black Friday Deals\"].", + "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\"].", "items": { "type": "string" }, @@ -3985,10 +5390,10 @@ }, "personalizationSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestPersonalizationSpec", - "description": "The specification for personalization." + "description": "The specification for personalization. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." }, "query": { - "description": "Raw search query.", + "description": "Raw search query. If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.", "type": "string" }, "queryExpansionSpec": { @@ -4003,18 +5408,22 @@ "FACETED_SEARCH_ONLY" ], "enumDescriptions": [ - "Default value. In this case both product search and faceted search will be performed. Both [SearchResponse.SearchResult] and [SearchResponse.Facet] will be returned.", - "Only product search will be performed. The faceted search will be disabled. Only [SearchResponse.SearchResult] will be returned. [SearchResponse.Facet] will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", - "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_spec and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only [SearchResponse.Facet] will be returned. [SearchResponse.SearchResult] will not be returned." + "Default value. In this case both product search and faceted search will be performed. Both SearchResponse.SearchResult and SearchResponse.Facet will be returned.", + "Only product search will be performed. The faceted search will be disabled. Only SearchResponse.SearchResult will be returned. SearchResponse.Facet will not be returned, even if SearchRequest.facet_specs or SearchRequest.dynamic_facet_spec is set.", + "Only faceted search will be performed. The product search will be disabled. When in this mode, one or both of SearchRequest.facet_specs and SearchRequest.dynamic_facet_spec should be set. Otherwise, an INVALID_ARGUMENT error is returned. Only SearchResponse.Facet will be returned. SearchResponse.SearchResult will not be returned." ], "type": "string" }, + "spellCorrectionSpec": { + "$ref": "GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec", + "description": "The spell correction specification that specifies the mode under which spell correction will take effect." + }, "userInfo": { "$ref": "GoogleCloudRetailV2betaUserInfo", "description": "User information." }, "variantRollupKeys": { - "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", + "description": "The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30. For FulfillmentInfo, a fulfillment type and a fulfillment ID must be provided in the format of \"fulfillmentType.fulfillmentId\". E.g., in \"pickupInStore.store123\", \"pickupInStore\" is fulfillment type and \"store123\" is the store ID. Supported keys are: * colorFamilies * price * originalPrice * discount * variantId * inventory(place_id,price) * inventory(place_id,original_price) * inventory(place_id,attributes.key), where key is any key in the Product.local_inventories.attributes map. * attributes.key, where key is any key in the Product.attributes map. * pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"pickup-in-store\". * shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"ship-to-store\". * sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"same-day-delivery\". * nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"next-day-delivery\". * customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-1\". * customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-2\". * customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-3\". * customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-4\". * customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type \"custom-type-5\". If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -4032,7 +5441,7 @@ "id": "GoogleCloudRetailV2betaSearchRequestBoostSpec", "properties": { "conditionBoostSpecs": { - "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 10.", + "description": "Condition boost specifications. If a product matches multiple conditions in the specifictions, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 20.", "items": { "$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpecConditionBoostSpec" }, @@ -4091,7 +5500,7 @@ "type": "boolean" }, "excludedFilterKeys": { - "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. For example, suppose there are 100 products with color facet \"Red\" and 200 products with color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and have \"colorFamilies\" as FacetKey.key will by default return the \"Red\" with count 100. If this field contains \"colorFamilies\", then the query returns both the \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "List of keys to exclude when faceting. By default, FacetKey.key is not excluded from the filter unless it is listed in this field. Listing a facet key in this field allows its values to appear as facet results, even when they are filtered out of search results. Using this field does not affect what search results are returned. For example, suppose there are 100 products with the color facet \"Red\" and 200 products with the color facet \"Blue\". A query containing the filter \"colorFamilies:ANY(\"Red\")\" and having \"colorFamilies\" as FacetKey.key would by default return only \"Red\" products in the search results, and also return \"Red\" with count 100 as the only color facet. Although there are also blue products available, \"Blue\" would not be shown as an available facet value. If \"colorFamilies\" is listed in \"excludedFilterKeys\", then the query returns the facet values \"Red\" with count 100 and \"Blue\" with count 200, because the \"colorFamilies\" key is now excluded from the filter. Because this field doesn't affect search results, the search results are still correctly filtered to return only \"Red\" products. A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -4102,7 +5511,7 @@ "description": "Required. The facet key specification." }, "limit": { - "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 20. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", + "description": "Maximum of facet values that should be returned for this facet. If unspecified, defaults to 50. The maximum allowed value is 300. Values above 300 will be coerced to 300. If this field is negative, an INVALID_ARGUMENT is returned.", "format": "int32", "type": "integer" } @@ -4113,6 +5522,10 @@ "description": "Specifies how a facet is computed.", "id": "GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey", "properties": { + "caseInsensitive": { + "description": "True to make facet keys case insensitive when getting faceting values with prefixes or contains; false otherwise.", + "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.", "items": { @@ -4132,7 +5545,7 @@ "type": "string" }, "orderBy": { - "description": "The order in which Facet.values are returned. Allowed values are: * \"count desc\", which means order by Facet.FacetValue.count descending. * \"value desc\", which means order by Facet.FacetValue.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", + "description": "The order in which SearchResponse.Facet.values are returned. Allowed values are: * \"count desc\", which means order by SearchResponse.Facet.values.count descending. * \"value desc\", which means order by SearchResponse.Facet.values.value descending. Only applies to textual facets. If not set, textual values are sorted in [natural order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical intervals are sorted in the order given by FacetSpec.FacetKey.intervals; FulfillmentInfo.place_ids are sorted in the order given by FacetSpec.FacetKey.restricted_values.", "type": "string" }, "prefixes": { @@ -4143,15 +5556,19 @@ "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, FacetValue.value will be always \"1\" and FacetValue.count will be the number of results that matches 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 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\".", "type": "string" }, "restrictedValues": { - "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on textual fields and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", + "description": "Only get facet for the given restricted values. For example, when using \"pickupInStore\" as key and set restricted values to [\"store123\", \"store456\"], only facets for \"store123\" and \"store456\" are returned. Only supported on predefined textual fields, custom textual attributes and fulfillments. Maximum is 20. Must be set for the fulfillment facet keys: * pickupInStore * shipToStore * sameDayDelivery * nextDayDelivery * customFulfillment1 * customFulfillment2 * customFulfillment3 * customFulfillment4 * customFulfillment5", "items": { "type": "string" }, "type": "array" + }, + "returnMinMax": { + "description": "Returns the min and max value for each numerical facet intervals. Ignored for textual facets.", + "type": "boolean" } }, "type": "object" @@ -4168,8 +5585,8 @@ "DISABLED" ], "enumDescriptions": [ - "Default value. Defaults to Mode.AUTO.", - "Let CRS decide whether to use personalization.", + "Default value. In this case, server behavior defaults to Mode.AUTO.", + "Let CRS decide whether to use personalization based on quality of user event data.", "Disable personalization." ], "type": "string" @@ -4189,7 +5606,7 @@ "AUTO" ], "enumDescriptions": [ - "Unspecified query expansion condition. This defaults to Condition.DISABLED.", + "Unspecified query expansion condition. In this case, server behavior defaults to Condition.DISABLED.", "Disabled query expansion. Only the exact search query is used, even if SearchResponse.total_size is zero.", "Automatic query expansion built by Google Retail Search." ], @@ -4202,6 +5619,27 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec": { + "description": "The specification for query spell correction.", + "id": "GoogleCloudRetailV2betaSearchRequestSpellCorrectionSpec", + "properties": { + "mode": { + "description": "The mode under which spell correction should take effect to replace the original search query. Default to Mode.AUTO.", + "enum": [ + "MODE_UNSPECIFIED", + "SUGGESTION_ONLY", + "AUTO" + ], + "enumDescriptions": [ + "Unspecified spell correction mode. In this case, server behavior defaults to Mode.AUTO.", + "Google Retail Search will try to find a spell suggestion if there is any and put in the SearchResponse.corrected_query. The spell suggestion will not be used as the search query.", + "Automatic spell correction built by Google Retail Search. Search will be based on the corrected query if found." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaSearchResponse": { "description": "Response message for SearchService.Search method.", "id": "GoogleCloudRetailV2betaSearchResponse", @@ -4218,7 +5656,7 @@ "type": "string" }, "correctedQuery": { - "description": "If spell correction applies, the corrected query. Otherwise, empty.", + "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" }, "facets": { @@ -4244,7 +5682,7 @@ "description": "Query expansion information for the returned results." }, "redirectUri": { - "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search will be performed, and only redirect_uri and attribution_token will be set in the response.", + "description": "The URI of a customer-defined redirect page. If redirect action is triggered, no search is performed, and only redirect_uri and attribution_token are set in the response.", "type": "string" }, "results": { @@ -4297,6 +5735,16 @@ "$ref": "GoogleCloudRetailV2betaInterval", "description": "Interval value for a facet, such as [10, 20) for facet \"price\"." }, + "maxValue": { + "description": "The maximum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, + "minValue": { + "description": "The minimum value in the FacetValue.interval. Only supported on numerical facets and returned if SearchRequest.FacetSpec.FacetKey.return_min_max is true.", + "format": "double", + "type": "number" + }, "value": { "description": "Text value of a facet, such as \"Black\" for facet \"colorFamilies\".", "type": "string" @@ -4341,6 +5789,13 @@ "description": "If a variant Product matches the search query, this map indicates which Product fields are matched. The key is the Product.name, the value is a field mask of the matched Product fields. If matched attributes cannot be determined, this map will be empty. For example, a key \"sku1\" with field mask \"products.color_info\" indicates there is a match between \"sku1\" ColorInfo and the query.", "type": "object" }, + "personalLabels": { + "description": "Specifies previous events related to this product for this user based on UserEvent with same SearchRequest.visitor_id or UserInfo.user_id. This is set only when SearchRequest.PersonalizationSpec.mode is SearchRequest.PersonalizationSpec.Mode.AUTO. Possible values: * `purchased`: Indicates that this product has been purchased before.", + "items": { + "type": "string" + }, + "type": "array" + }, "product": { "$ref": "GoogleCloudRetailV2betaProduct", "description": "The product data snippet in the search response. Only Product.name is guaranteed to be populated. Product.variants contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy. If relevancy can be deternmined, use matching_variant_fields to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching \"shoe\" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless." @@ -4356,11 +5811,11 @@ "type": "object" }, "GoogleCloudRetailV2betaServingConfig": { - "description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions). The ServingConfig is passed in the search and predict request and together with the Catalog.default_branch, generates results.", + "description": "Configures metadata that is used to generate serving time results (e.g. search results or recommendation predictions).", "id": "GoogleCloudRetailV2betaServingConfig", "properties": { "boostControlIds": { - "description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids 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. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", + "description": "Condition boost specifications. If a product matches multiple conditions in the specifications, boost scores from these specifications are all applied and combined in a non-linear way. Maximum number of specifications is 100. Notice that if both ServingConfig.boost_control_ids 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. Can only be set if solution_types is SOLUTION_TYPE_SEARCH.", "items": { "type": "string" }, @@ -4371,7 +5826,21 @@ "type": "string" }, "diversityLevel": { - "description": "How much diversity to use in recommendation model results e.g. 'medium-diversity' or 'high-diversity'. Currently supported values: * 'no-diversity' * 'low-diversity' * 'medium-diversity' * 'high-diversity' * 'auto-diversity' If not specified, we choose default based on recommendation model type. Default value: 'no-diversity'. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "How much diversity to use in recommendation model results e.g. `medium-diversity` or `high-diversity`. Currently supported values: * `no-diversity` * `low-diversity` * `medium-diversity` * `high-diversity` * `auto-diversity` If not specified, we choose default based on recommendation model type. Default value: `no-diversity`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "type": "string" + }, + "diversityType": { + "description": "What kind of diversity to use - data driven or rule based. If unset, the server behavior defaults to RULE_BASED_DIVERSITY.", + "enum": [ + "DIVERSITY_TYPE_UNSPECIFIED", + "RULE_BASED_DIVERSITY", + "DATA_DRIVEN_DIVERSITY" + ], + "enumDescriptions": [ + "Default value.", + "Rule based diversity.", + "Data driven diversity." + ], "type": "string" }, "doNotAssociateControlIds": { @@ -4386,7 +5855,7 @@ "description": "The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated. Can only be set if solution_types is SOLUTION_TYPE_SEARCH." }, "enableCategoryFilterLevel": { - "description": "Whether to add additional category filters on the 'similar-items' model. If not specified, we enable it by default. Allowed values are: * 'no-category-match': No additional filtering of original results from the model and the customer's filters. * 'relaxed-category-match': Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "Whether to add additional category filters on the `similar-items` model. If not specified, we enable it by default. Allowed values are: * `no-category-match`: No additional filtering of original results from the model and the customer's filters. * `relaxed-category-match`: Only keep results with categories that match at least one item categories in the PredictRequests's context item. * If customer also sends filters in the PredictRequest, then the results will satisfy both conditions (user given and category match). Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "facetControlIds": { @@ -4411,11 +5880,11 @@ "type": "array" }, "modelId": { - "description": "The id of the model to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "name": { - "description": "Immutable. Fully qualified name projects/*/locations/global/catalogs/*/servingConfig/*", + "description": "Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*`", "type": "string" }, "onewaySynonymsControlIds": { @@ -4425,8 +5894,12 @@ }, "type": "array" }, + "personalizationSpec": { + "$ref": "GoogleCloudRetailV2betaSearchRequestPersonalizationSpec", + "description": "The specification for personalization spec. Can only be set if solution_types is SOLUTION_TYPE_SEARCH. Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec." + }, "priceRerankingLevel": { - "description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * 'no-price-reranking' * 'low-price-raranking' * 'medium-price-reranking' * 'high-price-reranking' If not specified, we choose default based on model type. Default value: 'no-price-reranking'. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", + "description": "How much price ranking we want in serving results. Price reranking causes product items with a similar recommendation probability to be ordered by price, with the highest-priced items first. This setting could result in a decrease in click-through and conversion rates. Allowed values are: * `no-price-reranking` * `low-price-reranking` * `medium-price-reranking` * `high-price-reranking` If not specified, we choose default based on model type. Default value: `no-price-reranking`. Can only be set if solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" }, "redirectControlIds": { @@ -4490,13 +5963,13 @@ "type": "object" }, "GoogleCloudRetailV2betaSetInventoryMetadata": { - "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the SetInventory method.", + "description": "Metadata related to the progress of the SetInventory operation. Currently empty because there is no meaningful metadata populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryMetadata", "properties": {}, "type": "object" }, "GoogleCloudRetailV2betaSetInventoryRequest": { - "description": "Request message for SetInventory method.", + "description": "Request message for ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryRequest", "properties": { "allowMissing": { @@ -4505,7 +5978,7 @@ }, "inventory": { "$ref": "GoogleCloudRetailV2betaProduct", - "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, UpdateProduct should be invoked instead." + "description": "Required. The inventory information to update. The allowable fields to update are: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info The updated inventory fields must be specified in SetInventoryRequest.set_mask. If SetInventoryRequest.inventory.name is empty or invalid, an INVALID_ARGUMENT error is returned. If the caller does not have permission to update the Product named in Product.name, regardless of whether or not it exists, a PERMISSION_DENIED error is returned. If the Product to update does not have existing inventory information, the provided inventory information will be inserted. If the Product to update has existing inventory information, the provided inventory information will be merged while respecting the last update time for each inventory field, using the provided or default value for SetInventoryRequest.set_time. The caller can replace place IDs for a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types and corresponding place IDs to update in SetInventoryRequest.inventory.fulfillment_info The caller can clear all place IDs from a subset of fulfillment types in the following ways: * Adds \"fulfillment_info\" in SetInventoryRequest.set_mask * Specifies only the desired fulfillment types to clear in SetInventoryRequest.inventory.fulfillment_info * Checks that only the desired fulfillment info types have empty SetInventoryRequest.inventory.fulfillment_info.place_ids The last update time is recorded for the following inventory fields: * Product.price_info * Product.availability * Product.available_quantity * Product.fulfillment_info If a full overwrite of inventory information while ignoring timestamps is needed, ProductService.UpdateProduct should be invoked instead." }, "setMask": { "description": "Indicates which inventory fields in the provided Product to update. At least one field must be provided. If an unsupported or unknown field is provided, an INVALID_ARGUMENT error is returned and the entire update will be ignored.", @@ -4521,11 +5994,34 @@ "type": "object" }, "GoogleCloudRetailV2betaSetInventoryResponse": { - "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the SetInventory method.", + "description": "Response of the SetInventoryRequest. Currently empty because there is no meaningful response populated from the ProductService.SetInventory method.", "id": "GoogleCloudRetailV2betaSetInventoryResponse", "properties": {}, "type": "object" }, + "GoogleCloudRetailV2betaTuneModelMetadata": { + "description": "Metadata associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelMetadata", + "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" + }, + "GoogleCloudRetailV2betaTuneModelRequest": { + "description": "Request to manually start a tuning process now (instead of waiting for the periodically scheduled tuning to happen).", + "id": "GoogleCloudRetailV2betaTuneModelRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudRetailV2betaTuneModelResponse": { + "description": "Response associated with a tune operation.", + "id": "GoogleCloudRetailV2betaTuneModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRetailV2betaUserEvent": { "description": "UserEvent captures all metadata information Retail API needs to know about how end users interact with customers' website.", "id": "GoogleCloudRetailV2betaUserEvent", @@ -4534,7 +6030,7 @@ "additionalProperties": { "$ref": "GoogleCloudRetailV2betaCustomAttribute" }, - "description": "Extra user event features to include in the recommendation model. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc.", + "description": "Extra user event features to include in the recommendation model. If you provide custom attributes for ingested user events, also include them in the user events that you associate with prediction requests. Custom attribute formatting must be consistent between imported events and events provided with prediction requests. This lets the Retail API use those custom attributes when training models and serving predictions, which helps improve recommendation quality. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * The key must be a UTF-8 encoded string with a length limit of 5,000 characters. * For text attributes, at most 400 values are allowed. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 256 characters. * For number attributes, at most 400 values are allowed. For product recommendations, an example of extra user information is traffic_channel, which is how a user arrives at the site. Users can arrive at the site by coming to the site directly, coming through Google search, or in other ways.", "type": "object" }, "attributionToken": { @@ -4579,7 +6075,7 @@ "type": "string" }, "pageCategories": { - "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, please replace it with 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "The categories associated with a category page. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, 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\"]. Required for `category-page-view` events. At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. Otherwise, an INVALID_ARGUMENT error is returned.", "items": { "type": "string" }, @@ -4590,7 +6086,7 @@ "type": "string" }, "productDetails": { - "description": "The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` * `search` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", + "description": "The main product details related to the event. This field is optional except for the following event types: * `add-to-cart` * `detail-page-view` * `purchase-complete` In a `search` event, this field represents the products returned to the end user on the current page (the end user may have not finished browsing the whole page yet). When a new page is returned to the end user, after pagination/filtering/ordering even for the same query, a new `search` event with different product_details is desired. The end user may have not finished browsing the whole page yet.", "items": { "$ref": "GoogleCloudRetailV2betaProductDetail" }, @@ -4621,7 +6117,7 @@ "description": "User information." }, "visitorId": { - "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analystics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", + "description": "Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned. The field should not contain PII or user-data. We recommend to use Google Analytics [Client ID](https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#clientId) for this field.", "type": "string" } }, @@ -4686,7 +6182,7 @@ "type": "boolean" }, "ipAddress": { - "description": "The end user's IP address. Required for getting SearchResponse.sponsored_results. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", + "description": "The end user's IP address. This field is used to extract location information for personalization. This field must be either an IPv4 address (e.g. \"104.133.9.80\") or an IPv6 address (e.g. \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"). Otherwise, an INVALID_ARGUMENT error is returned. This should not be set when: * setting SearchRequest.user_info. * using the JavaScript tag in UserEventService.CollectUserEvent or if direct_user_request is set.", "type": "string" }, "userAgent": { @@ -4694,7 +6190,7 @@ "type": "string" }, "userId": { - "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", + "description": "Highly recommended for logged-in users. Unique identifier for logged-in user, such as a user name. Don't set for anonymous users. Always use a hashed value for this ID. Don't set the field to the same fixed ID for different users. This mixes the event history of those users together, which results in degraded model quality. The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.", "type": "string" } }, @@ -4754,7 +6250,7 @@ "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" @@ -4787,7 +6283,7 @@ "type": "object" }, "GoogleTypeDate": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day, with a zero year (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "GoogleTypeDate", "properties": { "day": { diff --git a/etc/api/run/v1/run-api.json b/etc/api/run/v1/run-api.json index 4e148c3422..1f3cbfddca 100644 --- a/etc/api/run/v1/run-api.json +++ b/etc/api/run/v1/run-api.json @@ -159,7 +159,7 @@ ], "parameters": { "name": { - "description": "The name of the configuration to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the configuration to retrieve. For Cloud Run, replace {namespace_id} with the project ID or number.", "location": "path", "pattern": "^namespaces/[^/]+/configurations/[^/]+$", "required": true, @@ -189,12 +189,12 @@ "type": "string" }, "fieldSelector": { - "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "boolean" }, @@ -204,25 +204,25 @@ "type": "string" }, "limit": { - "description": "Optional. The maximum number of records that should be returned.", + "description": "Optional. The maximum number of the records that should be returned.", "format": "int32", "location": "query", "type": "integer" }, "parent": { - "description": "The namespace from which the configurations should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the configurations should be listed. For Cloud Run, replace {namespace_id} with the project ID or number.", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, "type": "string" }, "resourceVersion": { - "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "boolean" } @@ -254,7 +254,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, @@ -297,14 +297,14 @@ "type": "string" }, "name": { - "description": "The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", "location": "query", "type": "string" } @@ -327,7 +327,7 @@ ], "parameters": { "name": { - "description": "The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^namespaces/[^/]+/domainmappings/[^/]+$", "required": true, @@ -343,7 +343,7 @@ ] }, "list": { - "description": "List domain mappings.", + "description": "List all domain mappings.", "flatPath": "apis/domains.cloudrun.com/v1/namespaces/{namespacesId}/domainmappings", "httpMethod": "GET", "id": "run.namespaces.domainmappings.list", @@ -378,7 +378,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, @@ -407,6 +407,34 @@ }, "executions": { "methods": { + "cancel": { + "description": "Cancel an execution.", + "flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions/{executionsId}:cancel", + "httpMethod": "POST", + "id": "run.namespaces.executions.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the execution to cancel. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", + "location": "path", + "pattern": "^namespaces/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "apis/run.googleapis.com/v1/{+name}:cancel", + "request": { + "$ref": "CancelExecutionRequest" + }, + "response": { + "$ref": "Execution" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { "description": "Delete an execution.", "flatPath": "apis/run.googleapis.com/v1/namespaces/{namespacesId}/executions/{executionsId}", @@ -427,14 +455,14 @@ "type": "string" }, "name": { - "description": "Required. The name of the execution to delete. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the execution to delete. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/executions/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Optional. Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see 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, and deletes in the background. Please see https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", "location": "query", "type": "string" } @@ -457,7 +485,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the execution to retrieve. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the execution to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/executions/[^/]+$", "required": true, @@ -487,12 +515,12 @@ "type": "string" }, "fieldSelector": { - "description": "Optional. Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Optional. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" }, @@ -502,25 +530,25 @@ "type": "string" }, "limit": { - "description": "Optional. The maximum number of records that should be returned.", + "description": "Optional. The maximum number of the records that should be returned.", "format": "int32", "location": "query", "type": "integer" }, "parent": { - "description": "Required. The namespace from which the executions should be listed. Replace {namespace_id} with the project ID or number.", + "description": "Required. The namespace from which the executions should be listed. 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, "type": "string" }, "resourceVersion": { - "description": "Optional. The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Optional. Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" } @@ -547,7 +575,7 @@ ], "parameters": { "parent": { - "description": "Required. The namespace in which the job should be created. Replace {namespace_id} with the project ID or number.", + "description": "Required. The namespace in which the job should be created. 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, @@ -585,7 +613,7 @@ "type": "string" }, "name": { - "description": "Required. The name of the job to delete. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the job to delete. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/jobs/[^/]+$", "required": true, @@ -615,7 +643,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the job to retrieve. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the job to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/jobs/[^/]+$", "required": true, @@ -645,12 +673,12 @@ "type": "string" }, "fieldSelector": { - "description": "Optional. Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Optional. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" }, @@ -666,19 +694,19 @@ "type": "integer" }, "parent": { - "description": "Required. The namespace from which the jobs should be listed. Replace {namespace_id} with the project ID or number.", + "description": "Required. The namespace from which the jobs should be listed. 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, "type": "string" }, "resourceVersion": { - "description": "Optional. The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Optional. Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" } @@ -701,7 +729,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the service being replaced. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the job being replaced. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/jobs/[^/]+$", "required": true, @@ -729,7 +757,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the job to run. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the job to run. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/jobs/[^/]+$", "required": true, @@ -776,14 +804,14 @@ "type": "string" }, "name": { - "description": "The name of the revision to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the revision 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/[^/]+/revisions/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "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.", "location": "query", "type": "string" } @@ -806,7 +834,7 @@ ], "parameters": { "name": { - "description": "The name of the revision to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the revision 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/[^/]+/revisions/[^/]+$", "required": true, @@ -857,7 +885,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the revisions 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, @@ -896,7 +924,7 @@ ], "parameters": { "name": { - "description": "The name of the route to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the route 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/[^/]+/routes/[^/]+$", "required": true, @@ -947,7 +975,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the routes 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, @@ -977,7 +1005,7 @@ "services": { "methods": { "create": { - "description": "Create a service.", + "description": "Creates a new Service. Service creation will trigger a new deployment. Use GetService, and check service.status to determine if the Service is ready.", "flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services", "httpMethod": "POST", "id": "run.namespaces.services.create", @@ -991,7 +1019,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the service should be created. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The resource's parent. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, @@ -1010,7 +1038,7 @@ ] }, "delete": { - "description": "Delete a service. This will cause the Service to stop serving traffic and will delete the child entities like Routes, Configurations and Revisions.", + "description": "Deletes the provided service. This will cause the Service to stop serving traffic and will delete all associated Revisions.", "flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", "httpMethod": "DELETE", "id": "run.namespaces.services.delete", @@ -1019,7 +1047,7 @@ ], "parameters": { "apiVersion": { - "description": "Cloud Run currently ignores this parameter.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, @@ -1029,19 +1057,19 @@ "type": "string" }, "kind": { - "description": "Cloud Run currently ignores this parameter.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "name": { - "description": "The name of the service to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to delete. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^namespaces/[^/]+/services/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" } @@ -1055,7 +1083,7 @@ ] }, "get": { - "description": "Get information about a service.", + "description": "Gets information about a service.", "flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", "httpMethod": "GET", "id": "run.namespaces.services.get", @@ -1064,7 +1092,7 @@ ], "parameters": { "name": { - "description": "The name of the service to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to retrieve. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^namespaces/[^/]+/services/[^/]+$", "required": true, @@ -1080,7 +1108,7 @@ ] }, "list": { - "description": "List services.", + "description": "Lists services for the given project and region.", "flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services", "httpMethod": "GET", "id": "run.namespaces.services.list", @@ -1089,17 +1117,17 @@ ], "parameters": { "continue": { - "description": "Optional. Encoded string to continue paging.", + "description": "Encoded string to continue paging.", "location": "query", "type": "string" }, "fieldSelector": { - "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "boolean" }, @@ -1109,25 +1137,25 @@ "type": "string" }, "limit": { - "description": "Optional. The maximum number of records that should be returned.", + "description": "The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" }, "parent": { - "description": "The namespace from which the services should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The parent from where the resources should be listed. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", "location": "path", "pattern": "^namespaces/[^/]+$", "required": true, "type": "string" }, "resourceVersion": { - "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "boolean" } @@ -1141,7 +1169,7 @@ ] }, "replaceService": { - "description": "Replace a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", + "description": "Replaces a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", "flatPath": "apis/serving.knative.dev/v1/namespaces/{namespacesId}/services/{servicesId}", "httpMethod": "PUT", "id": "run.namespaces.services.replaceService", @@ -1155,7 +1183,7 @@ "type": "string" }, "name": { - "description": "The name of the service being replaced. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to replace. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^namespaces/[^/]+/services/[^/]+$", "required": true, @@ -1187,7 +1215,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the task to retrieve. Replace {namespace_id} with the project ID or number.", + "description": "Required. The name of the task to retrieve. Replace {namespace} with the project ID or number. It takes the form namespaces/{namespace}. For example: namespaces/PROJECT_ID", "location": "path", "pattern": "^namespaces/[^/]+/tasks/[^/]+$", "required": true, @@ -1217,17 +1245,17 @@ "type": "string" }, "fieldSelector": { - "description": "Optional. Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Optional. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" }, "labelSelector": { - "description": "Optional. Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn.", + "description": "Optional. Allows to filter resources based on a label. Supported operations are =, !=, exists, in, and notIn. For example, to list all tasks of execution \"foo\" in succeeded state: `run.googleapis.com/execution=foo,run.googleapis.com/runningState=Succeeded`. Supported states are: * `Pending`: Initial state of all tasks. The task has not yet started but eventually will. * `Running`: Container instances for this task are running or will be running shortly. * `Succeeded`: No more container instances to run for the task, and the last attempt succeeded. * `Failed`: No more container instances to run for the task, and the last attempt failed. This task has run out of retry attempts. * `Cancelled`: Task was running but got stopped because its parent execution has been aborted. * `Abandoned`: The task has not yet started and never will because its parent execution has been aborted.", "location": "query", "type": "string" }, @@ -1238,19 +1266,19 @@ "type": "integer" }, "parent": { - "description": "Required. The namespace from which the tasks should be listed. Replace {namespace_id} with the project ID or number.", + "description": "Required. The namespace from which the tasks should be listed. 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, "type": "string" }, "resourceVersion": { - "description": "Optional. The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Optional. Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Optional. Not supported by Cloud Run.", "location": "query", "type": "boolean" } @@ -1321,7 +1349,7 @@ ], "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).", + "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" }, @@ -1406,7 +1434,7 @@ ], "parameters": { "name": { - "description": "The name of the configuration to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the configuration to retrieve. For Cloud Run, replace {namespace_id} with the project ID or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/configurations/[^/]+$", "required": true, @@ -1436,12 +1464,12 @@ "type": "string" }, "fieldSelector": { - "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "boolean" }, @@ -1451,25 +1479,25 @@ "type": "string" }, "limit": { - "description": "Optional. The maximum number of records that should be returned.", + "description": "Optional. The maximum number of the records that should be returned.", "format": "int32", "location": "query", "type": "integer" }, "parent": { - "description": "The namespace from which the configurations should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the configurations should be listed. For Cloud Run, replace {namespace_id} with the project ID or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "resourceVersion": { - "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Not supported by Cloud Run.", "location": "query", "type": "boolean" } @@ -1501,7 +1529,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the domain mapping should be created. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1544,14 +1572,14 @@ "type": "string" }, "name": { - "description": "The name of the domain mapping to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/architecture/garbage-collection/ for more information.", "location": "query", "type": "string" } @@ -1574,7 +1602,7 @@ ], "parameters": { "name": { - "description": "The name of the domain mapping to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/domainmappings/[^/]+$", "required": true, @@ -1590,7 +1618,7 @@ ] }, "list": { - "description": "List domain mappings.", + "description": "List all domain mappings.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/domainmappings", "httpMethod": "GET", "id": "run.projects.locations.domainmappings.list", @@ -1625,7 +1653,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the domain mappings should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "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", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1670,7 +1698,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -1695,7 +1723,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -1723,7 +1751,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/jobs/[^/]+$", "required": true, @@ -1770,14 +1798,14 @@ "type": "string" }, "name": { - "description": "The name of the revision to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the revision 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/[^/]+/revisions/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "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.", "location": "query", "type": "string" } @@ -1800,7 +1828,7 @@ ], "parameters": { "name": { - "description": "The name of the revision to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the revision 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/[^/]+/revisions/[^/]+$", "required": true, @@ -1851,7 +1879,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the revisions should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the revisions 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, @@ -1890,7 +1918,7 @@ ], "parameters": { "name": { - "description": "The name of the route to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The name of the route 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/[^/]+/routes/[^/]+$", "required": true, @@ -1941,7 +1969,7 @@ "type": "integer" }, "parent": { - "description": "The namespace from which the routes should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "The namespace from which the routes 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, @@ -1971,7 +1999,7 @@ "services": { "methods": { "create": { - "description": "Create a service.", + "description": "Creates a new Service. Service creation will trigger a new deployment. Use GetService, and check service.status to determine if the Service is ready.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services", "httpMethod": "POST", "id": "run.projects.locations.services.create", @@ -1985,7 +2013,7 @@ "type": "string" }, "parent": { - "description": "The namespace in which the service should be created. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The resource's parent. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2004,7 +2032,7 @@ ] }, "delete": { - "description": "Delete a service. This will cause the Service to stop serving traffic and will delete the child entities like Routes, Configurations and Revisions.", + "description": "Deletes the provided service. This will cause the Service to stop serving traffic and will delete all associated Revisions.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", "httpMethod": "DELETE", "id": "run.projects.locations.services.delete", @@ -2013,7 +2041,7 @@ ], "parameters": { "apiVersion": { - "description": "Cloud Run currently ignores this parameter.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, @@ -2023,19 +2051,19 @@ "type": "string" }, "kind": { - "description": "Cloud Run currently ignores this parameter.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "name": { - "description": "The name of the service to delete. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to delete. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, "type": "string" }, "propagationPolicy": { - "description": "Specifies the propagation policy of delete. Cloud Run currently ignores this setting, and deletes in the background. Please see kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/ for more information.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" } @@ -2049,7 +2077,7 @@ ] }, "get": { - "description": "Get information about a service.", + "description": "Gets information about a service.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", "httpMethod": "GET", "id": "run.projects.locations.services.get", @@ -2058,7 +2086,7 @@ ], "parameters": { "name": { - "description": "The name of the service to retrieve. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to retrieve. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -2074,7 +2102,7 @@ ] }, "getIamPolicy": { - "description": "Get the IAM Access Control policy currently in effect for the given Cloud Run service. This result does not include any inherited policies.", + "description": "Gets the IAM Access Control policy currently in effect for the given Cloud Run service. This result does not include any inherited policies.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:getIamPolicy", "httpMethod": "GET", "id": "run.projects.locations.services.getIamPolicy", @@ -2089,7 +2117,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -2105,7 +2133,7 @@ ] }, "list": { - "description": "List services.", + "description": "Lists services for the given project and region.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services", "httpMethod": "GET", "id": "run.projects.locations.services.list", @@ -2114,17 +2142,17 @@ ], "parameters": { "continue": { - "description": "Optional. Encoded string to continue paging.", + "description": "Encoded string to continue paging.", "location": "query", "type": "string" }, "fieldSelector": { - "description": "Allows to filter resources based on a specific value for a field name. Send this in a query string format. i.e. 'metadata.name%3Dlorem'. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "includeUninitialized": { - "description": "Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "boolean" }, @@ -2134,25 +2162,25 @@ "type": "string" }, "limit": { - "description": "Optional. The maximum number of records that should be returned.", + "description": "The maximum number of records that should be returned.", "format": "int32", "location": "query", "type": "integer" }, "parent": { - "description": "The namespace from which the services should be listed. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The parent from where the resources should be listed. In Cloud Run, it may be one of the following: * `{project_id_or_number}` * `namespaces/{project_id_or_number}` * `namespaces/{project_id_or_number}/services` * `projects/{project_id_or_number}/locations/{region}` * `projects/{project_id_or_number}/regions/{region}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "resourceVersion": { - "description": "The baseline resource version from which the list or watch operation should start. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "string" }, "watch": { - "description": "Flag that indicates that the client expects to watch this resource as well. Not currently used by Cloud Run.", + "description": "Not supported, and ignored by Cloud Run.", "location": "query", "type": "boolean" } @@ -2166,7 +2194,7 @@ ] }, "replaceService": { - "description": "Replace a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", + "description": "Replaces a service. Only the spec and metadata labels and annotations are modifiable. After the Update request, Cloud Run will work to make the 'status' match the requested 'spec'. May provide metadata.resourceVersion to enforce update from last read for optimistic concurrency control.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}", "httpMethod": "PUT", "id": "run.projects.locations.services.replaceService", @@ -2180,7 +2208,7 @@ "type": "string" }, "name": { - "description": "The name of the service being replaced. For Cloud Run (fully managed), replace {namespace_id} with the project ID or number.", + "description": "Required. The fully qualified name of the service to replace. It can be any of the following forms: * `namespaces/{project_id_or_number}/services/{service_name}` (only when the `endpoint` is regional) * `projects/{project_id_or_number}/locations/{region}/services/{service_name}` * `projects/{project_id_or_number}/regions/{region}/services/{service_name}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -2208,7 +2236,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -2236,7 +2264,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -2261,7 +2289,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://run.googleapis.com/", "schemas": { "Addressable": { @@ -2275,7 +2303,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -2346,7 +2374,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2359,8 +2387,14 @@ }, "type": "object" }, + "CancelExecutionRequest": { + "description": "Request message for cancelling an execution.", + "id": "CancelExecutionRequest", + "properties": {}, + "type": "object" + }, "ConfigMapEnvSource": { - "description": "Not supported by Cloud Run ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", + "description": "Not supported by Cloud Run. ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", "id": "ConfigMapEnvSource", "properties": { "localObjectReference": { @@ -2372,37 +2406,37 @@ "type": "string" }, "optional": { - "description": "(Optional) Specify whether the ConfigMap must be defined", + "description": "Specify whether the ConfigMap must be defined.", "type": "boolean" } }, "type": "object" }, "ConfigMapKeySelector": { - "description": "Not supported by Cloud Run Selects a key from a ConfigMap.", + "description": "Not supported by Cloud Run.", "id": "ConfigMapKeySelector", "properties": { "key": { - "description": "The key to select.", + "description": "Required. Not supported by Cloud Run.", "type": "string" }, "localObjectReference": { "$ref": "LocalObjectReference", - "description": "This field should not be used directly as it is meant to be inlined directly into the message. Use the \"name\" field instead." + "description": "Not supported by Cloud Run." }, "name": { - "description": "The ConfigMap to select from.", + "description": "Required. Not supported by Cloud Run.", "type": "string" }, "optional": { - "description": "(Optional) Specify whether the ConfigMap or its key must be defined", + "description": "Not supported by Cloud Run.", "type": "boolean" } }, "type": "object" }, "ConfigMapVolumeSource": { - "description": "Not supported by Cloud Run Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths.", + "description": "Not supported by Cloud Run. Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths.", "id": "ConfigMapVolumeSource", "properties": { "defaultMode": { @@ -2429,7 +2463,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/serving/blob/main/docs/spec/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. See also: https://github.com/knative/specs/blob/main/specs/serving/overview.md#configuration", "id": "Configuration", "properties": { "apiVersion": { @@ -2471,14 +2505,14 @@ "id": "ConfigurationStatus", "properties": { "conditions": { - "description": "Conditions communicates information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world.", + "description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world.", "items": { "$ref": "GoogleCloudRunV1Condition" }, "type": "array" }, "latestCreatedRevisionName": { - "description": "LatestCreatedRevisionName is the last revision that was created from this Configuration. It might not be ready yet, for that use LatestReadyRevisionName.", + "description": "LatestCreatedRevisionName is the last revision that was created from this Configuration. It might not be ready yet, so for the latest ready revision, use LatestReadyRevisionName.", "type": "string" }, "latestReadyRevisionName": { @@ -2498,50 +2532,51 @@ "id": "Container", "properties": { "args": { - "description": "(Optional) 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. Variable references are not supported in Cloud Run.", "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 are not supported in Cloud Run.", "items": { "type": "string" }, "type": "array" }, "env": { - "description": "(Optional) List of environment variables to set in the container.", + "description": "List of environment variables to set in the container. EnvVar with duplicate names are generally allowed; if referencing a secret, the name must be unique for the container. For non-secret EnvVar names, the Container will only get the last-declared one.", "items": { "$ref": "EnvVar" }, "type": "array" }, "envFrom": { - "description": "(Optional) List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", + "description": "Not supported by Cloud Run.", "items": { "$ref": "EnvFromSource" }, "type": "array" }, "image": { - "description": "Only supports containers from Google Container Registry or Artifact Registry URL of the Container image. More info: https://kubernetes.io/docs/concepts/containers/images", + "description": "Required. URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images", "type": "string" }, "imagePullPolicy": { - "description": "(Optional) 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. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", "type": "string" }, "livenessProbe": { "$ref": "Probe", - "description": "(Optional) 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. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" }, "name": { - "description": "(Optional) Name of the container specified as a DNS_LABEL. Currently unused in Cloud Run. 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). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names", "type": "string" }, "ports": { - "description": "(Optional) List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.", + "description": "List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.", "items": { "$ref": "ContainerPort" }, @@ -2549,37 +2584,37 @@ }, "readinessProbe": { "$ref": "Probe", - "description": "(Optional) Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes" + "description": "Not supported by Cloud Run." }, "resources": { "$ref": "ResourceRequirements", - "description": "(Optional) Compute Resources required by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" + "description": "Compute Resources required by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" }, "securityContext": { "$ref": "SecurityContext", - "description": "(Optional) Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" + "description": "Not supported by Cloud Run." }, "startupProbe": { "$ref": "Probe", - "description": "(Optional) 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 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" }, "terminationMessagePath": { - "description": "(Optional) 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.", + "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.", "type": "string" }, "terminationMessagePolicy": { - "description": "(Optional) Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", + "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", "type": "string" }, "volumeMounts": { - "description": "(Optional) Volume to mount into the container's filesystem. Only supports SecretVolumeSources. Pod volumes to mount into the container's filesystem.", + "description": "Volume to mount into the container's filesystem. Only supports SecretVolumeSources. Pod volumes to mount into the container's filesystem.", "items": { "$ref": "VolumeMount" }, "type": "array" }, "workingDir": { - "description": "(Optional) Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.", + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.", "type": "string" } }, @@ -2590,31 +2625,16 @@ "id": "ContainerPort", "properties": { "containerPort": { - "description": "(Optional) Port number the container listens on. This must be a valid port number, 0 < x < 65536.", + "description": "Port number the container listens on. This must be a valid port number, 0 < x < 65536.", "format": "int32", "type": "integer" }, "name": { - "description": "(Optional) If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".", + "description": "If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".", "type": "string" }, "protocol": { - "description": "(Optional) Protocol for port. Must be \"TCP\". Defaults to \"TCP\".", - "type": "string" - } - }, - "type": "object" - }, - "ContainerStatus": { - "description": "ContainerStatus holds the information of container name and image digest value.", - "id": "ContainerStatus", - "properties": { - "imageDigest": { - "description": "ImageDigest holds the resolved digest for the image specified, regardless of whether a tag or digest was originally specified in the Container object.", - "type": "string" - }, - "name": { - "description": "The name of the container, if specified.", + "description": "Protocol for port. Must be \"TCP\". Defaults to \"TCP\".", "type": "string" } }, @@ -2661,7 +2681,7 @@ "enumDescriptions": [ "", "Do not provision an HTTPS certificate.", - "Automatically provisions an HTTPS certificate via GoogleCA or LetsEncrypt." + "Automatically provisions an HTTPS certificate via GoogleCA." ], "type": "string" }, @@ -2704,27 +2724,27 @@ "type": "array" }, "url": { - "description": "Optional. Cloud Run fully managed: not supported Cloud Run on GKE: supported Holds the URL that will serve the traffic of the DomainMapping.", + "description": "Optional. Not supported by Cloud Run.", "type": "string" } }, "type": "object" }, "EnvFromSource": { - "description": "Not supported by Cloud Run EnvFromSource represents the source of a set of ConfigMaps", + "description": "Not supported by Cloud Run. EnvFromSource represents the source of a set of ConfigMaps", "id": "EnvFromSource", "properties": { "configMapRef": { "$ref": "ConfigMapEnvSource", - "description": "(Optional) The ConfigMap to select from" + "description": "The ConfigMap to select from" }, "prefix": { - "description": "(Optional) An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", + "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", "type": "string" }, "secretRef": { "$ref": "SecretEnvSource", - "description": "(Optional) The Secret to select from" + "description": "The Secret to select from" } }, "type": "object" @@ -2734,16 +2754,16 @@ "id": "EnvVar", "properties": { "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", + "description": "Required. Name of the environment variable. Must be a C_IDENTIFIER.", "type": "string" }, "value": { - "description": "(Optional) Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any route environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", + "description": "Value of the environment variable. Defaults to \"\". Variable references are not supported in Cloud Run.", "type": "string" }, "valueFrom": { "$ref": "EnvVarSource", - "description": "(Optional) Source for the environment variable's value. Only supports secret_key_ref. Source for the environment variable's value. Cannot be used if value is not empty." + "description": "Source for the environment variable's value. Only supports secret_key_ref. Cannot be used if value is not empty." } }, "type": "object" @@ -2754,21 +2774,21 @@ "properties": { "configMapKeyRef": { "$ref": "ConfigMapKeySelector", - "description": "(Optional) Not supported by Cloud Run Selects a key of a ConfigMap." + "description": "Not supported by Cloud Run. Not supported in Cloud Run." }, "secretKeyRef": { "$ref": "SecretKeySelector", - "description": "(Optional) Selects a key (version) of a secret in Secret Manager." + "description": "Selects a key (version) of a secret in Secret Manager." } }, "type": "object" }, "ExecAction": { - "description": "Not supported by Cloud Run ExecAction describes a \"run in container\" action.", + "description": "Not supported by Cloud Run. ExecAction describes a \"run in container\" action.", "id": "ExecAction", "properties": { "command": { - "description": "(Optional) Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", "items": { "type": "string" }, @@ -2778,28 +2798,28 @@ "type": "object" }, "Execution": { - "description": "Execution represents the configuration of a single execution. A execution an immutable resource that references a container image which is run to completion.", + "description": "Execution represents the configuration of a single execution. An execution is an immutable resource that references a container image which is run to completion.", "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 +optional", + "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", "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 +optional", + "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", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata +optional" + "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "ExecutionSpec", - "description": "Optional. Specification of the desired behavior of an execution. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional" + "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" }, "status": { "$ref": "ExecutionStatus", - "description": "Output only. Current status of an execution. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional", + "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", "readOnly": true } }, @@ -2809,6 +2829,11 @@ "description": "Reference to an Execution. Use /Executions.GetExecution with the given name to get full execution including the latest status.", "id": "ExecutionReference", "properties": { + "completionTimestamp": { + "description": "Optional. Completion timestamp of the execution.", + "format": "google-datetime", + "type": "string" + }, "creationTimestamp": { "description": "Optional. Creation timestamp of the execution.", "format": "google-datetime", @@ -2826,40 +2851,45 @@ "id": "ExecutionSpec", "properties": { "parallelism": { - "description": "Optional. 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/ +optional", + "description": "Optional. Specifies the maximum desired number of tasks the execution should run at given time. Must be <= task_count. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed, i.e. when the work left to do is less than max parallelism.", "format": "int32", "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. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ +optional", + "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.", "format": "int32", "type": "integer" }, "template": { "$ref": "TaskTemplateSpec", - "description": "Optional. Describes the task(s) that will be created when executing an execution." + "description": "Optional. The template used to create tasks for this execution." } }, "type": "object" }, "ExecutionStatus": { - "description": "ExecutionStatus represents the current state of a Execution.", + "description": "ExecutionStatus represents the current state of an Execution.", "id": "ExecutionStatus", "properties": { + "cancelledCount": { + "description": "Optional. The number of tasks which reached phase Cancelled.", + "format": "int32", + "type": "integer" + }, "completionTime": { - "description": "Optional. Represents time when the execution was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", + "description": "Optional. Represents the time that the execution was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", "format": "google-datetime", "type": "string" }, "conditions": { - "description": "Optional. The latest available observations of an execution's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ +optional", + "description": "Optional. Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Execution-specific conditions include: * `ResourcesAvailable`: `True` when underlying resources have been provisioned. * `Started`: `True` when the execution has started to execute. * `Completed`: `True` when the execution has succeeded. `False` when the execution has failed.", "items": { "$ref": "GoogleCloudRunV1Condition" }, "type": "array" }, "failedCount": { - "description": "Optional. The number of tasks which reached phase Failed. +optional", + "description": "Optional. The number of tasks which reached phase Failed.", "format": "int32", "type": "integer" }, @@ -2872,18 +2902,23 @@ "format": "int32", "type": "integer" }, + "retriedCount": { + "description": "Optional. The number of tasks which have retried at least once.", + "format": "int32", + "type": "integer" + }, "runningCount": { - "description": "Optional. The number of actively running tasks. +optional", + "description": "Optional. The number of actively running tasks.", "format": "int32", "type": "integer" }, "startTime": { - "description": "Optional. Represents time when the execution started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", + "description": "Optional. Represents the time that the execution started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "format": "google-datetime", "type": "string" }, "succeededCount": { - "description": "Optional. The number of tasks which reached phase Succeeded. +optional", + "description": "Optional. The number of tasks which reached phase Succeeded.", "format": "int32", "type": "integer" } @@ -2928,8 +2963,24 @@ }, "type": "object" }, + "GRPCAction": { + "description": "GRPCAction describes an action involving a GRPC port.", + "id": "GRPCAction", + "properties": { + "port": { + "description": "Port number of the gRPC service. Number must be in the range 1 to 65535.", + "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.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV1Condition": { - "description": "Condition defines a generic condition for a Resource.", + "description": "Conditions show the status of reconciliation progress on a given resource. Most resource use a top-level condition type \"Ready\" or \"Completed\" to show overall status with other conditions to checkpoint each stage of reconciliation. Note that if metadata.Generation does not equal status.ObservedGeneration, the conditions shown may not be relevant for the current spec.", "id": "GoogleCloudRunV1Condition", "properties": { "lastTransitionTime": { @@ -2942,11 +2993,11 @@ "type": "string" }, "reason": { - "description": "Optional. One-word CamelCase reason for the condition's last transition.", + "description": "Optional. One-word CamelCase reason for the condition's last transition. These are intended to be stable, unique values which the client may use to trigger error handling logic, whereas messages which may be changed later by the server.", "type": "string" }, "severity": { - "description": "Optional. How to interpret failures of this condition, one of Error, Warning, Info", + "description": "Optional. How to interpret this condition. One of Error, Warning, or Info. Conditions of severity Info do not contribute to resource readiness.", "type": "string" }, "status": { @@ -2954,7 +3005,7 @@ "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\": True when the Resource is ready.", + "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.", "type": "string" } }, @@ -2988,37 +3039,37 @@ "type": "object" }, "HTTPGetAction": { - "description": "Not supported by Cloud Run HTTPGetAction describes an action based on HTTP Get requests.", + "description": "HTTPGetAction describes an action based on HTTP Get requests.", "id": "HTTPGetAction", "properties": { "host": { - "description": "(Optional) Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", + "description": "Not supported by Cloud Run.", "type": "string" }, "httpHeaders": { - "description": "(Optional) Custom headers to set in the request. HTTP allows repeated headers.", + "description": "Custom headers to set in the request. HTTP allows repeated headers.", "items": { "$ref": "HTTPHeader" }, "type": "array" }, "path": { - "description": "(Optional) Path to access on the HTTP server.", + "description": "Path to access on the HTTP server.", "type": "string" }, "scheme": { - "description": "(Optional) Scheme to use for connecting to the host. Defaults to HTTP.", + "description": "Not supported by Cloud Run.", "type": "string" } }, "type": "object" }, "HTTPHeader": { - "description": "Not supported by Cloud Run HTTPHeader describes a custom header to be used in HTTP probes", + "description": "HTTPHeader describes a custom header to be used in HTTP probes", "id": "HTTPHeader", "properties": { "name": { - "description": "The header field name", + "description": "Required. The header field name", "type": "string" }, "value": { @@ -3029,28 +3080,28 @@ "type": "object" }, "Job": { - "description": "Job represents the configuration of a single job. A job an immutable resource that references a container image which is run to completion.", + "description": "Job represents the configuration of a single job, which references a container image which is run to completion.", "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 +optional", + "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", "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 +optional", + "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", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata +optional" + "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "JobSpec", - "description": "Optional. Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional" + "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" }, "status": { "$ref": "JobStatus", - "description": "Output only. Current status of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional", + "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", "readOnly": true } }, @@ -3072,19 +3123,12 @@ "id": "JobStatus", "properties": { "conditions": { - "description": "The latest available observations of a job's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Job-specific conditions include: * `Ready`: `True` when the job is ready to be executed.", "items": { "$ref": "GoogleCloudRunV1Condition" }, "type": "array" }, - "containerStatuses": { - "description": "Status information for each of the specified containers. The status includes the resolved digest for specified images, which occurs during creation of the job.", - "items": { - "$ref": "ContainerStatus" - }, - "type": "array" - }, "executionCount": { "description": "Number of executions created for this job.", "format": "int32", @@ -3107,7 +3151,7 @@ "id": "KeyToPath", "properties": { "key": { - "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version. The key to project.", + "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value, or an integer or a secret alias for a specific version. The key to project.", "type": "string" }, "mode": { @@ -3291,19 +3335,19 @@ "type": "object" }, "ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "description": "Metadata for synthetic resources like List. In Cloud Run, all List Resources Responses will have a ListMeta instead of ObjectMeta.", "id": "ListMeta", "properties": { "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.", + "description": "Continuation token is a value emitted when the count of items is larger than the user/system limit. To retrieve the next page of items, pass the value of `continue` as the next request's `page_token`.", "type": "string" }, "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency +optional", + "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", "type": "string" }, "selfLink": { - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only. +optional", + "description": "URL representing this object.", "type": "string" } }, @@ -3380,7 +3424,7 @@ "id": "ListServicesResponse", "properties": { "apiVersion": { - "description": "The API version for this call such as \"serving.knative.dev/v1\".", + "description": "The API version for this call; returns \"serving.knative.dev/v1\".", "type": "string" }, "items": { @@ -3391,7 +3435,7 @@ "type": "array" }, "kind": { - "description": "The kind of this resource, in this case \"ServiceList\".", + "description": "The kind of this resource; returns \"ServiceList\".", "type": "string" }, "metadata": { @@ -3399,7 +3443,7 @@ "description": "Metadata associated with this Service list." }, "unreachable": { - "description": "Locations that could not be reached.", + "description": "For calls against the global endpoint, returns the list of Cloud locations that could not be reached. For regional calls, this field is not used.", "items": { "type": "string" }, @@ -3442,11 +3486,11 @@ "type": "object" }, "LocalObjectReference": { - "description": "Not supported by Cloud Run LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", + "description": "Not supported by Cloud Run. LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", "id": "LocalObjectReference", "properties": { "name": { - "description": "(Optional) Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, @@ -3494,41 +3538,41 @@ "additionalProperties": { "type": "string" }, - "description": "(Optional) 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": "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", "type": "object" }, "clusterName": { - "description": "(Optional) Not supported by Cloud Run The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", + "description": "Not supported by Cloud Run", "type": "string" }, "creationTimestamp": { - "description": "(Optional) CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. Populated by the system. Read-only. Null for lists. 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. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", "format": "google-datetime", "type": "string" }, "deletionGracePeriodSeconds": { - "description": "(Optional) Not supported by Cloud Run Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", + "description": "Not supported by Cloud Run", "format": "int32", "type": "integer" }, "deletionTimestamp": { - "description": "(Optional) Not supported by Cloud Run DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "description": "The read-only soft deletion timestamp for this resource. In Cloud Run, users are not able to set this field. Instead, they must call the corresponding Delete API.", "format": "google-datetime", "type": "string" }, "finalizers": { - "description": "(Optional) Not supported by Cloud Run Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. +patchStrategy=merge", + "description": "Not supported by Cloud Run", "items": { "type": "string" }, "type": "array" }, "generateName": { - "description": "(Optional) Not supported by Cloud Run GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency string generateName = 2;", + "description": "Not supported by Cloud Run", "type": "string" }, "generation": { - "description": "(Optional) A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", + "description": "A system-provided sequence number representing a specific generation of the desired state.", "format": "int32", "type": "integer" }, @@ -3536,65 +3580,65 @@ "additionalProperties": { "type": "string" }, - "description": "(Optional) 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. More info: https://kubernetes.io/docs/user-guide/labels", "type": "object" }, "name": { - "description": "Name must be unique within a namespace, within a Cloud Run region. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/user-guide/identifiers#names +optional", + "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", "type": "string" }, "namespace": { - "description": "Namespace defines the space within each name must be unique, within a Cloud Run region. In Cloud Run the namespace must be equal to either the project ID or project number.", + "description": "Required. Defines the space within each name must be unique within a Cloud Run region. In Cloud Run, it must be project ID or number.", "type": "string" }, "ownerReferences": { - "description": "(Optional) Not supported by Cloud Run List of objects that own this object. If ALL objects in the list have been deleted, this object will be garbage collected.", + "description": "Not supported by Cloud Run", "items": { "$ref": "OwnerReference" }, "type": "array" }, "resourceVersion": { - "description": "Optional. An opaque 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. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients or omitted. 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. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency", "type": "string" }, "selfLink": { - "description": "(Optional) SelfLink is a URL representing this object. Populated by the system. Read-only. string selfLink = 4;", + "description": "URL representing this object.", "type": "string" }, "uid": { - "description": "(Optional) UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: https://kubernetes.io/docs/user-guide/identifiers#uids", + "description": "Unique, system-generated identifier for this resource. More info: https://kubernetes.io/docs/user-guide/identifiers#uids", "type": "string" } }, "type": "object" }, "OwnerReference": { - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", + "description": "This is not supported or used by Cloud Run.", "id": "OwnerReference", "properties": { "apiVersion": { - "description": "API version of the referent.", + "description": "This is not supported or used by Cloud Run.", "type": "string" }, "blockOwnerDeletion": { - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned. +optional", + "description": "This is not supported or used by Cloud Run.", "type": "boolean" }, "controller": { - "description": "If true, this reference points to the managing controller. +optional", + "description": "This is not supported or used by Cloud Run.", "type": "boolean" }, "kind": { - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "description": "This is not supported or used by Cloud Run.", "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/user-guide/identifiers#names", + "description": "This is not supported or used by Cloud Run.", "type": "string" }, "uid": { - "description": "UID of the referent. More info: https://kubernetes.io/docs/user-guide/identifiers#uids", + "description": "This is not supported or used by Cloud Run.", "type": "string" } }, @@ -3632,43 +3676,47 @@ "type": "object" }, "Probe": { - "description": "Not supported by Cloud Run Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", "id": "Probe", "properties": { "exec": { "$ref": "ExecAction", - "description": "(Optional) One and only one of the following should be specified. Exec specifies the action to take. A field inlined from the Handler message." + "description": "Not supported by Cloud Run." }, "failureThreshold": { - "description": "(Optional) Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", "format": "int32", "type": "integer" }, + "grpc": { + "$ref": "GRPCAction", + "description": "GRPCAction specifies an action involving a GRPC port." + }, "httpGet": { "$ref": "HTTPGetAction", - "description": "(Optional) HTTPGet specifies the http request to perform. A field inlined from the Handler message." + "description": "HTTPGet specifies the http request to perform." }, "initialDelaySeconds": { - "description": "(Optional) Number of seconds after the container has started before liveness probes are initiated. 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. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "format": "int32", "type": "integer" }, "periodSeconds": { - "description": "(Optional) How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value is 3600. Must be greater or equal than timeout_seconds.", + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.", "format": "int32", "type": "integer" }, "successThreshold": { - "description": "(Optional) Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup Probes.", + "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Must be 1 if set.", "format": "int32", "type": "integer" }, "tcpSocket": { "$ref": "TCPSocketAction", - "description": "(Optional) TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported A field inlined from the Handler message." + "description": "TCPSocket specifies an action involving a TCP port." }, "timeoutSeconds": { - "description": "(Optional) 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. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", "format": "int32", "type": "integer" } @@ -3714,21 +3762,21 @@ "additionalProperties": { "type": "string" }, - "description": "(Optional) 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": "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", "type": "object" }, "requests": { "additionalProperties": { "type": "string" }, - "description": "(Optional) 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": "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", "type": "object" } }, "type": "object" }, "Revision": { - "description": "Revision is an immutable snapshot of code and configuration. A revision references a container image. Revisions are created by updates to a Configuration. See also: https://github.com/knative/serving/blob/main/docs/spec/overview.md#revision", + "description": "Revision is an immutable snapshot of code and configuration. A revision references a container image. Revisions are created by updates to a Configuration. See also: https://github.com/knative/specs/blob/main/specs/serving/overview.md#revision", "id": "Revision", "properties": { "apiVersion": { @@ -3759,23 +3807,23 @@ "id": "RevisionSpec", "properties": { "containerConcurrency": { - "description": "ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. Cloud Run fully managed: supported, defaults to 80 Cloud Run for Anthos: supported, defaults to 0, which means concurrency to the application is not limited, and the system decides the target concurrency for the autoscaler.", + "description": "ContainerConcurrency specifies the maximum allowed in-flight (concurrent) requests per container instance of the Revision. If not specified, defaults to 80.", "format": "int32", "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/serving/blob/main/docs/runtime-contract.md", + "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", "items": { "$ref": "Container" }, "type": "array" }, "enableServiceLinks": { - "description": "Indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Cloud Run fully managed: Not supported. Cloud Run for Anthos: supported, defaults to true.", + "description": "Not supported by Cloud Run.", "type": "boolean" }, "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod Cloud Run fully managed: Not supported. Cloud Run for Anthos: supported.", + "description": "Not supported by Cloud Run.", "items": { "$ref": "LocalObjectReference" }, @@ -3786,7 +3834,7 @@ "type": "string" }, "timeoutSeconds": { - "description": "TimeoutSeconds holds the max duration the instance is allowed for responding to a request. Cloud Run fully managed: defaults to 300 seconds (5 minutes). Maximum allowed value is 3600 seconds (1 hour). Cloud Run for Anthos: defaults to 300 seconds (5 minutes). Maximum allowed value is configurable by the cluster operator.", + "description": "TimeoutSeconds holds the max duration the instance is allowed for responding to a request. Cloud Run: defaults to 300 seconds (5 minutes). Maximum allowed value is 3600 seconds (1 hour).", "format": "int32", "type": "integer" }, @@ -3804,7 +3852,7 @@ "id": "RevisionStatus", "properties": { "conditions": { - "description": "Conditions communicates information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. As a Revision is being prepared, it will incrementally update conditions. Revision-specific conditions include: * \"ResourcesAvailable\": True when underlying resources have been provisioned. * \"ContainerHealthy\": True when the Revision readiness check completes. * \"Active\": True when the Revision may receive traffic.", + "description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. As a Revision is being prepared, it will incrementally update conditions. Revision-specific conditions include: * `ResourcesAvailable`: `True` when underlying resources have been provisioned. * `ContainerHealthy`: `True` when the Revision readiness check completes. * `Active`: `True` when the Revision may receive traffic.", "items": { "$ref": "GoogleCloudRunV1Condition" }, @@ -3846,7 +3894,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/serving/blob/main/docs/spec/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. 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.", "id": "Route", "properties": { "apiVersion": { @@ -3902,12 +3950,12 @@ "type": "array" }, "observedGeneration": { - "description": "ObservedGeneration is the 'Generation' of the Route that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False. Note that providing a trafficTarget that only has a configurationName will result in a Route that does not increment either its metadata.generation or its observedGeneration, as new \"latest ready\" revisions from the Configuration are processed without an update to the Route's spec.", + "description": "ObservedGeneration is the 'Generation' of the Route that was last processed by the controller. Clients polling for completed reconciliation should poll until observedGeneration = metadata.generation and the Ready condition's status is True or False. Note that providing a TrafficTarget that has latest_revision=True will result in a Route that does not increment either its metadata.generation or its observedGeneration, as new \"latest ready\" revisions from the Configuration are processed without an update to the Route's spec.", "format": "int32", "type": "integer" }, "traffic": { - "description": "Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed.", + "description": "Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that was last observed.", "items": { "$ref": "TrafficTarget" }, @@ -3927,7 +3975,7 @@ "type": "object" }, "SecretEnvSource": { - "description": "Not supported by Cloud Run SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables.", + "description": "Not supported by Cloud Run. SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables.", "id": "SecretEnvSource", "properties": { "localObjectReference": { @@ -3939,7 +3987,7 @@ "type": "string" }, "optional": { - "description": "(Optional) Specify whether the Secret must be defined", + "description": "Specify whether the Secret must be defined", "type": "boolean" } }, @@ -3950,7 +3998,7 @@ "id": "SecretKeySelector", "properties": { "key": { - "description": "A Cloud Secret Manager secret version. Must be 'latest' for the latest version or an integer for a specific version. The key of the secret to select from. Must be a valid secret key.", + "description": "Required. A Cloud Secret Manager secret version. Must be 'latest' for the latest version, an integer for a specific version, or a version alias. The key of the secret to select from. Must be a valid secret key.", "type": "string" }, "localObjectReference": { @@ -3962,30 +4010,30 @@ "type": "string" }, "optional": { - "description": "(Optional) Specify whether the Secret or its key must be defined", + "description": "Specify whether the Secret or its key must be defined.", "type": "boolean" } }, "type": "object" }, "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 secret_name. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names.", + "description": "A volume representing a secret stored in Google Secret Manager. The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secret_name. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names.", "id": "SecretVolumeSource", "properties": { "defaultMode": { - "description": "Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0644. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", + "description": "Integer representation of mode bits to use on created files by default. Must be a value between 01 and 0777 (octal). If 0 or not set, it will default to 0444. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", "format": "int32", "type": "integer" }, "items": { - "description": "(Optional) If unspecified, the volume will expose a file whose name is the secret_name. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a key and a path. If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified that is not present in the Secret, the volume setup will error unless it is marked optional.", + "description": "A list of secret versions to mount in the volume. If no items are specified, the volume will expose a file with the same name as the secret name. The contents of the file will be the data in the latest version of the secret. If items are specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify both a key and a path.", "items": { "$ref": "KeyToPath" }, "type": "array" }, "optional": { - "description": "(Optional) Specify whether the Secret or its keys must be defined.", + "description": "Not supported by Cloud Run.", "type": "boolean" }, "secretName": { @@ -3996,11 +4044,11 @@ "type": "object" }, "SecurityContext": { - "description": "Not supported by Cloud Run SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", + "description": "Not supported by Cloud Run. SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", "id": "SecurityContext", "properties": { "runAsUser": { - "description": "(Optional) The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", + "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", "format": "int32", "type": "integer" } @@ -4012,24 +4060,24 @@ "id": "Service", "properties": { "apiVersion": { - "description": "The API version for this call such as \"serving.knative.dev/v1\".", + "description": "The API version for this call. It must be \"serving.knative.dev/v1\".", "type": "string" }, "kind": { - "description": "The kind of resource, in this case \"Service\".", + "description": "The kind of resource. It must be \"Service\".", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Metadata associated with this Service, including name, namespace, labels, and annotations. Cloud Run (fully managed) uses the following annotation keys to configure features on a Service: * `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/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", - "description": "Spec holds the desired state of the Service (from the client)." + "description": "Holds the desired state of the Service (from the client)." }, "status": { "$ref": "ServiceStatus", - "description": "Status communicates the observed state of the Service (from the controller)." + "description": "Communicates the system-controlled state of the Service." } }, "type": "object" @@ -4040,10 +4088,10 @@ "properties": { "template": { "$ref": "RevisionTemplate", - "description": "Template holds the latest specification for the Revision to be stamped out." + "description": "Holds the latest specification for the Revision to be stamped out." }, "traffic": { - "description": "Traffic specifies how to distribute traffic over a collection of Knative Revisions and Configurations.", + "description": "Specifies how to distribute traffic over a collection of Knative Revisions and Configurations to the Service's main URL.", "items": { "$ref": "TrafficTarget" }, @@ -4058,37 +4106,37 @@ "properties": { "address": { "$ref": "Addressable", - "description": "From RouteStatus. Similar to url, information on where the service is available on HTTP." + "description": "Similar to url, information on where the service is available on HTTP." }, "conditions": { - "description": "Conditions communicates information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Service-specific conditions include: * \"ConfigurationsReady\": true when the underlying Configuration is ready. * \"RoutesReady\": true when the underlying Route is ready. * \"Ready\": true when both the underlying Route and Configuration are ready.", + "description": "Conditions communicate information about ongoing/complete reconciliation processes that bring the `spec` inline with the observed state of the world. Service-specific conditions include: * `ConfigurationsReady`: `True` when the underlying Configuration is ready. * `RoutesReady`: `True` when the underlying Route is ready. * `Ready`: `True` when all underlying resources are ready.", "items": { "$ref": "GoogleCloudRunV1Condition" }, "type": "array" }, "latestCreatedRevisionName": { - "description": "From ConfigurationStatus. LatestCreatedRevisionName is the last revision that was created from this Service's Configuration. It might not be ready yet, for that use LatestReadyRevisionName.", + "description": "Name of the last revision that was created from this Service's Configuration. It might not be ready yet, for that use LatestReadyRevisionName.", "type": "string" }, "latestReadyRevisionName": { - "description": "From ConfigurationStatus. LatestReadyRevisionName holds the name of the latest Revision stamped out from this Service's Configuration that has had its \"Ready\" condition become \"True\".", + "description": "Name of the latest Revision from this Service's Configuration that has had its `Ready` condition become `True`.", "type": "string" }, "observedGeneration": { - "description": "ObservedGeneration is the 'Generation' of the Route that was last processed by the controller. 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 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.", "format": "int32", "type": "integer" }, "traffic": { - "description": "From RouteStatus. Traffic holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed.", + "description": "Holds the configured traffic distribution. These entries will always contain RevisionName references. When ConfigurationName appears in the spec, this will hold the LatestReadyRevisionName that we last observed.", "items": { "$ref": "TrafficTarget" }, "type": "array" }, "url": { - "description": "From RouteStatus. 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 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" } }, @@ -4100,7 +4148,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -4111,32 +4159,32 @@ "type": "object" }, "Status": { - "description": "Status is a return value for calls that don't return other objects", + "description": "Status is a return value for calls that don't return other objects.", "id": "Status", "properties": { "code": { - "description": "Suggested HTTP return code for this status, 0 if not set. +optional", + "description": "Suggested HTTP return code for this status, 0 if not set.", "format": "int32", "type": "integer" }, "details": { "$ref": "StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type. +optional" + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." }, "message": { - "description": "A human-readable description of the status of this operation. +optional", + "description": "A human-readable description of the status of this operation.", "type": "string" }, "metadata": { "$ref": "ListMeta", - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +optional" + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" }, "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. +optional", + "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 +optional", + "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", "type": "string" } }, @@ -4147,15 +4195,15 @@ "id": "StatusCause", "properties": { "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional. Examples: \"name\" - the field \"name\" on the current resource \"items[0].name\" - the field \"name\" on the first array entry in \"items\" +optional", + "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Examples: \"name\" - the field \"name\" on the current resource \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", "type": "string" }, "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader. +optional", + "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", "type": "string" }, "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available. +optional", + "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", "type": "string" } }, @@ -4166,46 +4214,46 @@ "id": "StatusDetails", "properties": { "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes. +optional", + "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", "items": { "$ref": "StatusCause" }, "type": "array" }, "group": { - "description": "The group attribute of the resource associated with the status StatusReason. +optional", + "description": "The group attribute of the resource associated with the status StatusReason.", "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 +optional", + "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", "type": "string" }, "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described). +optional", + "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", "type": "string" }, "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action. +optional", + "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", "format": "int32", "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 +optional", + "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", "type": "string" } }, "type": "object" }, "TCPSocketAction": { - "description": "Not supported by Cloud Run TCPSocketAction describes an action based on opening a socket", + "description": "TCPSocketAction describes an action based on opening a socket", "id": "TCPSocketAction", "properties": { "host": { - "description": "(Optional) Optional: Host name to connect to, defaults to the pod IP.", + "description": "Not supported by Cloud Run.", "type": "string" }, "port": { - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. This field is currently limited to integer types only because of proto's inability to properly support the IntOrString golang type.", + "description": "Port number to access on the container. Number must be in the range 1 to 65535.", "format": "int32", "type": "integer" } @@ -4217,24 +4265,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 +optional", + "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", "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 +optional", + "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", "type": "string" }, "metadata": { "$ref": "ObjectMeta", - "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata +optional" + "description": "Optional. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" }, "spec": { "$ref": "TaskSpec", - "description": "Optional. Specification of the desired behavior of an execution. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional" + "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" }, "status": { "$ref": "TaskStatus", - "description": "Output only. Current status of an execution. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status +optional", + "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", "readOnly": true } }, @@ -4273,16 +4321,16 @@ "type": "integer" }, "serviceAccountName": { - "description": "Optional. Email address of the IAM service account associated with the task of a job execution. 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. +optional", + "description": "Optional. Email address of the IAM service account associated with the task of a job execution. 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" }, "timeoutSeconds": { - "description": "Optional. 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. +optional", + "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.", "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 +optional", + "description": "Optional. List of volumes that can be mounted by containers belonging to the task. More info: https://kubernetes.io/docs/concepts/storage/volumes", "items": { "$ref": "Volume" }, @@ -4292,16 +4340,16 @@ "type": "object" }, "TaskStatus": { - "description": "TaskStatus represents the status of a task of a job execution.", + "description": "TaskStatus represents the status of a task.", "id": "TaskStatus", "properties": { "completionTime": { - "description": "Optional. Represents time when the task was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", + "description": "Optional. Represents time when the task was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "format": "google-datetime", "type": "string" }, "conditions": { - "description": "Optional. The latest available observations of a task's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ +optional", + "description": "Optional. Conditions communicate information about ongoing/complete reconciliation processes that bring the \"spec\" inline with the observed state of the world. Task-specific conditions include: * `Started`: `True` when the task has started to execute. * `Completed`: `True` when the task has succeeded. `False` when the task has failed.", "items": { "$ref": "GoogleCloudRunV1Condition" }, @@ -4314,24 +4362,24 @@ }, "lastAttemptResult": { "$ref": "TaskAttemptResult", - "description": "Optional. Result of the last attempt of this task. +optional" + "description": "Optional. Result of the last attempt of this task." }, "logUri": { "description": "Optional. URI where logs for this task can be found in Cloud Console.", "type": "string" }, "observedGeneration": { - "description": "Optional. The 'generation' of the execution that was last processed by the controller.", + "description": "Optional. The 'generation' of the task that was last processed by the controller.", "format": "int32", "type": "integer" }, "retried": { - "description": "Optional. The number of times this task was retried. Instances are retried when they fail up to the maxRetries limit. +optional", + "description": "Optional. The number of times this task was retried. Instances are retried when they fail up to the maxRetries limit.", "format": "int32", "type": "integer" }, "startTime": { - "description": "Optional. Represents time when the task started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. +optional", + "description": "Optional. Represents time when the task started to run. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", "format": "google-datetime", "type": "string" } @@ -4344,7 +4392,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 +optional" + "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" } }, "type": "object" @@ -4354,7 +4402,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -4382,11 +4430,11 @@ "id": "TrafficTarget", "properties": { "configurationName": { - "description": "ConfigurationName of a configuration to whose latest revision we will send this portion of traffic. When the \"status.latestReadyRevisionName\" of the referenced configuration changes, we will automatically migrate traffic from the prior \"latest ready\" revision to the new one. This field is never set in Route's status, only its spec. This is mutually exclusive with RevisionName. Cloud Run currently supports a single ConfigurationName.", + "description": "[Deprecated] Not supported in Cloud Run. It must be empty.", "type": "string" }, "latestRevision": { - "description": "Optional. LatestRevision may be provided to indicate that the latest ready Revision of the Configuration should be used for this traffic target. When provided LatestRevision must be true if RevisionName is empty; it must be false when RevisionName is non-empty.", + "description": "Uses the \"status.latestReadyRevisionName\" of the Service to determine the traffic target. When it changes, traffic will automatically migrate from the prior \"latest ready\" revision to the new one. This field must be false if RevisionName is set. This field defaults to true otherwise. If the field is set to true on Status, this means that the Revision was resolved from the Service's latest ready revision.", "type": "boolean" }, "percent": { @@ -4395,15 +4443,16 @@ "type": "integer" }, "revisionName": { - "description": "RevisionName of a specific revision to which to send this portion of traffic. This is mutually exclusive with ConfigurationName.", + "description": "Points this traffic target to a specific Revision. This field is mutually exclusive with latest_revision.", "type": "string" }, "tag": { - "description": "Optional. Tag is used to expose a dedicated url for referencing this target exclusively.", + "description": "Tag is used to expose a dedicated url for referencing this target exclusively.", "type": "string" }, "url": { "description": "Output only. URL displays the URL for accessing tagged traffic targets. URL is displayed in status, and is disallowed on spec. URL must contain a scheme (e.g. https://) and a hostname, but may not contain anything else (e.g. basic auth, url path, etc.)", + "readOnly": true, "type": "string" } }, @@ -4414,14 +4463,16 @@ "id": "Volume", "properties": { "configMap": { - "$ref": "ConfigMapVolumeSource" + "$ref": "ConfigMapVolumeSource", + "description": "Not supported in Cloud Run." }, "name": { "description": "Volume's name. In Cloud Run Fully Managed, the name 'cloudsql' is reserved.", "type": "string" }, "secret": { - "$ref": "SecretVolumeSource" + "$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." } }, "type": "object" @@ -4431,19 +4482,19 @@ "id": "VolumeMount", "properties": { "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", + "description": "Required. Path within the container at which the volume should be mounted. Must not contain ':'.", "type": "string" }, "name": { - "description": "The name of the volume. There must be a corresponding Volume with the same name.", + "description": "Required. The name of the volume. There must be a corresponding Volume with the same name.", "type": "string" }, "readOnly": { - "description": "(Optional) Only true is accepted. Defaults to true.", + "description": "Only true is accepted for Secret Volumes. Defaults to true for Secrets Volumes.", "type": "boolean" }, "subPath": { - "description": "(Optional) Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", + "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", "type": "string" } }, diff --git a/etc/api/run/v2/run-api.json b/etc/api/run/v2/run-api.json index fc08e4e585..1a43cef75e 100644 --- a/etc/api/run/v2/run-api.json +++ b/etc/api/run/v2/run-api.json @@ -109,6 +109,481 @@ "resources": { "locations": { "resources": { + "jobs": { + "methods": { + "create": { + "description": "Creates a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs", + "httpMethod": "POST", + "id": "run.projects.locations.jobs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "jobId": { + "description": "Required. The unique identifier for the Job. The name of the job becomes {parent}/jobs/{job_id}.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The location and project in which this Job should be created. Format: projects/{project}/locations/{location}, where {project} can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated and default values populated, without persisting the request or creating any resources.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+parent}/jobs", + "request": { + "$ref": "GoogleCloudRunV2Job" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", + "httpMethod": "DELETE", + "id": "run.projects.locations.jobs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The full name of the Job. Format: projects/{project}/locations/{location}/jobs/{job}, where {project} can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated without actually deleting any resources.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets information about a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full name of the Job. Format: projects/{project}/locations/{location}/jobs/{job}, where {project} can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRunV2Job" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the IAM Access Control policy currently in effect for the given Job. This result does not include any inherited policies.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:getIamPolicy", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.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/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Jobs.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Jobs to return in this call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous call to ListJobs. All other parameters must match.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The location and project to list resources on. Format: projects/{project}/locations/{location}, where {project} can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "If true, returns deleted (but unexpired) resources along with active ones.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+parent}/jobs", + "response": { + "$ref": "GoogleCloudRunV2ListJobsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", + "httpMethod": "PATCH", + "id": "run.projects.locations.jobs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "If set to true, and if the Job 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.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "The fully qualified name of this Job. Format: projects/{project}/locations/{location}/jobs/{job}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated and default values populated, without persisting the request or updating any resources.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GoogleCloudRunV2Job" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "run": { + "description": "Triggers creation of a new Execution of this Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:run", + "httpMethod": "POST", + "id": "run.projects.locations.jobs.run", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full name of the Job. Format: projects/{project}/locations/{location}/jobs/{job}, where {project} can be project id or number.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:run", + "request": { + "$ref": "GoogleCloudRunV2RunJobRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets the IAM Access control policy for the specified Job. Overwrites any existing policy.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:setIamPolicy", + "httpMethod": "POST", + "id": "run.projects.locations.jobs.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/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+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 Project. There are no permissions required for making this API call.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:testIamPermissions", + "httpMethod": "POST", + "id": "run.projects.locations.jobs.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/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+resource}:testIamPermissions", + "request": { + "$ref": "GoogleIamV1TestIamPermissionsRequest" + }, + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "executions": { + "methods": { + "delete": { + "description": "Deletes an Execution.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}", + "httpMethod": "DELETE", + "id": "run.projects.locations.jobs.executions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "A system-generated fingerprint for this version of the resource. This may be used to detect modification conflict during updates.", + "location": "query", + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated without actually deleting any resources.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets information about an Execution.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.executions.get", + "parameterOrder": [ + "name" + ], + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRunV2Execution" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Executions from a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.executions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Executions to return in this call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous call to ListExecutions. All other parameters must match.", + "location": "query", + "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.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "If true, returns deleted (but unexpired) resources along with active ones.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+parent}/executions", + "response": { + "$ref": "GoogleCloudRunV2ListExecutionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "tasks": { + "methods": { + "get": { + "description": "Gets information about a Task.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}/tasks/{tasksId}", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.executions.tasks.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The full name of the Task. Format: projects/{project}/locations/{location}/jobs/{job}/executions/{execution}/tasks/{task}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+/tasks/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleCloudRunV2Task" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Tasks from an Execution of a Job.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}/tasks", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.executions.tasks.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of Tasks to return in this call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous call to ListTasks. All other parameters must match.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The Execution from which the Tasks should be listed. To list all Tasks across Executions of a Job, use \"-\" instead of Execution name. To list all Tasks across Jobs, use \"-\" instead of Job name. Format: projects/{project}/locations/{location}/jobs/{job}/executions/{execution}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "If true, returns deleted (but unexpired) resources along with active ones.", + "location": "query", + "type": "boolean" + } + }, + "path": "v2/{+parent}/tasks", + "response": { + "$ref": "GoogleCloudRunV2ListTasksResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "operations": { "methods": { "delete": { @@ -201,6 +676,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "wait": { + "description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "run.projects.locations.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:wait", + "request": { + "$ref": "GoogleLongrunningWaitOperationRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -216,14 +719,14 @@ ], "parameters": { "parent": { - "description": "Required. The location and project in which this service should be created. Format: projects/{projectnumber}/locations/{location}", + "description": "Required. The location and project in which this service should be created. Format: projects/{project}/locations/{location}, where {project} can be project id or number. Only lowercase characters, digits, and hyphens.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "serviceId": { - "description": "Required. The unique identifier for the Service. The name of the service becomes {parent}/services/{service_id}.", + "description": "Required. The unique identifier for the Service. It must begin with letter, and cannot end with hyphen; must contain fewer than 50 characters. The name of the service becomes {parent}/services/{service_id}.", "location": "query", "type": "string" }, @@ -235,7 +738,7 @@ }, "path": "v2/{+parent}/services", "request": { - "$ref": "GoogleCloudRunOpV2Service" + "$ref": "GoogleCloudRunV2Service" }, "response": { "$ref": "GoogleLongrunningOperation" @@ -259,7 +762,7 @@ "type": "string" }, "name": { - "description": "Required. The full name of the Service. Format: projects/{projectnumber}/locations/{location}/services/{service}", + "description": "Required. The full name of the Service. Format: projects/{project}/locations/{location}/services/{service}, where {project} can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -289,7 +792,7 @@ ], "parameters": { "name": { - "description": "Required. The full name of the Service. Format: projects/{projectnumber}/locations/{location}/services/{service}", + "description": "Required. The full name of the Service. Format: projects/{project}/locations/{location}/services/{service}, where {project} can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", "required": true, @@ -298,14 +801,14 @@ }, "path": "v2/{+name}", "response": { - "$ref": "GoogleCloudRunOpV2Service" + "$ref": "GoogleCloudRunV2Service" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "getIamPolicy": { - "description": "Get the IAM Access Control policy currently in effect for the given Cloud Run Service. This result does not include any inherited policies.", + "description": "Gets the IAM Access Control policy currently in effect for the given Cloud Run Service. This result does not include any inherited policies.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:getIamPolicy", "httpMethod": "GET", "id": "run.projects.locations.services.getIamPolicy", @@ -320,7 +823,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -336,7 +839,7 @@ ] }, "list": { - "description": "List Services.", + "description": "Lists Services.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services", "httpMethod": "GET", "id": "run.projects.locations.services.list", @@ -356,7 +859,7 @@ "type": "string" }, "parent": { - "description": "Required. The location and project to list resources on. Location must be a valid GCP region, and may not be the \"-\" wildcard. Format: projects/{projectnumber}/locations/{location}", + "description": "Required. The location and project to list resources on. Location must be a valid Google Cloud region, and cannot be the \"-\" wildcard. Format: projects/{project}/locations/{location}, where {project} can be project id or number.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -370,7 +873,7 @@ }, "path": "v2/{+parent}/services", "response": { - "$ref": "GoogleCloudRunOpV2ListServicesResponse" + "$ref": "GoogleCloudRunV2ListServicesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -397,12 +900,6 @@ "required": true, "type": "string" }, - "updateMask": { - "description": "The list of fields to be updated.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - }, "validateOnly": { "description": "Indicates that the request should be validated and default values populated, without persisting the request or updating any resources.", "location": "query", @@ -411,7 +908,7 @@ }, "path": "v2/{+name}", "request": { - "$ref": "GoogleCloudRunOpV2Service" + "$ref": "GoogleCloudRunV2Service" }, "response": { "$ref": "GoogleLongrunningOperation" @@ -430,7 +927,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -458,7 +955,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -481,7 +978,7 @@ "revisions": { "methods": { "delete": { - "description": "Delete a Revision.", + "description": "Deletes a Revision.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/revisions/{revisionsId}", "httpMethod": "DELETE", "id": "run.projects.locations.services.revisions.delete", @@ -534,14 +1031,14 @@ }, "path": "v2/{+name}", "response": { - "$ref": "GoogleCloudRunOpV2Revision" + "$ref": "GoogleCloudRunV2Revision" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "list": { - "description": "List Revisions from a given Service, or from a given location.", + "description": "Lists Revisions from a given Service, or from a given location.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/revisions", "httpMethod": "GET", "id": "run.projects.locations.services.revisions.list", @@ -575,7 +1072,7 @@ }, "path": "v2/{+parent}/revisions", "response": { - "$ref": "GoogleCloudRunOpV2ListRevisionsResponse" + "$ref": "GoogleCloudRunV2ListRevisionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -590,12 +1087,12 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://run.googleapis.com/", "schemas": { - "GoogleCloudRunOpV2BinaryAuthorization": { + "GoogleCloudRunV2BinaryAuthorization": { "description": "Settings for Binary Authorization feature.", - "id": "GoogleCloudRunOpV2BinaryAuthorization", + "id": "GoogleCloudRunV2BinaryAuthorization", "properties": { "breakglassJustification": { "description": "If present, indicates to use Breakglass using this justification. If use_default is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass", @@ -608,11 +1105,11 @@ }, "type": "object" }, - "GoogleCloudRunOpV2CloudSqlInstance": { - "description": "Represents a specific Cloud SQL instance.", - "id": "GoogleCloudRunOpV2CloudSqlInstance", + "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", "properties": { - "connections": { + "instances": { "description": "The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}", "items": { "type": "string" @@ -622,67 +1119,23 @@ }, "type": "object" }, - "GoogleCloudRunOpV2Condition": { + "GoogleCloudRunV2Condition": { "description": "Defines a status condition for a resource.", - "id": "GoogleCloudRunOpV2Condition", + "id": "GoogleCloudRunV2Condition", "properties": { - "domainMappingReason": { - "description": "A reason for the domain mapping condition.", - "enum": [ - "DOMAIN_MAPPING_REASON_UNDEFINED", - "ROUTE_NOT_READY", - "PERMISSION_DENIED", - "CERTIFICATE_ALREADY_EXISTS", - "MAPPING_ALREADY_EXISTS", - "CERTIFICATE_PENDING", - "CERTIFICATE_FAILED" - ], - "enumDescriptions": [ - "Default value.", - "Internal route is not yet ready.", - "Insufficient permissions.", - "Certificate already exists.", - "Mapping already exists.", - "Certificate issuance pending.", - "Certificate issuance failed." - ], - "type": "string" - }, "executionReason": { "description": "A reason for the execution condition.", "enum": [ "EXECUTION_REASON_UNDEFINED", "JOB_STATUS_SERVICE_POLLING_ERROR", - "NON_ZERO_EXIT_CODE" + "NON_ZERO_EXIT_CODE", + "CANCELLED" ], "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." - ], - "type": "string" - }, - "internalReason": { - "description": "A reason for the internal condition.", - "enum": [ - "INTERNAL_REASON_UNDEFINED", - "CONFLICTING_REVISION_NAME", - "REVISION_MISSING", - "CONFIGURATION_MISSING", - "ASSIGNING_TRAFFIC", - "UPDATING_INGRESS_TRAFFIC_ALLOWED", - "REVISION_ORG_POLICY_VIOLATION", - "ENABLING_GCFV2_URI_SUPPORT" - ], - "enumDescriptions": [ - "Default value.", - "The revision name provided conflicts with an existing one.", - "Revision is missing; this is usually a transient reason.", - "Internal configuration is missing; this is usually a transient reason.", - "Assigning traffic; this is a transient reason.", - "Updating ingress traffic settings; this is a transient reason.", - "The revision can't be created because it violates an org policy setting.", - "Enabling GCFv2 URI support; this is a transient reason." + "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." ], "type": "string" }, @@ -700,10 +1153,8 @@ "enum": [ "COMMON_REASON_UNDEFINED", "UNKNOWN", - "ROUTE_MISSING", "REVISION_FAILED", "PROGRESS_DEADLINE_EXCEEDED", - "BUILD_STEP_FAILED", "CONTAINER_MISSING", "CONTAINER_PERMISSION_DENIED", "CONTAINER_IMAGE_UNAUTHORIZED", @@ -713,15 +1164,14 @@ "SECRETS_ACCESS_CHECK_FAILED", "WAITING_FOR_OPERATION", "IMMEDIATE_RETRY", - "POSTPONED_RETRY" + "POSTPONED_RETRY", + "INTERNAL" ], "enumDescriptions": [ "Default value.", "Reason unknown. Further details will be in message.", - "The internal route is missing.", "Revision creation process failed.", "Timed out waiting for completion.", - "There was a build error.", "The container image path is incorrect.", "Insufficient permissions on the container image.", "Container image is not authorized by policy.", @@ -731,7 +1181,8 @@ "At least one Access check on secrets failed.", "Waiting for operation to complete.", "System will retry immediately.", - "System will retry later; current attempt failed." + "System will retry later; current attempt failed.", + "An internal error occurred. Further information may be in the message." ], "type": "string" }, @@ -749,7 +1200,8 @@ "MIN_INSTANCES_NOT_PROVISIONED", "ACTIVE_REVISION_LIMIT_REACHED", "NO_DEPLOYMENT", - "HEALTH_CHECK_SKIPPED" + "HEALTH_CHECK_SKIPPED", + "MIN_INSTANCES_WARMING" ], "enumDescriptions": [ "Default value.", @@ -763,7 +1215,8 @@ "A revision with min_instance_count > 0 was created and is reserved, but it was not configured to serve traffic, so it's not live. This can also happen momentarily during traffic migration.", "The maximum allowed number of active revisions has been reached.", "There was no deployment defined. This value is no longer used, but Services created in older versions of the API might contain this value.", - "A revision's container has no port specified since the revision is of a manually scaled service with 0 instance count" + "A revision's container has no port specified since the revision is of a manually scaled service with 0 instance count", + "A revision with min_instance_count > 0 was created and is waiting for enough instances to begin a traffic migration." ], "type": "string" }, @@ -808,9 +1261,9 @@ }, "type": "object" }, - "GoogleCloudRunOpV2Container": { + "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.", - "id": "GoogleCloudRunOpV2Container", + "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", @@ -829,42 +1282,54 @@ "env": { "description": "List of environment variables to set in the container.", "items": { - "$ref": "GoogleCloudRunOpV2EnvVar" + "$ref": "GoogleCloudRunV2EnvVar" }, "type": "array" }, "image": { - "description": "Required. URL of the Container image in Google Container Registry or Docker More info: https://kubernetes.io/docs/concepts/containers/images", + "description": "Required. URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images", "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" + }, "name": { - "description": "Name of the container specified as a DNS_LABEL.", + "description": "Name of the container specified as a DNS_LABEL (RFC 1123).", "type": "string" }, "ports": { "description": "List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible. If omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on.", "items": { - "$ref": "GoogleCloudRunOpV2ContainerPort" + "$ref": "GoogleCloudRunV2ContainerPort" }, "type": "array" }, "resources": { - "$ref": "GoogleCloudRunOpV2ResourceRequirements", + "$ref": "GoogleCloudRunV2ResourceRequirements", "description": "Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources" }, + "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" + }, "volumeMounts": { "description": "Volume to mount into the container's filesystem.", "items": { - "$ref": "GoogleCloudRunOpV2VolumeMount" + "$ref": "GoogleCloudRunV2VolumeMount" }, "type": "array" + }, + "workingDir": { + "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.", + "type": "string" } }, "type": "object" }, - "GoogleCloudRunOpV2ContainerPort": { + "GoogleCloudRunV2ContainerPort": { "description": "ContainerPort represents a network port in a single container.", - "id": "GoogleCloudRunOpV2ContainerPort", + "id": "GoogleCloudRunV2ContainerPort", "properties": { "containerPort": { "description": "Port number the container listens on. This must be a valid TCP port number, 0 < container_port < 65536.", @@ -878,9 +1343,9 @@ }, "type": "object" }, - "GoogleCloudRunOpV2EnvVar": { + "GoogleCloudRunV2EnvVar": { "description": "EnvVar represents an environment variable present in a Container.", - "id": "GoogleCloudRunOpV2EnvVar", + "id": "GoogleCloudRunV2EnvVar", "properties": { "name": { "description": "Required. Name of the environment variable. Must be a C_IDENTIFIER, and mnay not exceed 32768 characters.", @@ -891,26 +1356,495 @@ "type": "string" }, "valueSource": { - "$ref": "GoogleCloudRunOpV2EnvVarSource", + "$ref": "GoogleCloudRunV2EnvVarSource", "description": "Source for the environment variable's value." } }, "type": "object" }, - "GoogleCloudRunOpV2EnvVarSource": { + "GoogleCloudRunV2EnvVarSource": { "description": "EnvVarSource represents a source for the value of an EnvVar.", - "id": "GoogleCloudRunOpV2EnvVarSource", + "id": "GoogleCloudRunV2EnvVarSource", "properties": { "secretKeyRef": { - "$ref": "GoogleCloudRunOpV2SecretKeySelector", + "$ref": "GoogleCloudRunV2SecretKeySelector", "description": "Selects a secret and a specific version from Cloud Secret Manager." } }, "type": "object" }, - "GoogleCloudRunOpV2ListRevisionsResponse": { + "GoogleCloudRunV2Execution": { + "description": "Execution represents the configuration of a single execution. A execution an immutable resource that references a container image which is run to completion.", + "id": "GoogleCloudRunV2Execution", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "KRM-style annotations for the resource.", + "type": "object" + }, + "cancelledCount": { + "description": "Output only. The number of tasks which reached phase Cancelled.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "completionTime": { + "description": "Output only. Represents time when the execution was completed. It is not guaranteed to be set in happens-before order across separate operations.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "conditions": { + "description": "Output only. The Condition of this Execution, containing its readiness status, and detailed error information in case it did not reach the desired state.", + "items": { + "$ref": "GoogleCloudRunV2Condition" + }, + "readOnly": true, + "type": "array" + }, + "createTime": { + "description": "Output only. Represents time when the execution was acknowledged by the execution controller. It is not guaranteed to be set in happens-before order across separate operations.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. For a deleted resource, the deletion time. It is only populated as a response to a Delete request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", + "readOnly": true, + "type": "string" + }, + "expireTime": { + "description": "Output only. For a deleted resource, the time after which it will be permamently deleted. It is only populated as a response to a Delete request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "failedCount": { + "description": "Output only. The number of tasks which reached phase Failed.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "generation": { + "description": "Output only. A number that monotonically increases every time the user modifies the desired state.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "job": { + "description": "Output only. The name of the parent Job.", + "readOnly": true, + "type": "string" + }, + "labels": { + "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", + "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).", + "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" + }, + "logUri": { + "description": "Output only. URI where logs for this execution can be found in Cloud Console.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The unique name of this Execution.", + "readOnly": true, + "type": "string" + }, + "observedGeneration": { + "description": "Output only. The generation of this Execution. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", + "format": "int64", + "readOnly": true, + "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/", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "reconciling": { + "description": "Output only. Indicates whether the resource's reconciliation is still in progress. See comments in `Job.reconciling` for additional information on reconciliation process in Cloud Run.", + "readOnly": true, + "type": "boolean" + }, + "retriedCount": { + "description": "Output only. The number of tasks which have retried at least once.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "runningCount": { + "description": "Output only. The number of actively running tasks.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "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", + "readOnly": true, + "type": "string" + }, + "succeededCount": { + "description": "Output only. The number of tasks which reached phase Succeeded.", + "format": "int32", + "readOnly": true, + "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/", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "template": { + "$ref": "GoogleCloudRunV2TaskTemplate", + "description": "Output only. The template used to create tasks for this execution.", + "readOnly": true + }, + "uid": { + "description": "Output only. Server assigned unique identifier for the Execution. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ExecutionReference": { + "description": "Reference to an Execution. Use /Executions.GetExecution with the given name to get full execution including the latest status.", + "id": "GoogleCloudRunV2ExecutionReference", + "properties": { + "completionTime": { + "description": "Creation timestamp of the execution.", + "format": "google-datetime", + "type": "string" + }, + "createTime": { + "description": "Creation timestamp of the execution.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Name of the execution.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ExecutionTemplate": { + "description": "ExecutionTemplate describes the data an execution should have when created from a template.", + "id": "GoogleCloudRunV2ExecutionTemplate", + "properties": { + "annotations": { + "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.", + "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.", + "type": "object" + }, + "parallelism": { + "description": "Specifies the maximum desired number of tasks the execution should run at given time. Must be <= task_count. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed remaining, i.e. when the work left to do is less than max parallelism.", + "format": "int32", + "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/", + "format": "int32", + "type": "integer" + }, + "template": { + "$ref": "GoogleCloudRunV2TaskTemplate", + "description": "Required. Describes the task(s) that will be created when executing an execution." + } + }, + "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.", + "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.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2HTTPGetAction": { + "description": "HTTPGetAction describes an action based on HTTP Get requests.", + "id": "GoogleCloudRunV2HTTPGetAction", + "properties": { + "httpHeaders": { + "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "items": { + "$ref": "GoogleCloudRunV2HTTPHeader" + }, + "type": "array" + }, + "path": { + "description": "Path to access on the HTTP server. Defaults to '/'.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2HTTPHeader": { + "description": "HTTPHeader describes a custom header to be used in HTTP probes", + "id": "GoogleCloudRunV2HTTPHeader", + "properties": { + "name": { + "description": "Required. The header field name", + "type": "string" + }, + "value": { + "description": "The header field value", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2Job": { + "description": "Job represents the configuration of a single job, which references a container image that is run to completion.", + "id": "GoogleCloudRunV2Job", + "properties": { + "annotations": { + "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", + "type": "object" + }, + "binaryAuthorization": { + "$ref": "GoogleCloudRunV2BinaryAuthorization", + "description": "Settings for the Binary Authorization feature." + }, + "client": { + "description": "Arbitrary identifier for the API client.", + "type": "string" + }, + "clientVersion": { + "description": "Arbitrary version identifier for the API client.", + "type": "string" + }, + "conditions": { + "description": "Output only. The Conditions of all other associated sub-resources. They contain additional diagnostics information in case the Job does not reach its desired state. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", + "items": { + "$ref": "GoogleCloudRunV2Condition" + }, + "readOnly": true, + "type": "array" + }, + "createTime": { + "description": "Output only. The creation time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "creator": { + "description": "Output only. Email address of the authenticated creator.", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. The deletion time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", + "readOnly": true, + "type": "string" + }, + "executionCount": { + "description": "Output only. Number of executions created for this job.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "expireTime": { + "description": "Output only. For a deleted resource, the time after which it will be permamently deleted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "generation": { + "description": "Output only. A number that monotonically increases every time the user modifies the desired state.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "labels": { + "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.", + "type": "object" + }, + "lastModifier": { + "description": "Output only. Email address of the last authenticated modifier.", + "readOnly": true, + "type": "string" + }, + "latestCreatedExecution": { + "$ref": "GoogleCloudRunV2ExecutionReference", + "description": "Output only. Name of the last created execution.", + "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.", + "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" + }, + "name": { + "description": "The fully qualified name of this Job. Format: projects/{project}/locations/{location}/jobs/{job}", + "type": "string" + }, + "observedGeneration": { + "description": "Output only. The generation of this Job. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "reconciling": { + "description": "Output only. Returns true if the Job is currently being acted upon by the system to bring it into the desired state. When a new Job is created, or an existing one is updated, Cloud Run will asynchronously perform all necessary steps to bring the Job to the desired state. This process is called reconciliation. While reconciliation is in process, `observed_generation` and `latest_succeeded_execution`, will have transient values that might mismatch the intended state: Once reconciliation is over (and this field is false), there are two possible outcomes: reconciliation succeeded and the state matches the Job, or there was an error, and reconciliation failed. This state can be found in `terminal_condition.state`. If reconciliation succeeded, the following fields will match: `observed_generation` and `generation`, `latest_succeeded_execution` and `latest_created_execution`. If reconciliation failed, `observed_generation` and `latest_succeeded_execution` will have the state of the last succeeded execution or empty for newly created Job. Additional information on the failure can be found in `terminal_condition` and `conditions`.", + "readOnly": true, + "type": "boolean" + }, + "template": { + "$ref": "GoogleCloudRunV2ExecutionTemplate", + "description": "Required. The template used to create executions for this Job." + }, + "terminalCondition": { + "$ref": "GoogleCloudRunV2Condition", + "description": "Output only. The Condition of this Job, containing its readiness status, and detailed error information in case it did not reach the desired state.", + "readOnly": true + }, + "uid": { + "description": "Output only. Server assigned unique identifier for the Execution. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ListExecutionsResponse": { + "description": "Response message containing a list of Executions.", + "id": "GoogleCloudRunV2ListExecutionsResponse", + "properties": { + "executions": { + "description": "The resulting list of Executions.", + "items": { + "$ref": "GoogleCloudRunV2Execution" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token indicating there are more items than page_size. Use it in the next ListExecutions request to continue.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ListJobsResponse": { + "description": "Response message containing a list of Jobs.", + "id": "GoogleCloudRunV2ListJobsResponse", + "properties": { + "jobs": { + "description": "The resulting list of Jobs.", + "items": { + "$ref": "GoogleCloudRunV2Job" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token indicating there are more items than page_size. Use it in the next ListJobs request to continue.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ListRevisionsResponse": { "description": "Response message containing a list of Revisions.", - "id": "GoogleCloudRunOpV2ListRevisionsResponse", + "id": "GoogleCloudRunV2ListRevisionsResponse", "properties": { "nextPageToken": { "description": "A token indicating there are more items than page_size. Use it in the next ListRevisions request to continue.", @@ -919,16 +1853,16 @@ "revisions": { "description": "The resulting list of Revisions.", "items": { - "$ref": "GoogleCloudRunOpV2Revision" + "$ref": "GoogleCloudRunV2Revision" }, "type": "array" } }, "type": "object" }, - "GoogleCloudRunOpV2ListServicesResponse": { + "GoogleCloudRunV2ListServicesResponse": { "description": "Response message containing a list of Services.", - "id": "GoogleCloudRunOpV2ListServicesResponse", + "id": "GoogleCloudRunV2ListServicesResponse", "properties": { "nextPageToken": { "description": "A token indicating there are more items than page_size. Use it in the next ListServices request to continue.", @@ -937,16 +1871,73 @@ "services": { "description": "The resulting list of Services.", "items": { - "$ref": "GoogleCloudRunOpV2Service" + "$ref": "GoogleCloudRunV2Service" }, "type": "array" } }, "type": "object" }, - "GoogleCloudRunOpV2ResourceRequirements": { + "GoogleCloudRunV2ListTasksResponse": { + "description": "Response message containing a list of Tasks.", + "id": "GoogleCloudRunV2ListTasksResponse", + "properties": { + "nextPageToken": { + "description": "A token indicating there are more items than page_size. Use it in the next ListTasks request to continue.", + "type": "string" + }, + "tasks": { + "description": "The resulting list of Tasks.", + "items": { + "$ref": "GoogleCloudRunV2Task" + }, + "type": "array" + } + }, + "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", + "properties": { + "failureThreshold": { + "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "format": "int32", + "type": "integer" + }, + "grpc": { + "$ref": "GoogleCloudRunV2GRPCAction", + "description": "GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified." + }, + "httpGet": { + "$ref": "GoogleCloudRunV2HTTPGetAction", + "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", + "format": "int32", + "type": "integer" + }, + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.", + "format": "int32", + "type": "integer" + }, + "tcpSocket": { + "$ref": "GoogleCloudRunV2TCPSocketAction", + "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", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ResourceRequirements": { "description": "ResourceRequirements describes the compute resource requirements.", - "id": "GoogleCloudRunOpV2ResourceRequirements", + "id": "GoogleCloudRunV2ResourceRequirements", "properties": { "cpuIdle": { "description": "Determines whether CPU should be throttled or not outside of requests.", @@ -956,15 +1947,15 @@ "additionalProperties": { "type": "string" }, - "description": "Only memory and CPU are supported. Note: The only supported values for CPU are '1', '2', and '4'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go", + "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", "type": "object" } }, "type": "object" }, - "GoogleCloudRunOpV2Revision": { + "GoogleCloudRunV2Revision": { "description": "A Revision is an immutable snapshot of code and configuration. A Revision references a container image. Revisions are only created by updates to its parent Service.", - "id": "GoogleCloudRunOpV2Revision", + "id": "GoogleCloudRunV2Revision", "properties": { "annotations": { "additionalProperties": { @@ -976,24 +1967,15 @@ "conditions": { "description": "Output only. The Condition of this Revision, containing its readiness status, and detailed error information in case it did not reach a serving state.", "items": { - "$ref": "GoogleCloudRunOpV2Condition" + "$ref": "GoogleCloudRunV2Condition" }, "readOnly": true, "type": "array" }, - "confidential": { - "description": "Indicates whether Confidential Cloud Run is enabled in this Revision.", - "type": "boolean" - }, - "containerConcurrency": { - "description": "Sets the maximum number of requests that each serving instance can receive.", - "format": "int32", - "type": "integer" - }, "containers": { "description": "Holds the single container that defines the unit of execution for this Revision.", "items": { - "$ref": "GoogleCloudRunOpV2Container" + "$ref": "GoogleCloudRunV2Container" }, "type": "array" }, @@ -1013,6 +1995,25 @@ "description": "A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek", "type": "string" }, + "encryptionKeyRevocationAction": { + "description": "The action to take if the encryption key is revoked.", + "enum": [ + "ENCRYPTION_KEY_REVOCATION_ACTION_UNSPECIFIED", + "PREVENT_NEW", + "SHUTDOWN" + ], + "enumDescriptions": [ + "Unspecified", + "Prevents the creation of new instances.", + "Shuts down existing instances, and prevents creation of new ones." + ], + "type": "string" + }, + "encryptionKeyShutdownDuration": { + "description": "If encryption_key_revocation_action is SHUTDOWN, the duration before shutting down all instances. The minimum increment is 1 hour.", + "format": "google-duration", + "type": "string" + }, "etag": { "description": "Output only. A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", "readOnly": true, @@ -1022,12 +2023,12 @@ "description": "The execution environment being used to host this Revision.", "enum": [ "EXECUTION_ENVIRONMENT_UNSPECIFIED", - "EXECUTION_ENVIRONMENT_DEFAULT", + "EXECUTION_ENVIRONMENT_GEN1", "EXECUTION_ENVIRONMENT_GEN2" ], "enumDescriptions": [ "Unspecified", - "Uses the Google-default environment.", + "Uses the First Generation environment.", "Uses Second Generation environment." ], "type": "string" @@ -1048,7 +2049,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 will populate some labels with 'run.googleapis.com' or 'serving.knative.dev' namespaces. Those labels are read-only, and user changes will not be preserved.", + "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", "type": "object" }, "launchStage": { @@ -1080,6 +2081,11 @@ "readOnly": true, "type": "string" }, + "maxInstanceRequestConcurrency": { + "description": "Sets the maximum number of requests that each serving instance can receive.", + "format": "int32", + "type": "integer" + }, "name": { "description": "Output only. The unique name of this Revision.", "readOnly": true, @@ -1097,7 +2103,7 @@ "type": "boolean" }, "scaling": { - "$ref": "GoogleCloudRunOpV2RevisionScaling", + "$ref": "GoogleCloudRunV2RevisionScaling", "description": "Scaling settings for this revision." }, "service": { @@ -1128,20 +2134,20 @@ "volumes": { "description": "A list of Volumes to make available to containers.", "items": { - "$ref": "GoogleCloudRunOpV2Volume" + "$ref": "GoogleCloudRunV2Volume" }, "type": "array" }, "vpcAccess": { - "$ref": "GoogleCloudRunOpV2VpcAccess", + "$ref": "GoogleCloudRunV2VpcAccess", "description": "VPC Access configuration for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." } }, "type": "object" }, - "GoogleCloudRunOpV2RevisionScaling": { + "GoogleCloudRunV2RevisionScaling": { "description": "Settings for revision-level scaling settings.", - "id": "GoogleCloudRunOpV2RevisionScaling", + "id": "GoogleCloudRunV2RevisionScaling", "properties": { "maxInstanceCount": { "description": "Maximum number of serving instances that this resource should have.", @@ -1156,30 +2162,21 @@ }, "type": "object" }, - "GoogleCloudRunOpV2RevisionTemplate": { + "GoogleCloudRunV2RevisionTemplate": { "description": "RevisionTemplate describes the data a revision should have when created from a template.", - "id": "GoogleCloudRunOpV2RevisionTemplate", + "id": "GoogleCloudRunV2RevisionTemplate", "properties": { "annotations": { "additionalProperties": { "type": "string" }, - "description": "KRM-style annotations for the resource.", + "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.", "type": "object" }, - "confidential": { - "description": "Enables Confidential Cloud Run in Revisions created using this template.", - "type": "boolean" - }, - "containerConcurrency": { - "description": "Sets the maximum number of requests that each serving instance can receive.", - "format": "int32", - "type": "integer" - }, "containers": { "description": "Holds the single container that defines the unit of execution for this Revision.", "items": { - "$ref": "GoogleCloudRunOpV2Container" + "$ref": "GoogleCloudRunV2Container" }, "type": "array" }, @@ -1191,12 +2188,12 @@ "description": "The sandbox environment to host this Revision.", "enum": [ "EXECUTION_ENVIRONMENT_UNSPECIFIED", - "EXECUTION_ENVIRONMENT_DEFAULT", + "EXECUTION_ENVIRONMENT_GEN1", "EXECUTION_ENVIRONMENT_GEN2" ], "enumDescriptions": [ "Unspecified", - "Uses the Google-default environment.", + "Uses the First Generation environment.", "Uses Second Generation environment." ], "type": "string" @@ -1205,15 +2202,20 @@ "additionalProperties": { "type": "string" }, - "description": "KRM-style labels for the resource.", + "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.", "type": "object" }, + "maxInstanceRequestConcurrency": { + "description": "Sets the maximum number of requests that each serving instance can receive.", + "format": "int32", + "type": "integer" + }, "revision": { "description": "The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.", "type": "string" }, "scaling": { - "$ref": "GoogleCloudRunOpV2RevisionScaling", + "$ref": "GoogleCloudRunV2RevisionScaling", "description": "Scaling settings for this Revision." }, "serviceAccount": { @@ -1228,45 +2230,60 @@ "volumes": { "description": "A list of Volumes to make available to containers.", "items": { - "$ref": "GoogleCloudRunOpV2Volume" + "$ref": "GoogleCloudRunV2Volume" }, "type": "array" }, "vpcAccess": { - "$ref": "GoogleCloudRunOpV2VpcAccess", + "$ref": "GoogleCloudRunV2VpcAccess", "description": "VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." } }, "type": "object" }, - "GoogleCloudRunOpV2SecretKeySelector": { + "GoogleCloudRunV2RunJobRequest": { + "description": "Request message to create a new Execution of a Job.", + "id": "GoogleCloudRunV2RunJobRequest", + "properties": { + "etag": { + "description": "A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", + "type": "string" + }, + "validateOnly": { + "description": "Indicates that the request should be validated without actually deleting any resources.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudRunV2SecretKeySelector": { "description": "SecretEnvVarSource represents a source for the value of an EnvVar.", - "id": "GoogleCloudRunOpV2SecretKeySelector", + "id": "GoogleCloudRunV2SecretKeySelector", "properties": { "secret": { "description": "Required. The name of the secret in Cloud Secret Manager. Format: {secret_name} if the secret is in the same project. projects/{project}/secrets/{secret_name} if the secret is in a different project.", "type": "string" }, "version": { - "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.", + "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest version, an integer for a specific version, or a version alias.", "type": "string" } }, "type": "object" }, - "GoogleCloudRunOpV2SecretVolumeSource": { + "GoogleCloudRunV2SecretVolumeSource": { "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 secret.", - "id": "GoogleCloudRunOpV2SecretVolumeSource", + "id": "GoogleCloudRunV2SecretVolumeSource", "properties": { "defaultMode": { - "description": "Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0644. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. This might be in conflict with other options that affect the file mode, like fsGroup, and as a result, other mode bits could be set.", + "description": "Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. This might be in conflict with other options that affect the file mode, like fsGroup, and as a result, other mode bits could be set.", "format": "int32", "type": "integer" }, "items": { "description": "If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.", "items": { - "$ref": "GoogleCloudRunOpV2VersionToPath" + "$ref": "GoogleCloudRunV2VersionToPath" }, "type": "array" }, @@ -1277,19 +2294,19 @@ }, "type": "object" }, - "GoogleCloudRunOpV2Service": { + "GoogleCloudRunV2Service": { "description": "Service acts as a top-level container that manages a set of configurations and revision templates which implement a network service. Service exists to provide a singular abstraction which can be access controlled, reasoned about, and which encapsulates software lifecycle decisions such as rollout policy and team resource ownership.", - "id": "GoogleCloudRunOpV2Service", + "id": "GoogleCloudRunV2Service", "properties": { "annotations": { "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 will populate some annotations using 'run.googleapis.com' or 'serving.knative.dev' namespaces. This field follows Kubernetes annotations' namespacing, limits, and rules. More info: https://kubernetes.io/docs/user-guide/annotations", + "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", "type": "object" }, "binaryAuthorization": { - "$ref": "GoogleCloudRunOpV2BinaryAuthorization", + "$ref": "GoogleCloudRunV2BinaryAuthorization", "description": "Settings for the Binary Authorization feature." }, "client": { @@ -1303,7 +2320,7 @@ "conditions": { "description": "Output only. The Conditions of all other associated sub-resources. They contain additional diagnostics information in case the Service does not reach its Serving state. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", "items": { - "$ref": "GoogleCloudRunOpV2Condition" + "$ref": "GoogleCloudRunV2Condition" }, "readOnly": true, "type": "array" @@ -1341,7 +2358,7 @@ "type": "string" }, "generation": { - "description": "Output only. A number that monotonically increases every time the user modifies the desired state.", + "description": "Output only. A number that monotonically increases every time the user modifies the desired state. Please note that unlike v1, this is an int64 value. As with most Google APIs, its JSON representation will be a `string` instead of an `integer`.", "format": "int64", "readOnly": true, "type": "string" @@ -1366,7 +2383,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 will populate some labels with 'run.googleapis.com' or 'serving.knative.dev' namespaces. Those labels are read-only, and user changes will not be preserved.", + "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.", "type": "object" }, "lastModifier": { @@ -1413,7 +2430,7 @@ "type": "string" }, "observedGeneration": { - "description": "Output only. The generation of this Service currently serving traffic. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", + "description": "Output only. The generation of this Service currently serving traffic. See comments in `reconciling` for additional information on reconciliation process in Cloud Run. Please note that unlike v1, this is an int64 value. As with most Google APIs, its JSON representation will be a `string` instead of an `integer`.", "format": "int64", "readOnly": true, "type": "string" @@ -1424,25 +2441,25 @@ "type": "boolean" }, "template": { - "$ref": "GoogleCloudRunOpV2RevisionTemplate", + "$ref": "GoogleCloudRunV2RevisionTemplate", "description": "Required. The template used to create revisions for this Service." }, "terminalCondition": { - "$ref": "GoogleCloudRunOpV2Condition", + "$ref": "GoogleCloudRunV2Condition", "description": "Output only. The Condition of this Service, containing its readiness status, and detailed error information in case it did not reach a serving state. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", "readOnly": true }, "traffic": { "description": "Specifies how to distribute traffic over a collection of Revisions belonging to the Service. If traffic is empty or not provided, defaults to 100% traffic to the latest `Ready` Revision.", "items": { - "$ref": "GoogleCloudRunOpV2TrafficTarget" + "$ref": "GoogleCloudRunV2TrafficTarget" }, "type": "array" }, "trafficStatuses": { "description": "Output only. Detailed status information for corresponding traffic targets. See comments in `reconciling` for additional information on reconciliation process in Cloud Run.", "items": { - "$ref": "GoogleCloudRunOpV2TrafficTargetStatus" + "$ref": "GoogleCloudRunV2TrafficTargetStatus" }, "readOnly": true, "type": "array" @@ -1466,9 +2483,277 @@ }, "type": "object" }, - "GoogleCloudRunOpV2TrafficTarget": { + "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.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudRunV2Task": { + "description": "Task represents a single run of a container to completion.", + "id": "GoogleCloudRunV2Task", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "KRM-style annotations for the resource.", + "type": "object" + }, + "completionTime": { + "description": "Output only. Represents time when the Task was completed. It is not guaranteed to be set in happens-before order across separate operations.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "conditions": { + "description": "Output only. The Condition of this Task, containing its readiness status, and detailed error information in case it did not reach the desired state.", + "items": { + "$ref": "GoogleCloudRunV2Condition" + }, + "readOnly": true, + "type": "array" + }, + "containers": { + "description": "Holds the single container that defines the unit of execution for this task.", + "items": { + "$ref": "GoogleCloudRunV2Container" + }, + "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.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deleteTime": { + "description": "Output only. For a deleted resource, the deletion time. It is only populated as a response to a Delete request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "encryptionKey": { + "description": "Output only. A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Output only. A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates.", + "readOnly": true, + "type": "string" + }, + "execution": { + "description": "Output only. The name of the parent Execution.", + "readOnly": true, + "type": "string" + }, + "executionEnvironment": { + "description": "The execution environment being used to host this Task.", + "enum": [ + "EXECUTION_ENVIRONMENT_UNSPECIFIED", + "EXECUTION_ENVIRONMENT_GEN1", + "EXECUTION_ENVIRONMENT_GEN2" + ], + "enumDescriptions": [ + "Unspecified", + "Uses the First Generation environment.", + "Uses Second Generation environment." + ], + "type": "string" + }, + "expireTime": { + "description": "Output only. For a deleted resource, the time after which it will be permamently deleted. It is only populated as a response to a Delete request.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "generation": { + "description": "Output only. A number that monotonically increases every time the user modifies the desired state.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "index": { + "description": "Output only. Index of the Task, unique per execution, and beginning at 0.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "job": { + "description": "Output only. The name of the parent Job.", + "readOnly": true, + "type": "string" + }, + "labels": { + "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", + "type": "object" + }, + "lastAttemptResult": { + "$ref": "GoogleCloudRunV2TaskAttemptResult", + "description": "Output only. Result of the last attempt of this Task.", + "readOnly": true + }, + "logUri": { + "description": "Output only. URI where logs for this execution can be found in Cloud Console.", + "readOnly": true, + "type": "string" + }, + "maxRetries": { + "description": "Number of retries allowed per Task, before marking this Task failed.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Output only. The unique name of this Task.", + "readOnly": true, + "type": "string" + }, + "observedGeneration": { + "description": "Output only. The generation of this Task. See comments in `Job.reconciling` for additional information on reconciliation process in Cloud Run.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "reconciling": { + "description": "Output only. Indicates whether the resource's reconciliation is still in progress. See comments in `Job.reconciling` for additional information on reconciliation process in Cloud Run.", + "readOnly": true, + "type": "boolean" + }, + "retried": { + "description": "Output only. The number of times this Task was retried. Tasks are retried when they fail up to the maxRetries limit.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "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" + }, + "startTime": { + "description": "Output only. Represents time when the task started to run. It is not guaranteed to be set in happens-before order across separate operations.", + "format": "google-datetime", + "readOnly": true, + "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.", + "format": "google-duration", + "type": "string" + }, + "uid": { + "description": "Output only. Server assigned unique identifier for the Task. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last-modified time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "volumes": { + "description": "A list of Volumes to make available to containers.", + "items": { + "$ref": "GoogleCloudRunV2Volume" + }, + "type": "array" + }, + "vpcAccess": { + "$ref": "GoogleCloudRunV2VpcAccess", + "description": "Output only. VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRunV2TaskAttemptResult": { + "description": "Result of a task attempt.", + "id": "GoogleCloudRunV2TaskAttemptResult", + "properties": { + "exitCode": { + "description": "Output only. The exit code of this attempt. This may be unset if the container was unable to exit cleanly with a code due to some other failure. See status field for possible failure details.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "Output only. The status of this attempt. If the status code is OK, then the attempt succeeded.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudRunV2TaskTemplate": { + "description": "TaskTemplate describes the data a task should have when created from a template.", + "id": "GoogleCloudRunV2TaskTemplate", + "properties": { + "containers": { + "description": "Holds the single container that defines the unit of execution for this task.", + "items": { + "$ref": "GoogleCloudRunV2Container" + }, + "type": "array" + }, + "encryptionKey": { + "description": "A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek", + "type": "string" + }, + "executionEnvironment": { + "description": "The execution environment being used to host this Task.", + "enum": [ + "EXECUTION_ENVIRONMENT_UNSPECIFIED", + "EXECUTION_ENVIRONMENT_GEN1", + "EXECUTION_ENVIRONMENT_GEN2" + ], + "enumDescriptions": [ + "Unspecified", + "Uses the First Generation environment.", + "Uses Second Generation environment." + ], + "type": "string" + }, + "maxRetries": { + "description": "Number of retries allowed per Task, before marking this Task failed.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "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.", + "format": "google-duration", + "type": "string" + }, + "volumes": { + "description": "A list of Volumes to make available to containers.", + "items": { + "$ref": "GoogleCloudRunV2Volume" + }, + "type": "array" + }, + "vpcAccess": { + "$ref": "GoogleCloudRunV2VpcAccess", + "description": "VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." + } + }, + "type": "object" + }, + "GoogleCloudRunV2TrafficTarget": { "description": "Holds a single traffic routing entry for the Service. Allocations can be done to a specific Revision name, or pointing to the latest Ready Revision.", - "id": "GoogleCloudRunOpV2TrafficTarget", + "id": "GoogleCloudRunV2TrafficTarget", "properties": { "percent": { "description": "Specifies percent of the traffic to this Revision. This defaults to zero if unspecified.", @@ -1500,9 +2785,9 @@ }, "type": "object" }, - "GoogleCloudRunOpV2TrafficTargetStatus": { + "GoogleCloudRunV2TrafficTargetStatus": { "description": "Represents the observed state of a single `TrafficTarget` entry.", - "id": "GoogleCloudRunOpV2TrafficTargetStatus", + "id": "GoogleCloudRunV2TrafficTargetStatus", "properties": { "percent": { "description": "Specifies percent of the traffic to this Revision.", @@ -1538,9 +2823,9 @@ }, "type": "object" }, - "GoogleCloudRunOpV2VersionToPath": { + "GoogleCloudRunV2VersionToPath": { "description": "VersionToPath maps a specific version of a secret to a relative file to mount to, relative to VolumeMount's mount_path.", - "id": "GoogleCloudRunOpV2VersionToPath", + "id": "GoogleCloudRunV2VersionToPath", "properties": { "mode": { "description": "Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used. Notes * Internally, a umask of 0222 will be applied to any non-zero value. * This is an integer representation of the mode bits. So, the octal integer value should look exactly as the chmod numeric notation with a leading zero. Some examples: for chmod 777 (a=rwx), set to 0777 (octal) or 511 (base-10). For chmod 640 (u=rw,g=r), set to 0640 (octal) or 416 (base-10). For chmod 755 (u=rwx,g=rx,o=rx), set to 0755 (octal) or 493 (base-10). * This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", @@ -1552,18 +2837,18 @@ "type": "string" }, "version": { - "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.", + "description": "The Cloud Secret Manager secret version. Can be 'latest' for the latest value, or an integer or a secret alias for a specific version.", "type": "string" } }, "type": "object" }, - "GoogleCloudRunOpV2Volume": { + "GoogleCloudRunV2Volume": { "description": "Volume represents a named volume in a container.", - "id": "GoogleCloudRunOpV2Volume", + "id": "GoogleCloudRunV2Volume", "properties": { "cloudSqlInstance": { - "$ref": "GoogleCloudRunOpV2CloudSqlInstance", + "$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." }, "name": { @@ -1571,15 +2856,15 @@ "type": "string" }, "secret": { - "$ref": "GoogleCloudRunOpV2SecretVolumeSource", + "$ref": "GoogleCloudRunV2SecretVolumeSource", "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret" } }, "type": "object" }, - "GoogleCloudRunOpV2VolumeMount": { + "GoogleCloudRunV2VolumeMount": { "description": "VolumeMount describes a mounting of a Volume within a container.", - "id": "GoogleCloudRunOpV2VolumeMount", + "id": "GoogleCloudRunV2VolumeMount", "properties": { "mountPath": { "description": "Required. Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be `/cloudsql`. All instances defined in the Volume will be available as `/cloudsql/[instance]`. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run", @@ -1592,12 +2877,12 @@ }, "type": "object" }, - "GoogleCloudRunOpV2VpcAccess": { + "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", - "id": "GoogleCloudRunOpV2VpcAccess", + "id": "GoogleCloudRunV2VpcAccess", "properties": { "connector": { - "description": "VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}", + "description": "VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.", "type": "string" }, "egress": { @@ -1618,7 +2903,7 @@ "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.", + "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", "properties": { "auditLogConfigs": { @@ -1674,7 +2959,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1724,7 +3009,7 @@ "properties": { "policy": { "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1739,7 +3024,7 @@ "id": "GoogleIamV1TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -1815,8 +3100,20 @@ }, "type": "object" }, + "GoogleLongrunningWaitOperationRequest": { + "description": "The request message for Operations.WaitOperation.", + "id": "GoogleLongrunningWaitOperationRequest", + "properties": { + "timeout": { + "description": "The maximum duration to wait before timing out. If left blank, the wait will be at most the time permitted by the underlying HTTP/RPC protocol. If RPC context deadline is also specified, the shorter one will be used.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GoogleProtobufEmpty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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/runtimeconfig/v1/runtimeconfig-api.json b/etc/api/runtimeconfig/v1/runtimeconfig-api.json index 15c78d53f1..33966ba8dd 100644 --- a/etc/api/runtimeconfig/v1/runtimeconfig-api.json +++ b/etc/api/runtimeconfig/v1/runtimeconfig-api.json @@ -210,7 +210,7 @@ } } }, - "revision": "20220228", + "revision": "20230109", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -220,7 +220,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json b/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json index 52138eabbb..b825b049d1 100644 --- a/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json +++ b/etc/api/runtimeconfig/v1beta1/runtimeconfig-api.json @@ -214,7 +214,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+$", "required": true, @@ -277,7 +277,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+$", "required": true, @@ -306,7 +306,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+$", "required": true, @@ -394,7 +394,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+/operations/.*$", "required": true, @@ -565,7 +565,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+/variables/.*$", "required": true, @@ -779,7 +779,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/configs/[^/]+/waiters/[^/]+$", "required": true, @@ -805,7 +805,7 @@ } } }, - "revision": "20220228", + "revision": "20230123", "rootUrl": "https://runtimeconfig.googleapis.com/", "schemas": { "Binding": { @@ -817,7 +817,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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" }, @@ -847,7 +847,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1020,7 +1020,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1057,7 +1057,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/safebrowsing/v4/safebrowsing-api.json b/etc/api/safebrowsing/v4/safebrowsing-api.json index 4bbfdc96dd..3313b848e8 100644 --- a/etc/api/safebrowsing/v4/safebrowsing-api.json +++ b/etc/api/safebrowsing/v4/safebrowsing-api.json @@ -261,11 +261,11 @@ } } }, - "revision": "20220305", + "revision": "20230108", "rootUrl": "https://safebrowsing.googleapis.com/", "schemas": { "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" @@ -396,7 +396,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -416,7 +417,8 @@ "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." + "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." ], "type": "string" } @@ -596,7 +598,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -616,7 +619,8 @@ "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." + "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." ], "type": "string" } @@ -926,7 +930,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -946,7 +951,8 @@ "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." + "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." ], "type": "string" }, @@ -1096,7 +1102,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -1116,7 +1123,8 @@ "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." + "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." ], "type": "string" }, @@ -1197,7 +1205,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -1217,7 +1226,8 @@ "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." + "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." ], "type": "string" } @@ -1309,7 +1319,8 @@ "SUSPICIOUS", "TRICK_TO_BILL", "HIGH_CONFIDENCE_ALLOWLIST", - "ACCURACY_TIPS" + "ACCURACY_TIPS", + "SOCIAL_ENGINEERING_LOWER_PRECISION" ], "enumDescriptions": [ "Unknown.", @@ -1329,7 +1340,8 @@ "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." + "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." ], "type": "string" } diff --git a/etc/api/sasportal/v1alpha1/sasportal-api.json b/etc/api/sasportal/v1alpha1/sasportal-api.json index 1672176154..14ff3cc82a 100644 --- a/etc/api/sasportal/v1alpha1/sasportal-api.json +++ b/etc/api/sasportal/v1alpha1/sasportal-api.json @@ -2,8 +2,8 @@ "auth": { "oauth2": { "scopes": { - "https://www.googleapis.com/auth/userinfo.email": { - "description": "See your primary Google Account email address" + "https://www.googleapis.com/auth/sasportal": { + "description": "Read, create, update, and delete your SAS Portal data." } } } @@ -128,7 +128,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -155,7 +155,7 @@ "$ref": "SasPortalListCustomersResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -189,7 +189,7 @@ "$ref": "SasPortalCustomer" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -221,7 +221,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -246,7 +246,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -271,7 +271,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -312,7 +312,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -340,7 +340,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -374,7 +374,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -406,7 +406,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -434,7 +434,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -475,7 +475,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -509,7 +509,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -537,7 +537,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -562,7 +562,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -587,7 +587,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -628,7 +628,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -656,7 +656,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -690,7 +690,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -718,7 +718,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -746,7 +746,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -778,7 +778,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -803,7 +803,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -828,7 +828,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -869,7 +869,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -897,7 +897,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -931,7 +931,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -963,7 +963,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1004,7 +1004,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1036,7 +1036,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1064,7 +1064,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1105,7 +1105,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1137,7 +1137,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1178,7 +1178,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1211,7 +1211,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1240,7 +1240,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1265,7 +1265,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1293,7 +1293,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1327,7 +1327,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -1355,7 +1355,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -1383,7 +1383,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1407,7 +1407,7 @@ "$ref": "SasPortalGenerateSecretResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "validate": { @@ -1425,7 +1425,7 @@ "$ref": "SasPortalValidateInstallerResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1454,7 +1454,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1483,7 +1483,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1508,7 +1508,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1549,7 +1549,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1577,7 +1577,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1611,7 +1611,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -1643,7 +1643,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1671,7 +1671,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1712,7 +1712,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -1746,7 +1746,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -1774,7 +1774,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -1799,7 +1799,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -1824,7 +1824,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -1865,7 +1865,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -1893,7 +1893,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -1927,7 +1927,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "signDevice": { @@ -1955,7 +1955,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "updateSigned": { @@ -1983,7 +1983,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2015,7 +2015,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "delete": { @@ -2040,7 +2040,7 @@ "$ref": "SasPortalEmpty" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "get": { @@ -2065,7 +2065,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2106,7 +2106,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "move": { @@ -2134,7 +2134,7 @@ "$ref": "SasPortalOperation" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "patch": { @@ -2168,7 +2168,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } }, @@ -2200,7 +2200,7 @@ "$ref": "SasPortalDeployment" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2241,7 +2241,7 @@ "$ref": "SasPortalListDeploymentsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2273,7 +2273,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "createSigned": { @@ -2301,7 +2301,7 @@ "$ref": "SasPortalDevice" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2342,7 +2342,7 @@ "$ref": "SasPortalListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2374,7 +2374,7 @@ "$ref": "SasPortalNode" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "list": { @@ -2415,7 +2415,7 @@ "$ref": "SasPortalListNodesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } @@ -2441,7 +2441,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "set": { @@ -2459,7 +2459,7 @@ "$ref": "SasPortalPolicy" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] }, "test": { @@ -2477,13 +2477,13 @@ "$ref": "SasPortalTestPermissionsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/sasportal" ] } } } }, - "revision": "20220301", + "revision": "20230121", "rootUrl": "https://sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { @@ -2513,7 +2513,7 @@ "description": "The frequency range of the channel." }, "score": { - "description": "The channel score, normalized to be in [0,100].", + "description": "The channel score, normalized to be in the range [0,100].", "format": "double", "type": "number" } @@ -2567,7 +2567,7 @@ "type": "string" }, "frns": { - "description": "Output only. The FRNs copied from its direct parent.", + "description": "Output only. The FCC Registration Numbers (FRNs) copied from its direct parent.", "items": { "type": "string" }, @@ -2617,7 +2617,7 @@ "type": "string" }, "grantRangeAllowlists": { - "description": "Only ranges within the allowlists are available for new grants.", + "description": "Only ranges that are within the allowlists are available for new grants.", "items": { "$ref": "SasPortalFrequencyRange" }, @@ -2810,6 +2810,11 @@ "description": "Grant Id.", "type": "string" }, + "lastHeartbeatTransmitExpireTime": { + "description": "The transmit expiration time of the last heartbeat.", + "format": "google-datetime", + "type": "string" + }, "maxEirp": { "description": "Maximum Equivalent Isotropically Radiated Power (EIRP) permitted by the grant. The maximum EIRP is in units of dBm/MHz. The value of `maxEirp` represents the average (RMS) EIRP that would be measured by the procedure defined in FCC part 96.41(e)(3).", "format": "double", @@ -2857,19 +2862,19 @@ "id": "SasPortalDeviceMetadata", "properties": { "antennaModel": { - "description": "If populated, the Antenna Model Pattern to use. Format is: RecordCreatorId:PatternId", + "description": "If populated, the Antenna Model Pattern to use. Format is: `RecordCreatorId:PatternId`", "type": "string" }, "commonChannelGroup": { - "description": "CCG. A group of CBSDs in the same ICG requesting a common primary channel assignment. See CBRSA-TS-2001 V3.0.0 for more details.", + "description": "Common Channel Group (CCG). A group of CBSDs in the same ICG requesting a common primary channel assignment. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", "type": "string" }, "interferenceCoordinationGroup": { - "description": "ICG. A group of CBSDs that manage their own interference with the group. See CBRSA-TS-2001 V3.0.0 for more details.", + "description": "Interference Coordination Group (ICG). A group of CBSDs that manage their own interference with the group. For more details, see [CBRSA-TS-2001 V3.0.0](https://ongoalliance.org/wp-content/uploads/2020/02/CBRSA-TS-2001-V3.0.0_Approved-for-publication.pdf).", "type": "string" }, "nrqzValidated": { - "description": "Output only. Whether a CPI has validated to have coordinated with the National Quiet Zone office.", + "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" }, @@ -2924,7 +2929,7 @@ "type": "object" }, "SasPortalEmpty": { - "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": "SasPortalEmpty", "properties": {}, "type": "object" @@ -2998,6 +3003,11 @@ "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" @@ -3011,6 +3021,11 @@ "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", @@ -3185,11 +3200,11 @@ "type": "object" }, "SasPortalNrqzValidation": { - "description": "Information about National Radio Quiet Zone validation. The presence of the field indicates the device has been validated.", + "description": "Information about National Radio Quiet Zone validation.", "id": "SasPortalNrqzValidation", "properties": { "caseId": { - "description": "Validation case id.", + "description": "Validation case ID.", "type": "string" }, "cpiId": { @@ -3197,14 +3212,28 @@ "type": "string" }, "latitude": { - "description": "Device latitude associated with the validation.", + "description": "Device latitude that's associated with the validation.", "format": "double", "type": "number" }, "longitude": { - "description": "Device longitude associated with the validation.", + "description": "Device longitude that's associated with the validation.", "format": "double", "type": "number" + }, + "state": { + "description": "State of the NRQZ validation info.", + "enum": [ + "STATE_UNSPECIFIED", + "DRAFT", + "FINAL" + ], + "enumDescriptions": [ + "Unspecified state.", + "Draft state.", + "Final state." + ], + "type": "string" } }, "type": "object" @@ -3268,7 +3297,7 @@ "id": "SasPortalSetPolicyRequest", "properties": { "disableNotification": { - "description": "Optional. Set the field as true when we would like to disable the onboarding notification.", + "description": "Optional. Set the field as `true` to disable the onboarding notification.", "type": "boolean" }, "policy": { diff --git a/etc/api/script/v1/script-api.json b/etc/api/script/v1/script-api.json index 8a4157ebe2..528f3c3c30 100644 --- a/etc/api/script/v1/script-api.json +++ b/etc/api/script/v1/script-api.json @@ -887,7 +887,7 @@ } } }, - "revision": "20220303", + "revision": "20230124", "rootUrl": "https://script.googleapis.com/", "schemas": { "Content": { @@ -975,7 +975,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/searchconsole/v1/searchconsole-api.json b/etc/api/searchconsole/v1/searchconsole-api.json index c2fc66cf59..5e6eb0b2a7 100644 --- a/etc/api/searchconsole/v1/searchconsole-api.json +++ b/etc/api/searchconsole/v1/searchconsole-api.json @@ -400,7 +400,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://searchconsole.googleapis.com/", "schemas": { "AmpInspectionResult": { @@ -419,7 +419,7 @@ "enumDescriptions": [ "Unknown verdict.", "Equivalent to \"Valid\" for the page or item in Search Console.", - "Equivalent to \"Valid with warnings\" for the page or item in Search Console.", + "Reserved, no longer in use.", "Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", "Equivalent to \"Excluded\" for the page or item in Search Console." ], @@ -515,7 +515,7 @@ "enumDescriptions": [ "Unknown verdict.", "Equivalent to \"Valid\" for the page or item in Search Console.", - "Equivalent to \"Valid with warnings\" for the page or item in Search Console.", + "Reserved, no longer in use.", "Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", "Equivalent to \"Excluded\" for the page or item in Search Console." ], @@ -815,7 +815,7 @@ "enumDescriptions": [ "Unknown verdict.", "Equivalent to \"Valid\" for the page or item in Search Console.", - "Equivalent to \"Valid with warnings\" for the page or item in Search Console.", + "Reserved, no longer in use.", "Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", "Equivalent to \"Excluded\" for the page or item in Search Console." ], @@ -924,7 +924,7 @@ "enumDescriptions": [ "Unknown verdict.", "Equivalent to \"Valid\" for the page or item in Search Console.", - "Equivalent to \"Valid with warnings\" for the page or item in Search Console.", + "Reserved, no longer in use.", "Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", "Equivalent to \"Excluded\" for the page or item in Search Console." ], @@ -1014,7 +1014,7 @@ "enumDescriptions": [ "Unknown verdict.", "Equivalent to \"Valid\" for the page or item in Search Console.", - "Equivalent to \"Valid with warnings\" for the page or item in Search Console.", + "Reserved, no longer in use.", "Equivalent to \"Error\" or \"Invalid\" for the page or item in Search Console.", "Equivalent to \"Excluded\" for the page or item in Search Console." ], diff --git a/etc/api/secretmanager/v1/secretmanager-api.json b/etc/api/secretmanager/v1/secretmanager-api.json index 22b65d2f75..dd1160759c 100644 --- a/etc/api/secretmanager/v1/secretmanager-api.json +++ b/etc/api/secretmanager/v1/secretmanager-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -311,7 +311,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -411,7 +411,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -439,7 +439,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -643,7 +643,7 @@ } } }, - "revision": "20220226", + "revision": "20230114", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -673,7 +673,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -752,7 +752,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -810,7 +810,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -876,7 +876,7 @@ "type": "string" }, "totalSize": { - "description": "The total number of SecretVersions.", + "description": "The total number of SecretVersions but 0 when the ListSecretsRequest.filter field is set.", "format": "int32", "type": "integer" }, @@ -906,7 +906,7 @@ "type": "array" }, "totalSize": { - "description": "The total number of Secrets.", + "description": "The total number of Secrets but 0 when the ListSecretsRequest.filter field is set.", "format": "int32", "type": "integer" } @@ -1061,6 +1061,13 @@ "description": "A Secret is a logical secret whose value and versions can be accessed. A Secret is made up of zero or more SecretVersions that represent the secret data.", "id": "Secret", "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Custom metadata about the secret. Annotations are distinct from various forms of labels. Annotations exist to allow client tools to store their own state information without requiring a database. Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and may have dashes (-), underscores (_), dots (.), and alphanumerics in between these symbols. The total size of annotation keys and values must be less than 16KiB.", + "type": "object" + }, "createTime": { "description": "Output only. The time at which the Secret was created.", "format": "google-datetime", @@ -1107,6 +1114,14 @@ "description": "Input only. The TTL for the Secret.", "format": "google-duration", "type": "string" + }, + "versionAliases": { + "additionalProperties": { + "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.", + "type": "object" } }, "type": "object" @@ -1189,7 +1204,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1204,7 +1219,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/secretmanager/v1beta1/secretmanager-api.json b/etc/api/secretmanager/v1beta1/secretmanager-api.json index f6bc140e85..c1f5dbbdbe 100644 --- a/etc/api/secretmanager/v1beta1/secretmanager-api.json +++ b/etc/api/secretmanager/v1beta1/secretmanager-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -306,7 +306,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -401,7 +401,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -429,7 +429,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/secrets/[^/]+$", "required": true, @@ -628,7 +628,7 @@ } } }, - "revision": "20220226", + "revision": "20230114", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -658,7 +658,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -720,7 +720,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -746,7 +746,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1023,7 +1023,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -1038,7 +1038,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/securitycenter/v1/securitycenter-api.json b/etc/api/securitycenter/v1/securitycenter-api.json index 87045cc304..f98a611907 100644 --- a/etc/api/securitycenter/v1/securitycenter-api.json +++ b/etc/api/securitycenter/v1/securitycenter-api.json @@ -119,7 +119,7 @@ ], "parameters": { "parent": { - "description": "Required. Name of the organization to groupBy. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent to group the assets by. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -180,7 +180,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the organization assets should belong to. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -218,7 +218,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -246,7 +246,7 @@ "bigQueryExports": { "methods": { "create": { - "description": "Creates a big query export.", + "description": "Creates a BigQuery export.", "flatPath": "v1/folders/{foldersId}/bigQueryExports", "httpMethod": "POST", "id": "securitycenter.folders.bigQueryExports.create", @@ -260,7 +260,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the new big query export's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "description": "Required. The name of the parent resource of the new BigQuery export. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -279,7 +279,7 @@ ] }, "delete": { - "description": "Deletes an existing big query export.", + "description": "Deletes an existing BigQuery export.", "flatPath": "v1/folders/{foldersId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "DELETE", "id": "securitycenter.folders.bigQueryExports.delete", @@ -288,7 +288,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. The name of the BigQuery export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^folders/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -304,7 +304,7 @@ ] }, "get": { - "description": "Gets a big query export.", + "description": "Gets a BigQuery export.", "flatPath": "v1/folders/{foldersId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "GET", "id": "securitycenter.folders.bigQueryExports.get", @@ -313,7 +313,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. Name of the BigQuery export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^folders/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -589,6 +589,163 @@ } } }, + "notificationConfigs": { + "methods": { + "create": { + "description": "Creates a notification config.", + "flatPath": "v1/folders/{foldersId}/notificationConfigs", + "httpMethod": "POST", + "id": "securitycenter.folders.notificationConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "configId": { + "description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the new notification config's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "location": "path", + "pattern": "^folders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/notificationConfigs", + "request": { + "$ref": "NotificationConfig" + }, + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a notification config.", + "flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.folders.notificationConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the notification config to delete. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", + "location": "path", + "pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a notification config.", + "flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.folders.notificationConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the notification config to get. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", + "location": "path", + "pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists notification configs.", + "flatPath": "v1/folders/{foldersId}/notificationConfigs", + "httpMethod": "GET", + "id": "securitycenter.folders.notificationConfigs.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 `ListNotificationConfigsResponse`; indicates that this is a continuation of a prior `ListNotificationConfigs` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "location": "path", + "pattern": "^folders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/notificationConfigs", + "response": { + "$ref": "ListNotificationConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": " Updates a notification config. The following update fields are allowed: description, pubsub_topic, streaming_config.filter", + "flatPath": "v1/folders/{foldersId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.folders.notificationConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", + "location": "path", + "pattern": "^folders/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The FieldMask to use when updating the notification config. If empty all mutable fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "NotificationConfig" + }, + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "sources": { "methods": { "list": { @@ -612,7 +769,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -767,7 +924,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/finding/{finding_id}\", \"projects/{project_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -795,7 +952,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -830,7 +987,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -867,7 +1024,7 @@ ], "parameters": { "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "location": "path", "pattern": "^folders/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", "required": true, @@ -974,7 +1131,7 @@ ], "parameters": { "parent": { - "description": "Required. Name of the organization to groupBy. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent to group the assets by. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1035,7 +1192,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the organization assets should belong to. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1101,7 +1258,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -1129,7 +1286,7 @@ "bigQueryExports": { "methods": { "create": { - "description": "Creates a big query export.", + "description": "Creates a BigQuery export.", "flatPath": "v1/organizations/{organizationsId}/bigQueryExports", "httpMethod": "POST", "id": "securitycenter.organizations.bigQueryExports.create", @@ -1143,7 +1300,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the new big query export's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "description": "Required. The name of the parent resource of the new BigQuery export. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1162,7 +1319,7 @@ ] }, "delete": { - "description": "Deletes an existing big query export.", + "description": "Deletes an existing BigQuery export.", "flatPath": "v1/organizations/{organizationsId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "DELETE", "id": "securitycenter.organizations.bigQueryExports.delete", @@ -1171,7 +1328,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. The name of the BigQuery export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^organizations/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -1187,7 +1344,7 @@ ] }, "get": { - "description": "Gets a big query export.", + "description": "Gets a BigQuery export.", "flatPath": "v1/organizations/{organizationsId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "GET", "id": "securitycenter.organizations.bigQueryExports.get", @@ -1196,7 +1353,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. Name of the BigQuery export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^organizations/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -1484,12 +1641,12 @@ ], "parameters": { "configId": { - "description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters, and contains alphanumeric characters, underscores or hyphens only.", + "description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", "location": "query", "type": "string" }, "parent": { - "description": "Required. Resource name of the new notification config's parent. Its format is \"organizations/[organization_id]\".", + "description": "Required. Resource name of the new notification config's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1517,7 +1674,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the notification config to delete. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\".", + "description": "Required. Name of the notification config to delete. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", "location": "path", "pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", "required": true, @@ -1542,7 +1699,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the notification config to get. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\".", + "description": "Required. Name of the notification config to get. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", "location": "path", "pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", "required": true, @@ -1578,7 +1735,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the organization to list notification configs. Its format is \"organizations/[organization_id]\".", + "description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1603,7 +1760,7 @@ ], "parameters": { "name": { - "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\".", + "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", "location": "path", "pattern": "^organizations/[^/]+/notificationConfigs/[^/]+$", "required": true, @@ -1814,7 +1971,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -1853,7 +2010,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -1912,7 +2069,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -1940,7 +2097,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -2131,7 +2288,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/finding/{finding_id}\", \"projects/{project_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -2159,7 +2316,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -2194,7 +2351,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -2231,7 +2388,7 @@ ], "parameters": { "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "location": "path", "pattern": "^organizations/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", "required": true, @@ -2277,7 +2434,7 @@ ], "parameters": { "parent": { - "description": "Required. Name of the organization to groupBy. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent to group the assets by. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2338,7 +2495,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the organization assets should belong to. Its format is \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. The name of the parent resource that contains the assets. The value that you can specify on parent depends on the method in which you specify parent. You can specify one of the following values: \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2376,7 +2533,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -2404,7 +2561,7 @@ "bigQueryExports": { "methods": { "create": { - "description": "Creates a big query export.", + "description": "Creates a BigQuery export.", "flatPath": "v1/projects/{projectsId}/bigQueryExports", "httpMethod": "POST", "id": "securitycenter.projects.bigQueryExports.create", @@ -2418,7 +2575,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the new big query export's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "description": "Required. The name of the parent resource of the new BigQuery export. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2437,7 +2594,7 @@ ] }, "delete": { - "description": "Deletes an existing big query export.", + "description": "Deletes an existing BigQuery export.", "flatPath": "v1/projects/{projectsId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "DELETE", "id": "securitycenter.projects.bigQueryExports.delete", @@ -2446,7 +2603,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. The name of the BigQuery export to delete. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^projects/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -2462,7 +2619,7 @@ ] }, "get": { - "description": "Gets a big query export.", + "description": "Gets a BigQuery export.", "flatPath": "v1/projects/{projectsId}/bigQueryExports/{bigQueryExportsId}", "httpMethod": "GET", "id": "securitycenter.projects.bigQueryExports.get", @@ -2471,7 +2628,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the big query export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", + "description": "Required. Name of the BigQuery export to retrieve. Its format is organizations/{organization}/bigQueryExports/{export_id}, folders/{folder}/bigQueryExports/{export_id}, or projects/{project}/bigQueryExports/{export_id}", "location": "path", "pattern": "^projects/[^/]+/bigQueryExports/[^/]+$", "required": true, @@ -2747,6 +2904,163 @@ } } }, + "notificationConfigs": { + "methods": { + "create": { + "description": "Creates a notification config.", + "flatPath": "v1/projects/{projectsId}/notificationConfigs", + "httpMethod": "POST", + "id": "securitycenter.projects.notificationConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "configId": { + "description": "Required. Unique identifier provided by the client within the parent scope. It must be between 1 and 128 characters and contain alphanumeric characters, underscores, or hyphens only.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the new notification config's parent. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/notificationConfigs", + "request": { + "$ref": "NotificationConfig" + }, + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a notification config.", + "flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.projects.notificationConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the notification config to delete. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", + "location": "path", + "pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a notification config.", + "flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.projects.notificationConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the notification config to get. Its format is \"organizations/[organization_id]/notificationConfigs/[config_id]\", \"folders/[folder_id]/notificationConfigs/[config_id]\", or \"projects/[project_id]/notificationConfigs/[config_id]\".", + "location": "path", + "pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists notification configs.", + "flatPath": "v1/projects/{projectsId}/notificationConfigs", + "httpMethod": "GET", + "id": "securitycenter.projects.notificationConfigs.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 `ListNotificationConfigsResponse`; indicates that this is a continuation of a prior `ListNotificationConfigs` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the parent in which to list the notification configurations. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/notificationConfigs", + "response": { + "$ref": "ListNotificationConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": " Updates a notification config. The following update fields are allowed: description, pubsub_topic, streaming_config.filter", + "flatPath": "v1/projects/{projectsId}/notificationConfigs/{notificationConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.projects.notificationConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", + "location": "path", + "pattern": "^projects/[^/]+/notificationConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The FieldMask to use when updating the notification config. If empty all mutable fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "NotificationConfig" + }, + "response": { + "$ref": "NotificationConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "sources": { "methods": { "list": { @@ -2770,7 +3084,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id], folders/[folder_id], or projects/[project_id]\".", + "description": "Required. Resource name of the parent of sources to list. Its format should be \"organizations/[organization_id]\", \"folders/[folder_id]\", or \"projects/[project_id]\".", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -2925,7 +3239,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/finding/{finding_id}\", \"projects/{project_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -2953,7 +3267,7 @@ ], "parameters": { "name": { - "description": "Required. The relative resource name of the finding. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/sources/{source_id}/finding/{finding_id}\".", + "description": "Required. 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, @@ -2988,7 +3302,7 @@ "type": "string" }, "startTime": { - "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be smaller or equal to the server time.", + "description": "The time at which the updated SecurityMarks take effect. If not set uses current server time. Updates will be applied to the SecurityMarks that are active immediately preceding this time. Must be earlier or equal to the server time.", "format": "google-datetime", "location": "query", "type": "string" @@ -3025,7 +3339,7 @@ ], "parameters": { "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "location": "path", "pattern": "^projects/[^/]+/sources/[^/]+/findings/[^/]+/externalSystems/[^/]+$", "required": true, @@ -3058,7 +3372,7 @@ } } }, - "revision": "20220224", + "revision": "20230123", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -3078,7 +3392,22 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\".", + "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).", + "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" + }, + "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.", + "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}\" ", "type": "string" }, "serviceName": { @@ -3086,7 +3415,46 @@ "type": "string" }, "userAgentFamily": { - "description": "What kind of user agent is associated, e.g. operating system shells, embedded or stand-alone applications, etc.", + "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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.", + "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.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is 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": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is 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.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", "type": "string" } }, @@ -3171,8 +3539,27 @@ }, "type": "object" }, + "AssociatedFinding": { + "description": "A finding that is associated with this node in the exposure path.", + "id": "AssociatedFinding", + "properties": { + "canonicalFindingName": { + "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" + }, "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -3228,7 +3615,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -3256,6 +3643,124 @@ }, "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", + "items": { + "type": "string" + }, + "type": "array" + }, + "standard": { + "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "type": "string" + }, + "version": { + "description": "Version of the standard/benchmark e.g. 1.1", + "type": "string" + } + }, + "type": "object" + }, + "Connection": { + "description": "Contains information about the IP connection associated with the finding.", + "id": "Connection", + "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" + }, + "Contact": { + "description": "The email address of a contact.", + "id": "Contact", + "properties": { + "email": { + "description": "An email address. For example, \"`person123@company.com`\".", + "type": "string" + } + }, + "type": "object" + }, + "ContactDetails": { + "description": "The details pertaining to specific contacts", + "id": "ContactDetails", + "properties": { + "contacts": { + "description": "A list of contacts", + "items": { + "$ref": "Contact" + }, + "type": "array" + } + }, + "type": "object" + }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when 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": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May 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", "id": "Cve", @@ -3418,12 +3923,127 @@ }, "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.", + "id": "Database", + "properties": { + "displayName": { + "description": "The human readable name of the database the user connected to.", + "type": "string" + }, + "grantees": { + "description": "The target usernames/roles/groups of a SQL privilege grant (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)", + "type": "string" + }, + "query": { + "description": "The SQL statement associated with the relevant 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.", + "type": "string" + } + }, + "type": "object" + }, + "Detection": { + "description": "Memory hash detection contributing to the binary family match.", + "id": "Detection", + "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" + }, + "Edge": { + "description": "Represents a connection between a source node and a destination node in this exposure path.", + "id": "Edge", + "properties": { + "destination": { + "description": "This is the resource name of the destination node.", + "type": "string" + }, + "source": { + "description": "This is the resource name of the source node.", + "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EnvironmentVariable": { + "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "id": "EnvironmentVariable", + "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" + }, + "ExfilResource": { + "description": "Resource that has been exfiltrated 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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "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.", + "id": "Exfiltration", + "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": "ExfilResource" + }, + "type": "array" + }, + "targets": { + "description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", + "items": { + "$ref": "ExfilResource" + }, + "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", @@ -3447,6 +4067,39 @@ }, "type": "object" }, + "File": { + "description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", + "id": "File", + "properties": { + "contents": { + "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "type": "string" + }, + "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" + }, "Finding": { "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": "Finding", @@ -3463,16 +4116,57 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "compliances": { + "description": "Contains compliance information for security standards associated to the finding.", + "items": { + "$ref": "Compliance" + }, + "type": "array" + }, + "connections": { + "description": "Contains information about the IP connection associated with the finding.", + "items": { + "$ref": "Connection" + }, + "type": "array" + }, + "contacts": { + "additionalProperties": { + "$ref": "ContactDetails" + }, + "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. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", "type": "string" }, + "database": { + "$ref": "Database", + "description": "Database associated with the finding." + }, + "description": { + "description": "Contains more detail 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": "Exfiltration", + "description": "Represents exfiltration associated with the Finding." + }, "externalSystems": { "additionalProperties": { "$ref": "GoogleCloudSecuritycenterV1ExternalSystem" @@ -3485,6 +4179,13 @@ "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": "File" + }, + "type": "array" + }, "findingClass": { "description": "The class of the finding.", "enum": [ @@ -3505,16 +4206,31 @@ ], "type": "string" }, + "iamBindings": { + "description": "Represents IAM bindings associated with the Finding.", + "items": { + "$ref": "IamBinding" + }, + "type": "array" + }, "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" }, + "kernelRootkit": { + "$ref": "KernelRootkit", + "description": "Kernel Rootkit signature." + }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" }, "mute": { - "description": "Indicates the mute state of a finding (either unspecified, muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of 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", @@ -3543,10 +4259,26 @@ "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}\"", "type": "string" }, + "nextSteps": { + "description": "Next steps associate to the finding.", + "type": "string" + }, "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" }, + "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": "Process" + }, + "type": "array" + }, "resourceName": { "description": "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. This field is immutable after creation time.", "type": "string" @@ -3570,7 +4302,7 @@ "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 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\u2019s 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." + "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" }, @@ -3597,7 +4329,7 @@ }, "vulnerability": { "$ref": "Vulnerability", - "description": "Represents vulnerability specific fields like cve, cvss scores etc. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" } }, "type": "object" @@ -3656,7 +4388,7 @@ "id": "GoogleCloudSecuritycenterV1BigQueryExport", "properties": { "createTime": { - "description": "Output only. The time at which the big query export was created. This field is set by the server and will be ignored if provided on export on creation.", + "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" @@ -3670,11 +4402,11 @@ "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. Please see the proto documentation in the finding (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/finding.proto) and in the ListFindingsRequest for valid filter syntax. (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/securitycenter_service.proto).", + "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 big query export. This field is set by the server and will be ignored if provided on export creation or update.", + "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" }, @@ -3683,12 +4415,12 @@ "type": "string" }, "principal": { - "description": "Output only. The service account that needs permission to create table, upload data to the big query dataset.", + "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 big export was updated. This field is set by the server and will be ignored if provided on export creation or update.", + "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" @@ -3696,12 +4428,113 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "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": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV1ExposedResource": { + "description": "A resource that is exposed as a result of a finding.", + "id": "GoogleCloudSecuritycenterV1ExposedResource", + "properties": { + "displayName": { + "description": "Human readable name of the resource that is exposed.", + "type": "string" + }, + "methods": { + "description": "The ways in which this resource is exposed. Examples: Read, Write", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "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" + }, + "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.", + "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" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1ExposurePath": { + "description": "A path that an attacker could take to reach an exposed resource.", + "id": "GoogleCloudSecuritycenterV1ExposurePath", + "properties": { + "edges": { + "description": "A list of the edges between nodes in this exposure path.", + "items": { + "$ref": "Edge" + }, + "type": "array" + }, + "exposedResource": { + "$ref": "GoogleCloudSecuritycenterV1ExposedResource", + "description": "The leaf node of this exposure path." + }, + "name": { + "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "type": "string" + }, + "pathNodes": { + "description": "A list of nodes that exist in this exposure path.", + "items": { + "$ref": "PathNode" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ExternalSystem": { "description": "Representation of third party SIEM/SOAR fields within SCC.", "id": "GoogleCloudSecuritycenterV1ExternalSystem", @@ -3723,7 +4556,7 @@ "type": "string" }, "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "type": "string" }, "status": { @@ -3825,7 +4658,7 @@ "type": "string" }, "projectDisplayName": { - "description": "The project id that the resource belongs to.", + "description": "The project ID that the resource belongs to.", "type": "string" }, "type": { @@ -3835,6 +4668,50 @@ }, "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.", + "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", + "properties": { + "name": { + "description": "Name for the resource value config", + "type": "string" + }, + "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": "Required. Resource value level this expression represents", + "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" + }, + "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" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse": { "description": "Response of asset discovery run", "id": "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse", @@ -4238,6 +5115,35 @@ }, "type": "object" }, + "IamBinding": { + "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", + "id": "IamBinding", + "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, e.g. \"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" + }, "IamPolicy": { "description": "Cloud IAM Policy information associated with the Google Cloud resource described by the Security Command Center asset. This information is managed and defined by the Google Cloud resource and cannot be modified by the user.", "id": "IamPolicy", @@ -4250,7 +5156,7 @@ "type": "object" }, "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).", "id": "Indicator", "properties": { "domains": { @@ -4261,11 +5167,132 @@ "type": "array" }, "ipAddresses": { - "description": "List of ip addresses associated to the Finding.", + "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": "ProcessSignature" + }, + "type": "array" + }, + "uris": { + "description": "The list of URIs associated to the Findings.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "KernelRootkit": { + "description": "Kernel mode rootkit signatures.", + "id": "KernelRootkit", + "properties": { + "name": { + "description": "Rootkit name when available.", + "type": "string" + }, + "unexpectedCodeModification": { + "description": "True when 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.", + "type": "boolean" + }, + "unexpectedInterruptHandler": { + "description": "True when 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.", + "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.", + "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.", + "type": "boolean" + }, + "unexpectedReadOnlyDataModification": { + "description": "True when 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.", + "type": "boolean" + } + }, + "type": "object" + }, + "Kubernetes": { + "description": "Kubernetes-related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. 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.", + "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.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "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.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" } }, "type": "object" @@ -4477,6 +5504,24 @@ }, "type": "object" }, + "MemoryHashSignature": { + "description": "A signature corresponding to memory page hashes.", + "id": "MemoryHashSignature", + "properties": { + "binaryFamily": { + "description": "The binary family.", + "type": "string" + }, + "detections": { + "description": "The list of memory hash detections contributing to the binary family match.", + "items": { + "$ref": "Detection" + }, + "type": "array" + } + }, + "type": "object" + }, "MitreAttack": { "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", "id": "MitreAttack", @@ -4554,7 +5599,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -4585,7 +5637,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -4630,7 +5689,7 @@ "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).", + "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", @@ -4661,7 +5720,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -4692,7 +5758,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -4705,6 +5778,35 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, "NotificationConfig": { "description": "Cloud Security Command Center (Cloud SCC) notification configs. A notification config is a Cloud SCC resource that contains the configuration to send notifications for create/update events of findings, assets and etc.", "id": "NotificationConfig", @@ -4714,7 +5816,7 @@ "type": "string" }, "name": { - "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\".", + "description": "The relative resource name of this notification config. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name Example: \"organizations/{organization_id}/notificationConfigs/notify_public_bucket\", \"folders/{folder_id}/notificationConfigs/notify_public_bucket\", or \"projects/{project_id}/notificationConfigs/notify_public_bucket\".", "type": "string" }, "pubsubTopic": { @@ -4787,6 +5889,61 @@ }, "type": "object" }, + "PathNode": { + "description": "Represents one point that an attacker passes through in this exposure path.", + "id": "PathNode", + "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.", + "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", + "type": "string" + }, + "resourceType": { + "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "type": "string" + } + }, + "type": "object" + }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -4818,6 +5975,79 @@ }, "type": "object" }, + "Process": { + "description": "Represents an operating system process.", + "id": "Process", + "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": "File", + "description": "File information for the process executable." + }, + "envVariables": { + "description": "Process environment variables.", + "items": { + "$ref": "EnvironmentVariable" + }, + "type": "array" + }, + "envVariablesTruncated": { + "description": "True if `env_variables` is incomplete.", + "type": "boolean" + }, + "libraries": { + "description": "File information for libraries loaded by the process.", + "items": { + "$ref": "File" + }, + "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)`.", + "type": "string" + }, + "parentPid": { + "description": "The parent process id.", + "format": "int64", + "type": "string" + }, + "pid": { + "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." + } + }, + "type": "object" + }, + "ProcessSignature": { + "description": "Indicates what signature matched this process.", + "id": "ProcessSignature", + "properties": { + "memoryHashSignature": { + "$ref": "MemoryHashSignature", + "description": "Signature indicating that a binary family was matched." + }, + "yaraRuleSignature": { + "$ref": "YaraRuleSignature", + "description": "Signature indicating that a YARA rule was matched." + } + }, + "type": "object" + }, "Reference": { "description": "Additional Links", "id": "Reference", @@ -4861,7 +6091,7 @@ "type": "string" }, "projectDisplayName": { - "description": "The project id that the resource belongs to.", + "description": "The project ID that the resource belongs to.", "type": "string" }, "projectName": { @@ -4875,6 +6105,35 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "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" + }, "RunAssetDiscoveryRequest": { "description": "Request message for running asset discovery for an organization.", "id": "RunAssetDiscoveryRequest", @@ -4952,6 +6211,21 @@ }, "type": "object" }, + "ServiceAccountDelegationInfo": { + "description": "Identity delegation history of an authenticated service account.", + "id": "ServiceAccountDelegationInfo", + "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" + }, "SetFindingStateRequest": { "description": "Request message for updating a finding's state.", "id": "SetFindingStateRequest", @@ -4984,7 +6258,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -5078,12 +6352,43 @@ }, "type": "object" }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for 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 subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -5116,6 +6421,17 @@ } }, "type": "object" + }, + "YaraRuleSignature": { + "description": "A signature corresponding to a YARA rule.", + "id": "YaraRuleSignature", + "properties": { + "yaraRule": { + "description": "The name of the YARA rule.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/securitycenter/v1beta1/securitycenter-api.json b/etc/api/securitycenter/v1beta1/securitycenter-api.json index 8f8a38beee..81db483007 100644 --- a/etc/api/securitycenter/v1beta1/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta1/securitycenter-api.json @@ -520,7 +520,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -618,7 +618,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -646,7 +646,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^organizations/[^/]+/sources/[^/]+$", "required": true, @@ -896,7 +896,7 @@ } } }, - "revision": "20220224", + "revision": "20230123", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -916,7 +916,22 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\".", + "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).", + "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" + }, + "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.", + "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}\" ", "type": "string" }, "serviceName": { @@ -924,7 +939,46 @@ "type": "string" }, "userAgentFamily": { - "description": "What kind of user agent is associated, e.g. operating system shells, embedded or stand-alone applications, etc.", + "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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.", + "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.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is 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": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is 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.", + "type": "string" + }, + "version": { + "description": "Version is the API Version of the Resource. \"*\" means all.", "type": "string" } }, @@ -994,8 +1048,27 @@ }, "type": "object" }, + "AssociatedFinding": { + "description": "A finding that is associated with this node in the exposure path.", + "id": "AssociatedFinding", + "properties": { + "canonicalFindingName": { + "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" + }, "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -1051,7 +1124,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1070,6 +1143,124 @@ "properties": {}, "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", + "items": { + "type": "string" + }, + "type": "array" + }, + "standard": { + "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "type": "string" + }, + "version": { + "description": "Version of the standard/benchmark e.g. 1.1", + "type": "string" + } + }, + "type": "object" + }, + "Connection": { + "description": "Contains information about the IP connection associated with the finding.", + "id": "Connection", + "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" + }, + "Contact": { + "description": "The email address of a contact.", + "id": "Contact", + "properties": { + "email": { + "description": "An email address. For example, \"`person123@company.com`\".", + "type": "string" + } + }, + "type": "object" + }, + "ContactDetails": { + "description": "The details pertaining to specific contacts", + "id": "ContactDetails", + "properties": { + "contacts": { + "description": "A list of contacts", + "items": { + "$ref": "Contact" + }, + "type": "array" + } + }, + "type": "object" + }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when 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": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May 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", "id": "Cve", @@ -1232,12 +1423,127 @@ }, "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.", + "id": "Database", + "properties": { + "displayName": { + "description": "The human readable name of the database the user connected to.", + "type": "string" + }, + "grantees": { + "description": "The target usernames/roles/groups of a SQL privilege grant (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)", + "type": "string" + }, + "query": { + "description": "The SQL statement associated with the relevant 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.", + "type": "string" + } + }, + "type": "object" + }, + "Detection": { + "description": "Memory hash detection contributing to the binary family match.", + "id": "Detection", + "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" + }, + "Edge": { + "description": "Represents a connection between a source node and a destination node in this exposure path.", + "id": "Edge", + "properties": { + "destination": { + "description": "This is the resource name of the destination node.", + "type": "string" + }, + "source": { + "description": "This is the resource name of the source node.", + "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); } 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": "Empty", "properties": {}, "type": "object" }, + "EnvironmentVariable": { + "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "id": "EnvironmentVariable", + "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" + }, + "ExfilResource": { + "description": "Resource that has been exfiltrated 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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "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.", + "id": "Exfiltration", + "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": "ExfilResource" + }, + "type": "array" + }, + "targets": { + "description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", + "items": { + "$ref": "ExfilResource" + }, + "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", @@ -1261,6 +1567,39 @@ }, "type": "object" }, + "File": { + "description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", + "id": "File", + "properties": { + "contents": { + "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "type": "string" + }, + "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" + }, "Finding": { "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": "Finding", @@ -1277,16 +1616,57 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "compliances": { + "description": "Contains compliance information for security standards associated to the finding.", + "items": { + "$ref": "Compliance" + }, + "type": "array" + }, + "connections": { + "description": "Contains information about the IP connection associated with the finding.", + "items": { + "$ref": "Connection" + }, + "type": "array" + }, + "contacts": { + "additionalProperties": { + "$ref": "ContactDetails" + }, + "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. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", "type": "string" }, + "database": { + "$ref": "Database", + "description": "Database associated with the finding." + }, + "description": { + "description": "Contains more detail 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": "Exfiltration", + "description": "Represents exfiltration associated with the Finding." + }, "externalSystems": { "additionalProperties": { "$ref": "GoogleCloudSecuritycenterV1ExternalSystem" @@ -1299,6 +1679,13 @@ "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": "File" + }, + "type": "array" + }, "findingClass": { "description": "The class of the finding.", "enum": [ @@ -1319,16 +1706,31 @@ ], "type": "string" }, + "iamBindings": { + "description": "Represents IAM bindings associated with the Finding.", + "items": { + "$ref": "IamBinding" + }, + "type": "array" + }, "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" }, + "kernelRootkit": { + "$ref": "KernelRootkit", + "description": "Kernel Rootkit signature." + }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" }, "mute": { - "description": "Indicates the mute state of a finding (either unspecified, muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of 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", @@ -1357,10 +1759,26 @@ "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}\"", "type": "string" }, + "nextSteps": { + "description": "Next steps associate to the finding.", + "type": "string" + }, "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" }, + "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": "Process" + }, + "type": "array" + }, "resourceName": { "description": "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. This field is immutable after creation time.", "type": "string" @@ -1384,7 +1802,7 @@ "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 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\u2019s 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." + "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" }, @@ -1411,7 +1829,7 @@ }, "vulnerability": { "$ref": "Vulnerability", - "description": "Represents vulnerability specific fields like cve, cvss scores etc. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" } }, "type": "object" @@ -1470,7 +1888,7 @@ "id": "GoogleCloudSecuritycenterV1BigQueryExport", "properties": { "createTime": { - "description": "Output only. The time at which the big query export was created. This field is set by the server and will be ignored if provided on export on creation.", + "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" @@ -1484,11 +1902,11 @@ "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. Please see the proto documentation in the finding (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/finding.proto) and in the ListFindingsRequest for valid filter syntax. (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/securitycenter_service.proto).", + "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 big query export. This field is set by the server and will be ignored if provided on export creation or update.", + "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" }, @@ -1497,12 +1915,12 @@ "type": "string" }, "principal": { - "description": "Output only. The service account that needs permission to create table, upload data to the big query dataset.", + "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 big export was updated. This field is set by the server and will be ignored if provided on export creation or update.", + "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" @@ -1510,12 +1928,113 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "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": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV1ExposedResource": { + "description": "A resource that is exposed as a result of a finding.", + "id": "GoogleCloudSecuritycenterV1ExposedResource", + "properties": { + "displayName": { + "description": "Human readable name of the resource that is exposed.", + "type": "string" + }, + "methods": { + "description": "The ways in which this resource is exposed. Examples: Read, Write", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "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" + }, + "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.", + "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" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1ExposurePath": { + "description": "A path that an attacker could take to reach an exposed resource.", + "id": "GoogleCloudSecuritycenterV1ExposurePath", + "properties": { + "edges": { + "description": "A list of the edges between nodes in this exposure path.", + "items": { + "$ref": "Edge" + }, + "type": "array" + }, + "exposedResource": { + "$ref": "GoogleCloudSecuritycenterV1ExposedResource", + "description": "The leaf node of this exposure path." + }, + "name": { + "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "type": "string" + }, + "pathNodes": { + "description": "A list of nodes that exist in this exposure path.", + "items": { + "$ref": "PathNode" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ExternalSystem": { "description": "Representation of third party SIEM/SOAR fields within SCC.", "id": "GoogleCloudSecuritycenterV1ExternalSystem", @@ -1537,7 +2056,7 @@ "type": "string" }, "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "type": "string" }, "status": { @@ -1639,7 +2158,7 @@ "type": "string" }, "projectDisplayName": { - "description": "The project id that the resource belongs to.", + "description": "The project ID that the resource belongs to.", "type": "string" }, "type": { @@ -1649,6 +2168,50 @@ }, "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.", + "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", + "properties": { + "name": { + "description": "Name for the resource value config", + "type": "string" + }, + "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": "Required. Resource value level this expression represents", + "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" + }, + "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" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse": { "description": "Response of asset discovery run", "id": "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse", @@ -2118,8 +2681,37 @@ }, "type": "object" }, + "IamBinding": { + "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", + "id": "IamBinding", + "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, e.g. \"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" + }, "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).", "id": "Indicator", "properties": { "domains": { @@ -2130,11 +2722,132 @@ "type": "array" }, "ipAddresses": { - "description": "List of ip addresses associated to the Finding.", + "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": "ProcessSignature" + }, + "type": "array" + }, + "uris": { + "description": "The list of URIs associated to the Findings.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "KernelRootkit": { + "description": "Kernel mode rootkit signatures.", + "id": "KernelRootkit", + "properties": { + "name": { + "description": "Rootkit name when available.", + "type": "string" + }, + "unexpectedCodeModification": { + "description": "True when 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.", + "type": "boolean" + }, + "unexpectedInterruptHandler": { + "description": "True when 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.", + "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.", + "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.", + "type": "boolean" + }, + "unexpectedReadOnlyDataModification": { + "description": "True when 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.", + "type": "boolean" + } + }, + "type": "object" + }, + "Kubernetes": { + "description": "Kubernetes-related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. 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.", + "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.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "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.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" } }, "type": "object" @@ -2260,6 +2973,24 @@ }, "type": "object" }, + "MemoryHashSignature": { + "description": "A signature corresponding to memory page hashes.", + "id": "MemoryHashSignature", + "properties": { + "binaryFamily": { + "description": "The binary family.", + "type": "string" + }, + "detections": { + "description": "The list of memory hash detections contributing to the binary family match.", + "items": { + "$ref": "Detection" + }, + "type": "array" + } + }, + "type": "object" + }, "MitreAttack": { "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", "id": "MitreAttack", @@ -2337,7 +3068,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -2368,7 +3106,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -2413,7 +3158,7 @@ "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).", + "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", @@ -2444,7 +3189,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -2475,7 +3227,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -2488,6 +3247,35 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -2542,6 +3330,61 @@ }, "type": "object" }, + "PathNode": { + "description": "Represents one point that an attacker passes through in this exposure path.", + "id": "PathNode", + "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.", + "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", + "type": "string" + }, + "resourceType": { + "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "type": "string" + } + }, + "type": "object" + }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -2573,6 +3416,79 @@ }, "type": "object" }, + "Process": { + "description": "Represents an operating system process.", + "id": "Process", + "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": "File", + "description": "File information for the process executable." + }, + "envVariables": { + "description": "Process environment variables.", + "items": { + "$ref": "EnvironmentVariable" + }, + "type": "array" + }, + "envVariablesTruncated": { + "description": "True if `env_variables` is incomplete.", + "type": "boolean" + }, + "libraries": { + "description": "File information for libraries loaded by the process.", + "items": { + "$ref": "File" + }, + "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)`.", + "type": "string" + }, + "parentPid": { + "description": "The parent process id.", + "format": "int64", + "type": "string" + }, + "pid": { + "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." + } + }, + "type": "object" + }, + "ProcessSignature": { + "description": "Indicates what signature matched this process.", + "id": "ProcessSignature", + "properties": { + "memoryHashSignature": { + "$ref": "MemoryHashSignature", + "description": "Signature indicating that a binary family was matched." + }, + "yaraRuleSignature": { + "$ref": "YaraRuleSignature", + "description": "Signature indicating that a YARA rule was matched." + } + }, + "type": "object" + }, "Reference": { "description": "Additional Links", "id": "Reference", @@ -2588,6 +3504,35 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "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" + }, "RunAssetDiscoveryRequest": { "description": "Request message for running asset discovery for an organization.", "id": "RunAssetDiscoveryRequest", @@ -2646,6 +3591,21 @@ }, "type": "object" }, + "ServiceAccountDelegationInfo": { + "description": "Identity delegation history of an authenticated service account.", + "id": "ServiceAccountDelegationInfo", + "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" + }, "SetFindingStateRequest": { "description": "Request message for updating a finding's state.", "id": "SetFindingStateRequest", @@ -2678,7 +3638,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -2734,12 +3694,43 @@ }, "type": "object" }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for 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 subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, @@ -2772,6 +3763,17 @@ } }, "type": "object" + }, + "YaraRuleSignature": { + "description": "A signature corresponding to a YARA rule.", + "id": "YaraRuleSignature", + "properties": { + "yaraRule": { + "description": "The name of the YARA rule.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/securitycenter/v1beta2/securitycenter-api.json b/etc/api/securitycenter/v1beta2/securitycenter-api.json index 88c93056a4..ff95caaeda 100644 --- a/etc/api/securitycenter/v1beta2/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta2/securitycenter-api.json @@ -108,7 +108,7 @@ "folders": { "methods": { "getContainerThreatDetectionSettings": { - "description": "Get the ContainerThreatDetectionSettings resource.", + "description": "Get the ContainerThreatDetectionSettings 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, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/containerThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.folders.getContainerThreatDetectionSettings", @@ -133,7 +133,7 @@ ] }, "getEventThreatDetectionSettings": { - "description": "Get the EventThreatDetectionSettings resource.", + "description": "Get the EventThreatDetectionSettings 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, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/eventThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.folders.getEventThreatDetectionSettings", @@ -157,8 +157,83 @@ "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", + "httpMethod": "GET", + "id": "securitycenter.folders.getRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getSecurityCenterSettings": { + "description": "Get the SecurityCenterSettings resource.", + "flatPath": "v1beta2/folders/{foldersId}/securityCenterSettings", + "httpMethod": "GET", + "id": "securitycenter.folders.getSecurityCenterSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", + "location": "path", + "pattern": "^folders/[^/]+/securityCenterSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "response": { + "$ref": "SecurityCenterSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getSecurityHealthAnalyticsSettings": { - "description": "Get the SecurityHealthAnalyticsSettings resource.", + "description": "Get the SecurityHealthAnalyticsSettings 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, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings", "httpMethod": "GET", "id": "securitycenter.folders.getSecurityHealthAnalyticsSettings", @@ -183,7 +258,7 @@ ] }, "getVirtualMachineThreatDetectionSettings": { - "description": "Get the VirtualMachineThreatDetectionSettings resource.", + "description": "Get the VirtualMachineThreatDetectionSettings 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, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/virtualMachineThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.folders.getVirtualMachineThreatDetectionSettings", @@ -208,7 +283,7 @@ ] }, "getWebSecurityScannerSettings": { - "description": "Get the WebSecurityScannerSettings resource.", + "description": "Get the WebSecurityScannerSettings 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, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", "flatPath": "v1beta2/folders/{foldersId}/webSecurityScannerSettings", "httpMethod": "GET", "id": "securitycenter.folders.getWebSecurityScannerSettings", @@ -300,6 +375,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "updateRapidVulnerabilityDetectionSettings": { + "description": "Update the RapidVulnerabilityDetectionSettings resource.", + "flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings", + "httpMethod": "PATCH", + "id": "securitycenter.folders.updateRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "request": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateSecurityHealthAnalyticsSettings": { "description": "Update the SecurityHealthAnalyticsSettings resource.", "flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings", @@ -407,7 +516,7 @@ "containerThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/folders/{foldersId}/containerThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.folders.containerThreatDetectionSettings.calculate", @@ -436,7 +545,7 @@ "eventThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/folders/{foldersId}/eventThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.folders.eventThreatDetectionSettings.calculate", @@ -462,10 +571,39 @@ } } }, + "rapidVulnerabilityDetectionSettings": { + "methods": { + "calculate": { + "description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", + "flatPath": "v1beta2/folders/{foldersId}/rapidVulnerabilityDetectionSettings:calculate", + "httpMethod": "GET", + "id": "securitycenter.folders.rapidVulnerabilityDetectionSettings.calculate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^folders/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}:calculate", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "securityHealthAnalyticsSettings": { "methods": { "calculate": { - "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/folders/{foldersId}/securityHealthAnalyticsSettings:calculate", "httpMethod": "GET", "id": "securitycenter.folders.securityHealthAnalyticsSettings.calculate", @@ -494,7 +632,7 @@ "virtualMachineThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/folders/{foldersId}/virtualMachineThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.folders.virtualMachineThreatDetectionSettings.calculate", @@ -523,7 +661,7 @@ "webSecurityScannerSettings": { "methods": { "calculate": { - "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/folders/{foldersId}/webSecurityScannerSettings:calculate", "httpMethod": "GET", "id": "securitycenter.folders.webSecurityScannerSettings.calculate", @@ -554,7 +692,7 @@ "organizations": { "methods": { "getContainerThreatDetectionSettings": { - "description": "Get the ContainerThreatDetectionSettings resource.", + "description": "Get the ContainerThreatDetectionSettings 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, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/containerThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.organizations.getContainerThreatDetectionSettings", @@ -579,7 +717,7 @@ ] }, "getEventThreatDetectionSettings": { - "description": "Get the EventThreatDetectionSettings resource.", + "description": "Get the EventThreatDetectionSettings 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, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/eventThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.organizations.getEventThreatDetectionSettings", @@ -603,6 +741,56 @@ "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", + "httpMethod": "GET", + "id": "securitycenter.organizations.getRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getSecurityCenterSettings": { "description": "Get the SecurityCenterSettings resource.", "flatPath": "v1beta2/organizations/{organizationsId}/securityCenterSettings", @@ -613,7 +801,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings", + "description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", "location": "path", "pattern": "^organizations/[^/]+/securityCenterSettings$", "required": true, @@ -629,7 +817,7 @@ ] }, "getSecurityHealthAnalyticsSettings": { - "description": "Get the SecurityHealthAnalyticsSettings resource.", + "description": "Get the SecurityHealthAnalyticsSettings 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, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings", "httpMethod": "GET", "id": "securitycenter.organizations.getSecurityHealthAnalyticsSettings", @@ -679,7 +867,7 @@ ] }, "getVirtualMachineThreatDetectionSettings": { - "description": "Get the VirtualMachineThreatDetectionSettings resource.", + "description": "Get the VirtualMachineThreatDetectionSettings 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, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/virtualMachineThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.organizations.getVirtualMachineThreatDetectionSettings", @@ -704,7 +892,7 @@ ] }, "getWebSecurityScannerSettings": { - "description": "Get the WebSecurityScannerSettings resource.", + "description": "Get the WebSecurityScannerSettings 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, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", "flatPath": "v1beta2/organizations/{organizationsId}/webSecurityScannerSettings", "httpMethod": "GET", "id": "securitycenter.organizations.getWebSecurityScannerSettings", @@ -796,6 +984,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "updateRapidVulnerabilityDetectionSettings": { + "description": "Update the RapidVulnerabilityDetectionSettings resource.", + "flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings", + "httpMethod": "PATCH", + "id": "securitycenter.organizations.updateRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "request": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateSecurityHealthAnalyticsSettings": { "description": "Update the SecurityHealthAnalyticsSettings resource.", "flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings", @@ -903,7 +1125,7 @@ "containerThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/organizations/{organizationsId}/containerThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.organizations.containerThreatDetectionSettings.calculate", @@ -932,7 +1154,7 @@ "eventThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/organizations/{organizationsId}/eventThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.organizations.eventThreatDetectionSettings.calculate", @@ -958,10 +1180,39 @@ } } }, + "rapidVulnerabilityDetectionSettings": { + "methods": { + "calculate": { + "description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", + "flatPath": "v1beta2/organizations/{organizationsId}/rapidVulnerabilityDetectionSettings:calculate", + "httpMethod": "GET", + "id": "securitycenter.organizations.rapidVulnerabilityDetectionSettings.calculate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^organizations/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}:calculate", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "securityHealthAnalyticsSettings": { "methods": { "calculate": { - "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/organizations/{organizationsId}/securityHealthAnalyticsSettings:calculate", "httpMethod": "GET", "id": "securitycenter.organizations.securityHealthAnalyticsSettings.calculate", @@ -990,7 +1241,7 @@ "virtualMachineThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/organizations/{organizationsId}/virtualMachineThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.organizations.virtualMachineThreatDetectionSettings.calculate", @@ -1019,7 +1270,7 @@ "webSecurityScannerSettings": { "methods": { "calculate": { - "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/organizations/{organizationsId}/webSecurityScannerSettings:calculate", "httpMethod": "GET", "id": "securitycenter.organizations.webSecurityScannerSettings.calculate", @@ -1050,7 +1301,7 @@ "projects": { "methods": { "getContainerThreatDetectionSettings": { - "description": "Get the ContainerThreatDetectionSettings resource.", + "description": "Get the ContainerThreatDetectionSettings 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, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/containerThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.projects.getContainerThreatDetectionSettings", @@ -1075,7 +1326,7 @@ ] }, "getEventThreatDetectionSettings": { - "description": "Get the EventThreatDetectionSettings resource.", + "description": "Get the EventThreatDetectionSettings 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, GetEventThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateEventThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/eventThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.projects.getEventThreatDetectionSettings", @@ -1099,8 +1350,83 @@ "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", + "httpMethod": "GET", + "id": "securitycenter.projects.getRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to retrieve. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getSecurityCenterSettings": { + "description": "Get the SecurityCenterSettings resource.", + "flatPath": "v1beta2/projects/{projectsId}/securityCenterSettings", + "httpMethod": "GET", + "id": "securitycenter.projects.getSecurityCenterSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecurityCenterSettings to retrieve. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", + "location": "path", + "pattern": "^projects/[^/]+/securityCenterSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "response": { + "$ref": "SecurityCenterSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getSecurityHealthAnalyticsSettings": { - "description": "Get the SecurityHealthAnalyticsSettings resource.", + "description": "Get the SecurityHealthAnalyticsSettings 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, GetSecurityHealthAnalyticsSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateSecurityHealthAnalyticsSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings", "httpMethod": "GET", "id": "securitycenter.projects.getSecurityHealthAnalyticsSettings", @@ -1125,7 +1451,7 @@ ] }, "getVirtualMachineThreatDetectionSettings": { - "description": "Get the VirtualMachineThreatDetectionSettings resource.", + "description": "Get the VirtualMachineThreatDetectionSettings 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, GetVirtualMachineThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateVirtualMachineThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/virtualMachineThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.projects.getVirtualMachineThreatDetectionSettings", @@ -1150,7 +1476,7 @@ ] }, "getWebSecurityScannerSettings": { - "description": "Get the WebSecurityScannerSettings resource.", + "description": "Get the WebSecurityScannerSettings 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, GetWebSecurityScannerSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateWebSecurityScannerSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/webSecurityScannerSettings", "httpMethod": "GET", "id": "securitycenter.projects.getWebSecurityScannerSettings", @@ -1242,6 +1568,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "updateRapidVulnerabilityDetectionSettings": { + "description": "Update the RapidVulnerabilityDetectionSettings resource.", + "flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings", + "httpMethod": "PATCH", + "id": "securitycenter.projects.updateRapidVulnerabilityDetectionSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "request": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateSecurityHealthAnalyticsSettings": { "description": "Update the SecurityHealthAnalyticsSettings resource.", "flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings", @@ -1349,7 +1709,7 @@ "containerThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/containerThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.containerThreatDetectionSettings.calculate", @@ -1378,7 +1738,7 @@ "eventThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective EventThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/eventThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.eventThreatDetectionSettings.calculate", @@ -1409,7 +1769,7 @@ "clusters": { "methods": { "getContainerThreatDetectionSettings": { - "description": "Get the ContainerThreatDetectionSettings resource.", + "description": "Get the ContainerThreatDetectionSettings 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, GetContainerThreatDetectionSettings does not calculate the effective service settings for the resource, which accounts for inherited settings and defaults. Instead, use CalculateContainerThreatDetectionSettings for this purpose.", "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/containerThreatDetectionSettings", "httpMethod": "GET", "id": "securitycenter.projects.locations.clusters.getContainerThreatDetectionSettings", @@ -1472,7 +1832,7 @@ "containerThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective ContainerThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/containerThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.locations.clusters.containerThreatDetectionSettings.calculate", @@ -1502,10 +1862,39 @@ } } }, + "rapidVulnerabilityDetectionSettings": { + "methods": { + "calculate": { + "description": "Calculates the effective RapidVulnerabilityDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", + "flatPath": "v1beta2/projects/{projectsId}/rapidVulnerabilityDetectionSettings:calculate", + "httpMethod": "GET", + "id": "securitycenter.projects.rapidVulnerabilityDetectionSettings.calculate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the RapidVulnerabilityDetectionSettings to calculate. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "location": "path", + "pattern": "^projects/[^/]+/rapidVulnerabilityDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}:calculate", + "response": { + "$ref": "RapidVulnerabilityDetectionSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "securityHealthAnalyticsSettings": { "methods": { "calculate": { - "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective SecurityHealthAnalyticsSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/securityHealthAnalyticsSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.securityHealthAnalyticsSettings.calculate", @@ -1534,7 +1923,7 @@ "virtualMachineThreatDetectionSettings": { "methods": { "calculate": { - "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective VirtualMachineThreatDetectionSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/virtualMachineThreatDetectionSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.virtualMachineThreatDetectionSettings.calculate", @@ -1563,7 +1952,7 @@ "webSecurityScannerSettings": { "methods": { "calculate": { - "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings.", + "description": "Calculates the effective WebSecurityScannerSettings based on its level in the resource hierarchy and its settings. Settings provided closer to the target resource take precedence over those further away (e.g. folder will override organization level settings). The default SCC setting for the detector service defaults can be overridden at organization, folder and project levels. No assumptions should be made about the SCC defaults as it is considered an internal implementation detail.", "flatPath": "v1beta2/projects/{projectsId}/webSecurityScannerSettings:calculate", "httpMethod": "GET", "id": "securitycenter.projects.webSecurityScannerSettings.calculate", @@ -1592,7 +1981,7 @@ } } }, - "revision": "20220224", + "revision": "20230123", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -1612,7 +2001,22 @@ "type": "string" }, "principalEmail": { - "description": "Associated email, such as \"foo@google.com\".", + "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).", + "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" + }, + "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.", + "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}\" ", "type": "string" }, "serviceName": { @@ -1620,7 +2024,87 @@ "type": "string" }, "userAgentFamily": { - "description": "What kind of user agent is associated, e.g. operating system shells, embedded or stand-alone applications, etc.", + "description": "What kind of user agent is associated, for example operating system shells, embedded or stand-alone applications, etc.", + "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.", + "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.", + "id": "AccessReview", + "properties": { + "group": { + "description": "Group is the API Group of the Resource. \"*\" means all.", + "type": "string" + }, + "name": { + "description": "Name is 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": "Resource is the optional resource type requested. \"*\" means all.", + "type": "string" + }, + "subresource": { + "description": "Subresource is 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.", + "type": "string" + }, + "version": { + "description": "Version is 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", + "properties": { + "canonicalFindingName": { + "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" + }, + "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", + "items": { + "type": "string" + }, + "type": "array" + }, + "standard": { + "description": "Refers to industry wide standards or benchmarks e.g. \"cis\", \"pci\", \"owasp\", etc.", + "type": "string" + }, + "version": { + "description": "Version of the standard/benchmark e.g. 1.1", "type": "string" } }, @@ -1657,6 +2141,102 @@ }, "type": "object" }, + "Connection": { + "description": "Contains information about the IP connection associated with the finding.", + "id": "Connection", + "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" + }, + "Contact": { + "description": "The email address of a contact.", + "id": "Contact", + "properties": { + "email": { + "description": "An email address. For example, \"`person123@company.com`\".", + "type": "string" + } + }, + "type": "object" + }, + "ContactDetails": { + "description": "The details pertaining to specific contacts", + "id": "ContactDetails", + "properties": { + "contacts": { + "description": "A list of contacts", + "items": { + "$ref": "Contact" + }, + "type": "array" + } + }, + "type": "object" + }, + "Container": { + "description": "Container associated with the finding.", + "id": "Container", + "properties": { + "imageId": { + "description": "Optional container image id, when 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": "Label" + }, + "type": "array" + }, + "name": { + "description": "Container name.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod/container. May identify a container image version using mutable tags.", + "type": "string" + } + }, + "type": "object" + }, "ContainerThreatDetectionSettings": { "description": "Resource capturing the settings for the Container Threat Detection service.", "id": "ContainerThreatDetectionSettings", @@ -1864,6 +2444,36 @@ }, "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.", + "id": "Database", + "properties": { + "displayName": { + "description": "The human readable name of the database the user connected to.", + "type": "string" + }, + "grantees": { + "description": "The target usernames/roles/groups of a SQL privilege grant (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)", + "type": "string" + }, + "query": { + "description": "The SQL statement associated with the relevant 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.", + "type": "string" + } + }, + "type": "object" + }, "Details": { "description": "Details of a subscription.", "id": "Details", @@ -1899,6 +2509,52 @@ }, "type": "object" }, + "Detection": { + "description": "Memory hash detection contributing to the binary family match.", + "id": "Detection", + "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" + }, + "Edge": { + "description": "Represents a connection between a source node and a destination node in this exposure path.", + "id": "Edge", + "properties": { + "destination": { + "description": "This is the resource name of the destination node.", + "type": "string" + }, + "source": { + "description": "This is the resource name of the source node.", + "type": "string" + } + }, + "type": "object" + }, + "EnvironmentVariable": { + "description": "EnvironmentVariable is a name-value pair to store environment variables for Process.", + "id": "EnvironmentVariable", + "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" + }, "EventThreatDetectionSettings": { "description": "Resource capturing the settings for the Event Threat Detection service.", "id": "EventThreatDetectionSettings", @@ -1939,6 +2595,78 @@ }, "type": "object" }, + "ExfilResource": { + "description": "Resource that has been exfiltrated 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.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Resource's URI (https://google.aip.dev/122#full-resource-names)", + "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.", + "id": "Exfiltration", + "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": "ExfilResource" + }, + "type": "array" + }, + "targets": { + "description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", + "items": { + "$ref": "ExfilResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "File": { + "description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", + "id": "File", + "properties": { + "contents": { + "description": "Prefix of the file contents as a JSON encoded string. (Currently only populated for Malicious Script Executed findings.)", + "type": "string" + }, + "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" + }, "Finding": { "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": "Finding", @@ -1955,16 +2683,57 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "compliances": { + "description": "Contains compliance information for security standards associated to the finding.", + "items": { + "$ref": "Compliance" + }, + "type": "array" + }, + "connections": { + "description": "Contains information about the IP connection associated with the finding.", + "items": { + "$ref": "Connection" + }, + "type": "array" + }, + "contacts": { + "additionalProperties": { + "$ref": "ContactDetails" + }, + "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. containers provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, "createTime": { "description": "The time at which the finding was created in Security Command Center.", "format": "google-datetime", "type": "string" }, + "database": { + "$ref": "Database", + "description": "Database associated with the finding." + }, + "description": { + "description": "Contains more detail 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": "Exfiltration", + "description": "Represents exfiltration associated with the Finding." + }, "externalSystems": { "additionalProperties": { "$ref": "GoogleCloudSecuritycenterV1ExternalSystem" @@ -1977,6 +2746,13 @@ "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": "File" + }, + "type": "array" + }, "findingClass": { "description": "The class of the finding.", "enum": [ @@ -1997,16 +2773,31 @@ ], "type": "string" }, + "iamBindings": { + "description": "Represents IAM bindings associated with the Finding.", + "items": { + "$ref": "IamBinding" + }, + "type": "array" + }, "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" }, + "kernelRootkit": { + "$ref": "KernelRootkit", + "description": "Kernel Rootkit signature." + }, + "kubernetes": { + "$ref": "Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, "mitreAttack": { "$ref": "MitreAttack", "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" }, "mute": { - "description": "Indicates the mute state of a finding (either unspecified, muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of 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", @@ -2035,10 +2826,26 @@ "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}\"", "type": "string" }, + "nextSteps": { + "description": "Next steps associate to the finding.", + "type": "string" + }, "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" }, + "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": "Process" + }, + "type": "array" + }, "resourceName": { "description": "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. This field is immutable after creation time.", "type": "string" @@ -2062,7 +2869,7 @@ "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 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\u2019s 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." + "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" }, @@ -2089,7 +2896,7 @@ }, "vulnerability": { "$ref": "Vulnerability", - "description": "Represents vulnerability specific fields like cve, cvss scores etc. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" } }, "type": "object" @@ -2125,7 +2932,7 @@ "id": "GoogleCloudSecuritycenterV1BigQueryExport", "properties": { "createTime": { - "description": "Output only. The time at which the big query export was created. This field is set by the server and will be ignored if provided on export on creation.", + "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" @@ -2139,11 +2946,11 @@ "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. Please see the proto documentation in the finding (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/finding.proto) and in the ListFindingsRequest for valid filter syntax. (https://source.corp.google.com/piper///depot/google3/google/cloud/securitycenter/v1/securitycenter_service.proto).", + "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 big query export. This field is set by the server and will be ignored if provided on export creation or update.", + "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" }, @@ -2152,12 +2959,12 @@ "type": "string" }, "principal": { - "description": "Output only. The service account that needs permission to create table, upload data to the big query dataset.", + "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 big export was updated. This field is set by the server and will be ignored if provided on export creation or update.", + "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" @@ -2165,12 +2972,113 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV1Binding", + "properties": { + "name": { + "description": "Name for binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for binding.", + "type": "string" + }, + "role": { + "$ref": "Role", + "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": "Subject" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse": { "description": "The response to a BulkMute request. Contains the LRO information.", "id": "GoogleCloudSecuritycenterV1BulkMuteFindingsResponse", "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV1ExposedResource": { + "description": "A resource that is exposed as a result of a finding.", + "id": "GoogleCloudSecuritycenterV1ExposedResource", + "properties": { + "displayName": { + "description": "Human readable name of the resource that is exposed.", + "type": "string" + }, + "methods": { + "description": "The ways in which this resource is exposed. Examples: Read, Write", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Exposed Resource Name e.g.: `organizations/123/attackExposureResults/456/exposedResources/789`", + "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" + }, + "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.", + "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" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV1ExposurePath": { + "description": "A path that an attacker could take to reach an exposed resource.", + "id": "GoogleCloudSecuritycenterV1ExposurePath", + "properties": { + "edges": { + "description": "A list of the edges between nodes in this exposure path.", + "items": { + "$ref": "Edge" + }, + "type": "array" + }, + "exposedResource": { + "$ref": "GoogleCloudSecuritycenterV1ExposedResource", + "description": "The leaf node of this exposure path." + }, + "name": { + "description": "Exposure Path Name e.g.: `organizations/123/attackExposureResults/456/exposurePaths/789`", + "type": "string" + }, + "pathNodes": { + "description": "A list of nodes that exist in this exposure path.", + "items": { + "$ref": "PathNode" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1ExternalSystem": { "description": "Representation of third party SIEM/SOAR fields within SCC.", "id": "GoogleCloudSecuritycenterV1ExternalSystem", @@ -2192,7 +3100,7 @@ "type": "string" }, "name": { - "description": "External System Name e.g. jira, demisto, etc. e.g.: organizations/1234/sources/5678/findings/123456/externalSystems/jira folders/1234/sources/5678/findings/123456/externalSystems/jira projects/1234/sources/5678/findings/123456/externalSystems/jira", + "description": "Full resource name of the external system, for example: \"organizations/1234/sources/5678/findings/123456/externalSystems/jira\", \"folders/1234/sources/5678/findings/123456/externalSystems/jira\", \"projects/1234/sources/5678/findings/123456/externalSystems/jira\"", "type": "string" }, "status": { @@ -2294,7 +3202,7 @@ "type": "string" }, "projectDisplayName": { - "description": "The project id that the resource belongs to.", + "description": "The project ID that the resource belongs to.", "type": "string" }, "type": { @@ -2304,6 +3212,50 @@ }, "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.", + "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", + "properties": { + "name": { + "description": "Name for the resource value config", + "type": "string" + }, + "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": "Required. Resource value level this expression represents", + "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" + }, + "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" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse": { "description": "Response of asset discovery run", "id": "GoogleCloudSecuritycenterV1RunAssetDiscoveryResponse", @@ -2564,8 +3516,37 @@ }, "type": "object" }, + "IamBinding": { + "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", + "id": "IamBinding", + "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, e.g. \"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" + }, "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).", "id": "Indicator", "properties": { "domains": { @@ -2576,11 +3557,150 @@ "type": "array" }, "ipAddresses": { - "description": "List of ip addresses associated to the Finding.", + "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": "ProcessSignature" + }, + "type": "array" + }, + "uris": { + "description": "The list of URIs associated to the Findings.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "KernelRootkit": { + "description": "Kernel mode rootkit signatures.", + "id": "KernelRootkit", + "properties": { + "name": { + "description": "Rootkit name when available.", + "type": "string" + }, + "unexpectedCodeModification": { + "description": "True when 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.", + "type": "boolean" + }, + "unexpectedInterruptHandler": { + "description": "True when 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.", + "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.", + "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.", + "type": "boolean" + }, + "unexpectedReadOnlyDataModification": { + "description": "True when 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.", + "type": "boolean" + } + }, + "type": "object" + }, + "Kubernetes": { + "description": "Kubernetes-related attributes.", + "id": "Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (i.e. 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.", + "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.", + "items": { + "$ref": "NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes Node information.", + "items": { + "$ref": "Node" + }, + "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.", + "items": { + "$ref": "Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve Roles or ClusterRoles.", + "items": { + "$ref": "Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "Label": { + "description": "Label represents a generic name=value label. Label has separate name and value fields to support filtering with contains().", + "id": "Label", + "properties": { + "name": { + "description": "Label name.", + "type": "string" + }, + "value": { + "description": "Label value.", + "type": "string" + } + }, + "type": "object" + }, + "MemoryHashSignature": { + "description": "A signature corresponding to memory page hashes.", + "id": "MemoryHashSignature", + "properties": { + "binaryFamily": { + "description": "The binary family.", + "type": "string" + }, + "detections": { + "description": "The list of memory hash detections contributing to the binary family match.", + "items": { + "$ref": "Detection" + }, + "type": "array" } }, "type": "object" @@ -2662,7 +3782,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -2693,7 +3820,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -2738,7 +3872,7 @@ "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).", + "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", @@ -2769,7 +3903,14 @@ "STEAL_WEB_SESSION_COOKIE", "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS" + "MODIFY_AUTHENTICATION_PROCESS", + "DATA_DESTRUCTION", + "DOMAIN_POLICY_MODIFICATION", + "IMPAIR_DEFENSES", + "NETWORK_SERVICE_DISCOVERY", + "ACCESS_TOKEN_MANIPULATION", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "DEFAULT_ACCOUNTS" ], "enumDescriptions": [ "Unspecified value.", @@ -2800,7 +3941,14 @@ "T1539", "T1578", "T1190", - "T1556" + "T1556", + "T1485", + "T1484", + "T1562", + "T1046", + "T1134", + "T1548", + "T1078.001" ], "type": "string" }, @@ -2813,6 +3961,228 @@ }, "type": "object" }, + "Node": { + "description": "Kubernetes Nodes associated with the finding.", + "id": "Node", + "properties": { + "name": { + "description": "Full Resource name of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "NodePool": { + "description": "Provides GKE Node Pool information.", + "id": "NodePool", + "properties": { + "name": { + "description": "Kubernetes Node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "Node" + }, + "type": "array" + } + }, + "type": "object" + }, + "OnboardingState": { + "description": "Resource capturing onboarding information for a given CRM resource.", + "id": "OnboardingState", + "properties": { + "name": { + "description": "The resource name of the OnboardingState. Format: organizations/{organization}/onboardingState Format: folders/{folder}/onboardingState Format: projects/{project}/onboardingState", + "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." + ], + "type": "string" + } + }, + "type": "object" + }, + "PathNode": { + "description": "Represents one point that an attacker passes through in this exposure path.", + "id": "PathNode", + "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.", + "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", + "type": "string" + }, + "resourceType": { + "description": "The resource type of this resource. See: https://cloud.google.com/asset-inventory/docs/supported-asset-types", + "type": "string" + } + }, + "type": "object" + }, + "Pod": { + "description": "Kubernetes Pod.", + "id": "Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "type": "object" + }, + "Process": { + "description": "Represents an operating system process.", + "id": "Process", + "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": "File", + "description": "File information for the process executable." + }, + "envVariables": { + "description": "Process environment variables.", + "items": { + "$ref": "EnvironmentVariable" + }, + "type": "array" + }, + "envVariablesTruncated": { + "description": "True if `env_variables` is incomplete.", + "type": "boolean" + }, + "libraries": { + "description": "File information for libraries loaded by the process.", + "items": { + "$ref": "File" + }, + "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)`.", + "type": "string" + }, + "parentPid": { + "description": "The parent process id.", + "format": "int64", + "type": "string" + }, + "pid": { + "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." + } + }, + "type": "object" + }, + "ProcessSignature": { + "description": "Indicates what signature matched this process.", + "id": "ProcessSignature", + "properties": { + "memoryHashSignature": { + "$ref": "MemoryHashSignature", + "description": "Signature indicating that a binary family was matched." + }, + "yaraRuleSignature": { + "$ref": "YaraRuleSignature", + "description": "Signature indicating that a YARA rule was matched." + } + }, + "type": "object" + }, + "RapidVulnerabilityDetectionSettings": { + "description": "Resource capturing the settings for the Rapid Vulnerability Detection service.", + "id": "RapidVulnerabilityDetectionSettings", + "properties": { + "modules": { + "additionalProperties": { + "$ref": "Config" + }, + "description": "The configurations including the state of enablement for the service's different modules. The absence of a module in the map implies its configuration is inherited from its parent's.", + "type": "object" + }, + "name": { + "description": "The resource name of the RapidVulnerabilityDetectionSettings. Formats: * organizations/{organization}/rapidVulnerabilityDetectionSettings * folders/{folder}/rapidVulnerabilityDetectionSettings * projects/{project}/rapidVulnerabilityDetectionSettings", + "type": "string" + }, + "serviceEnablementState": { + "description": "The state of enablement for the service at its level of the resource hierarchy. A DISABLED state will override all module enablement_states to DISABLED.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "INHERITED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "State is inherited from the parent resource.", + "State is enabled.", + "State is disabled." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the settings were last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Reference": { "description": "Additional Links", "id": "Reference", @@ -2828,20 +4198,56 @@ }, "type": "object" }, + "Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "Role", + "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" + }, "SecurityCenterSettings": { "description": "Resource capturing the settings for Security Center.", "id": "SecurityCenterSettings", "properties": { "logSinkProject": { - "description": "The resource name of the project to send logs to. This project must be part of the organization this resource resides in. The format is `projects/{project_id}`. An empty value disables logging. This value is only referenced by services that support log sink. Please refer to the documentation for an updated list of compatible services.", + "description": "The resource name of the project to send logs to. This project must be part of the organization this resource resides in. The format is `projects/{project_id}`. An empty value disables logging. This value is only referenced by services that support log sink. Please refer to the documentation for an updated list of compatible services. This may only be specified for organization level onboarding.", "type": "string" }, "name": { - "description": "The resource name of the SecurityCenterSettings. Format: organizations/{organization}/securityCenterSettings", + "description": "The resource name of the SecurityCenterSettings. Format: organizations/{organization}/securityCenterSettings Format: folders/{folder}/securityCenterSettings Format: projects/{project}/securityCenterSettings", + "type": "string" + }, + "onboardingTime": { + "description": "Output only. Timestamp of when the customer organization was onboarded to SCC.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, "orgServiceAccount": { - "description": "The organization level service account to be used for security center components.", + "description": "Output only. The organization level service account to be used for security center components.", + "readOnly": true, "type": "string" } }, @@ -2914,6 +4320,52 @@ }, "type": "object" }, + "ServiceAccountDelegationInfo": { + "description": "Identity delegation history of an authenticated service account.", + "id": "ServiceAccountDelegationInfo", + "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" + }, + "Subject": { + "description": "Represents a Kubernetes Subject.", + "id": "Subject", + "properties": { + "kind": { + "description": "Authentication type for 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 subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for subject.", + "type": "string" + } + }, + "type": "object" + }, "Subscription": { "description": "Resource capturing the state of an organization's subscription.", "id": "Subscription", @@ -3038,6 +4490,17 @@ } }, "type": "object" + }, + "YaraRuleSignature": { + "description": "A signature corresponding to a YARA rule.", + "id": "YaraRuleSignature", + "properties": { + "yaraRule": { + "description": "The name of the YARA rule.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json index fbd4b93499..f2a09f8399 100644 --- a/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json @@ -542,7 +542,7 @@ } } }, - "revision": "20220305", + "revision": "20230118", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "AddTenantProjectRequest": { @@ -671,7 +671,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -777,6 +777,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -855,6 +860,105 @@ "properties": {}, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "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", @@ -909,7 +1013,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -919,6 +1023,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CreateTenancyUnitRequest": { "description": "Request to create a tenancy unit for a service consumer of a managed service.", "id": "CreateTenancyUnitRequest", @@ -1048,8 +1163,19 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1058,6 +1184,13 @@ "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1243,6 +1376,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", @@ -1311,10 +1455,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -1460,6 +1630,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -1506,6 +1703,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -1781,6 +1993,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -1868,6 +2091,17 @@ }, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "PolicyBinding": { "description": "Translates to IAM Policy bindings (without auditing at this level)", "id": "PolicyBinding", @@ -1886,19 +2120,96 @@ }, "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -1972,6 +2283,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "SearchTenancyUnitsResponse": { "description": "Response for the search query.", "id": "SearchTenancyUnitsResponse", @@ -2093,6 +2415,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." @@ -2321,17 +2647,17 @@ }, "tenantProjectPolicy": { "$ref": "TenantProjectPolicy", - "description": "Describes ownership and policies for the new tenant project. Required." + "description": "Describes ownership and policies for the new tenant project." } }, "type": "object" }, "TenantProjectPolicy": { - "description": "Describes policy settings that need to be applied to a newly created tenant project.", + "description": "Describes policy settings that can be applied to a newly created tenant project.", "id": "TenantProjectPolicy", "properties": { "policyBindings": { - "description": "Policy bindings to be applied to the tenant project, in addition to the 'roles/owner' role granted to the Service Consumer Management service account. At least one binding must have the role `roles/owner`.", + "description": "Policy bindings to be applied to the tenant project, in addition to the 'roles/owner' role granted to the Service Consumer Management service account.", "items": { "$ref": "PolicyBinding" }, diff --git a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json index 65ebbb3a8e..ea4015ba0c 100644 --- a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json @@ -500,7 +500,7 @@ } } }, - "revision": "20220305", + "revision": "20230118", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "Api": { @@ -580,7 +580,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -686,6 +686,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -747,6 +752,105 @@ }, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "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", @@ -801,7 +905,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -811,6 +915,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CustomError": { "description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", "id": "CustomError", @@ -918,8 +1033,19 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -928,6 +1054,13 @@ "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1113,6 +1246,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", @@ -1181,10 +1325,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -1294,6 +1464,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -1340,6 +1537,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -1615,6 +1827,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -1702,19 +1925,107 @@ }, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -1777,6 +2088,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Service": { "description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", "id": "Service", @@ -1880,6 +2202,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." diff --git a/etc/api/servicecontrol/v1/servicecontrol-api.json b/etc/api/servicecontrol/v1/servicecontrol-api.json index 470f015a5b..f4608947c8 100644 --- a/etc/api/servicecontrol/v1/servicecontrol-api.json +++ b/etc/api/servicecontrol/v1/servicecontrol-api.json @@ -197,7 +197,7 @@ } } }, - "revision": "20220227", + "revision": "20230106", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "AllocateInfo": { @@ -332,6 +332,10 @@ "format": "int64", "type": "string" }, + "policyViolationInfo": { + "$ref": "PolicyViolationInfo", + "description": "Indicates the policy violations for this request. If the request is denied by the policy, violation information will be logged here." + }, "request": { "additionalProperties": { "description": "Properties of the object.", @@ -527,7 +531,8 @@ "LOAS_PROJECT_LOOKUP_UNAVAILABLE", "CLOUD_RESOURCE_MANAGER_BACKEND_UNAVAILABLE", "SECURITY_POLICY_BACKEND_UNAVAILABLE", - "LOCATION_POLICY_BACKEND_UNAVAILABLE" + "LOCATION_POLICY_BACKEND_UNAVAILABLE", + "INJECTED_ERROR" ], "enumDescriptions": [ "This is never used in `CheckResponse`.", @@ -565,7 +570,8 @@ "The Spanner for looking up LOAS project is unavailable.", "Cloud Resource Manager backend server is unavailable.", "NOTE: for customers in the scope of Beta/GA of https://cloud.google.com/vpc-service-controls, this error is no longer returned. If the security backend is unavailable, rpc UNAVAILABLE status will be returned instead. It should be ignored and should not be used to reject client requests.", - "Backend server for evaluating location policy is unavailable." + "Backend server for evaluating location policy is unavailable.", + "Part of the project of fault injection: go/chemist-slo-validation. To distinguish between artificially injected errors and organic ones, this value will be exported for the per_service_check_error_count streamz. http://google3/apiserving/servicecontrol/server/controller_service.cc;l=196 Rpcinjectz2 works by injecting errors early in the rpc life cycle, before any of the chemist business logic runs." ], "type": "string" }, @@ -1165,17 +1171,6 @@ "format": "google-datetime", "type": "string" }, - "extensions": { - "description": "Unimplemented.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, "importance": { "description": "DO NOT USE. This is an experimental field.", "enum": [ @@ -1252,6 +1247,39 @@ }, "type": "object" }, + "OrgPolicyViolationInfo": { + "description": "Represents OrgPolicy Violation information.", + "id": "OrgPolicyViolationInfo", + "properties": { + "payload": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Resource payload that is currently in scope and is subjected to orgpolicy conditions. This payload may be the subset of the actual Resource that may come in the request. This payload should not contain any core content.", + "type": "object" + }, + "resourceTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Tags referenced on the resource at the time of evaluation. These also include the federated tags, if they are supplied in the CheckOrgPolicy or CheckCustomConstraints Requests. Optional field as of now. These tags are the Cloud tags that are available on the resource during the policy evaluation and will be available as part of the OrgPolicy check response for logging purposes.", + "type": "object" + }, + "resourceType": { + "description": "Optional. Resource type that the orgpolicy is checked against. Example: compute.googleapis.com/Instance, store.googleapis.com/bucket", + "type": "string" + }, + "violationInfo": { + "description": "Optional. Policy violations", + "items": { + "$ref": "ViolationInfo" + }, + "type": "array" + } + }, + "type": "object" + }, "Peer": { "description": "This message defines attributes for a node that handles a network request. The node can be either a service or an application that sends, forwards, or receives the request. Service peers should fill in `principal` and `labels` as appropriate.", "id": "Peer", @@ -1273,7 +1301,7 @@ "type": "string" }, "principal": { - "description": "The identity of this peer. Similar to `Request.auth.principal`, but relative to the peer instead of the request. For example, the idenity associated with a load balancer that forwared the request.", + "description": "The identity of this peer. Similar to `Request.auth.principal`, but relative to the peer instead of the request. For example, the identity associated with a load balancer that forwarded the request.", "type": "string" }, "regionCode": { @@ -1283,6 +1311,17 @@ }, "type": "object" }, + "PolicyViolationInfo": { + "description": "Information related to policy violations for this request.", + "id": "PolicyViolationInfo", + "properties": { + "orgPolicyViolationInfo": { + "$ref": "OrgPolicyViolationInfo", + "description": "Indicates the orgpolicy violations for this resource." + } + }, + "type": "object" + }, "QuotaError": { "description": "Represents error information for QuotaOperation.", "id": "QuotaError", @@ -1404,7 +1443,6 @@ "NORMAL", "BEST_EFFORT", "CHECK_ONLY", - "QUERY_ONLY", "ADJUST_ONLY" ], "enumDescriptions": [ @@ -1412,7 +1450,6 @@ "For AllocateQuota request, allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the amount is higher than the available quota, allocation error will be returned and no quota will be allocated. If multiple quotas are part of the request, and one fails, none of the quotas are allocated or released.", "The operation allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the amount is higher than the available quota, request does not fail but all available quota will be allocated. For rate quota, BEST_EFFORT will continue to deduct from other groups even if one does not have enough quota. For allocation, it will find the minimum available amount across all groups and deduct that amount from all the affected groups.", "For AllocateQuota request, only checks if there is enough quota available and does not change the available quota. No lock is placed on the available quota either.", - "Deprecated. Please use QueryLimits API to query quota limits.", "The operation allocates quota for the amount specified in the service configuration or specified using the quota metrics. If the requested amount is higher than the available quota, request does not fail and remaining quota would become negative (going over the limit). Not supported for Rate Quota." ], "type": "string" @@ -1429,14 +1466,12 @@ "enum": [ "ACQUIRE", "ACQUIRE_BEST_EFFORT", - "CHECK", - "RELEASE" + "CHECK" ], "enumDescriptions": [ "Decreases available quota by the cost specified for the operation. If cost is higher than available quota, operation fails and returns error.", "Decreases available quota by the cost specified for the operation. If cost is higher than available quota, operation does not fail and available quota goes down to zero but it returns error.", - "Does not change any available quota. Only checks if there is enough quota. No lock is placed on the checked tokens neither.", - "DEPRECATED: Increases available quota by the operation cost specified for the operation." + "Does not change any available quota. Only checks if there is enough quota. No lock is placed on the checked tokens neither." ], "type": "string" } @@ -1563,7 +1598,7 @@ "id": "RequestMetadata", "properties": { "callerIp": { - "description": "The IP address of the caller. For caller from internet, this will be public IPv4 or IPv6 address. For caller from a Compute Engine VM with external IP address, this will be the VM's external IP address. For caller from a Compute Engine VM without external IP address, if the VM is in the same organization (or project) as the accessed resource, `caller_ip` will be the VM's internal IPv4 address, otherwise the `caller_ip` will be redacted to \"gce-internal-ip\". See https://cloud.google.com/compute/docs/vpc/ for more information.", + "description": "The IP address of the caller. For a caller from the internet, this will be the public IPv4 or IPv6 address. For calls made from inside Google's internal production network from one GCP service to another, `caller_ip` will be redacted to \"private\". For a caller from a Compute Engine VM with a external IP address, `caller_ip` will be the VM's external IP address. For a caller from a Compute Engine VM without a external IP address, if the VM is in the same organization (or project) as the accessed resource, `caller_ip` will be the VM's internal IPv4 address, otherwise `caller_ip` will be redacted to \"gce-internal-ip\". See https://cloud.google.com/compute/docs/vpc/ for more information.", "type": "string" }, "callerNetwork": { @@ -1571,7 +1606,7 @@ "type": "string" }, "callerSuppliedUserAgent": { - "description": "The user agent of the caller. This information is not authenticated and should be treated accordingly. For example: + `google-api-python-client/1.4.0`: The request was made by the Google API client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: The request was made from the `my-project` App Engine app. NOLINT", + "description": "The user agent of the caller. This information is not authenticated and should be treated accordingly. For example: + `google-api-python-client/1.4.0`: The request was made by the Google API client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: The request was made from the `my-project` App Engine app.", "type": "string" }, "destinationAttributes": { @@ -1653,6 +1688,10 @@ "description": "Describes a resource associated with this operation.", "id": "ResourceInfo", "properties": { + "permission": { + "description": "The resource permission required for this request.", + "type": "string" + }, "resourceContainer": { "description": "The identifier of the parent of this resource instance. Must be in one of the following formats: - `projects/` - `folders/` - `organizations/`", "type": "string" @@ -2057,6 +2096,41 @@ } }, "type": "object" + }, + "ViolationInfo": { + "description": "Provides information about the Policy violation info for this request.", + "id": "ViolationInfo", + "properties": { + "checkedValue": { + "description": "Optional. Value that is being checked for the policy. This could be in encrypted form (if pii sensitive). This field will only be emitted in LIST_POLICY types", + "type": "string" + }, + "constraint": { + "description": "Optional. Constraint name", + "type": "string" + }, + "errorMessage": { + "description": "Optional. Error message that policy is indicating.", + "type": "string" + }, + "policyType": { + "description": "Optional. Indicates the type of the policy.", + "enum": [ + "POLICY_TYPE_UNSPECIFIED", + "BOOLEAN_CONSTRAINT", + "LIST_CONSTRAINT", + "CUSTOM_CONSTRAINT" + ], + "enumDescriptions": [ + "Default value. This value should not be used.", + "Indicates boolean policy constraint", + "Indicates list policy constraint", + "Indicates custom policy constraint" + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/servicecontrol/v2/servicecontrol-api.json b/etc/api/servicecontrol/v2/servicecontrol-api.json index 2873fd96b5..236e77507d 100644 --- a/etc/api/servicecontrol/v2/servicecontrol-api.json +++ b/etc/api/servicecontrol/v2/servicecontrol-api.json @@ -111,7 +111,7 @@ "services": { "methods": { "check": { - "description": "Private Preview. This feature is only available for approved services. This method provides admission control for services that are integrated with [Service Infrastructure](/service-infrastructure). It checks whether an operation should be allowed based on the service configuration and relevant policies. It must be called before the operation is executed. For more information, see [Admission Control](/service-infrastructure/docs/admission-control). NOTE: The admission control has an expected policy propagation delay of 60s. The caller **must** not depend on the most recent policy changes. NOTE: The admission control has a hard limit of 1 referenced resources per call. If an operation refers to more than 1 resources, the caller must call the Check method multiple times. This method requires the `servicemanagement.services.check` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", + "description": "Private Preview. This feature is only available for approved services. This method provides admission control for services that are integrated with [Service Infrastructure](https://cloud.google.com/service-infrastructure). It checks whether an operation should be allowed based on the service configuration and relevant policies. It must be called before the operation is executed. For more information, see [Admission Control](https://cloud.google.com/service-infrastructure/docs/admission-control). NOTE: The admission control has an expected policy propagation delay of 60s. The caller **must** not depend on the most recent policy changes. NOTE: The admission control has a hard limit of 1 referenced resources per call. If an operation refers to more than 1 resources, the caller must call the Check method multiple times. This method requires the `servicemanagement.services.check` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", "flatPath": "v2/services/{serviceName}:check", "httpMethod": "POST", "id": "servicecontrol.services.check", @@ -139,7 +139,7 @@ ] }, "report": { - "description": "Private Preview. This feature is only available for approved services. This method provides telemetry reporting for services that are integrated with [Service Infrastructure](/service-infrastructure). It reports a list of operations that have occurred on a service. It must be called after the operations have been executed. For more information, see [Telemetry Reporting](/service-infrastructure/docs/telemetry-reporting). NOTE: The telemetry reporting has a hard limit of 1000 operations and 1MB per Report call. It is recommended to have no more than 100 operations per call. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", + "description": "Private Preview. This feature is only available for approved services. This method provides telemetry reporting for services that are integrated with [Service Infrastructure](https://cloud.google.com/service-infrastructure). It reports a list of operations that have occurred on a service. It must be called after the operations have been executed. For more information, see [Telemetry Reporting](https://cloud.google.com/service-infrastructure/docs/telemetry-reporting). NOTE: The telemetry reporting has a hard limit of 1000 operations and 1MB per Report call. It is recommended to have no more than 100 operations per call. This method requires the `servicemanagement.services.report` permission on the specified service. For more information, see [Service Control API Access Control](https://cloud.google.com/service-infrastructure/docs/service-control/access-control).", "flatPath": "v2/services/{serviceName}:report", "httpMethod": "POST", "id": "servicecontrol.services.report", @@ -169,7 +169,7 @@ } } }, - "revision": "20220227", + "revision": "20230106", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "Api": { @@ -273,6 +273,10 @@ "format": "int64", "type": "string" }, + "policyViolationInfo": { + "$ref": "PolicyViolationInfo", + "description": "Indicates the policy violations for this request. If the request is denied by the policy, violation information will be logged here." + }, "request": { "additionalProperties": { "description": "Properties of the object.", @@ -465,7 +469,7 @@ }, "status": { "$ref": "Status", - "description": "Operation is allowed when this field is not set. Any non-'OK' status indicates a denial; [google.rpc.Status.details]() would contain additional details about the denial." + "description": "Operation is allowed when this field is not set. Any non-'OK' status indicates a denial; google.rpc.Status.details would contain additional details about the denial." } }, "type": "object" @@ -489,6 +493,39 @@ }, "type": "object" }, + "OrgPolicyViolationInfo": { + "description": "Represents OrgPolicy Violation information.", + "id": "OrgPolicyViolationInfo", + "properties": { + "payload": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Resource payload that is currently in scope and is subjected to orgpolicy conditions. This payload may be the subset of the actual Resource that may come in the request. This payload should not contain any core content.", + "type": "object" + }, + "resourceTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Tags referenced on the resource at the time of evaluation. These also include the federated tags, if they are supplied in the CheckOrgPolicy or CheckCustomConstraints Requests. Optional field as of now. These tags are the Cloud tags that are available on the resource during the policy evaluation and will be available as part of the OrgPolicy check response for logging purposes.", + "type": "object" + }, + "resourceType": { + "description": "Optional. Resource type that the orgpolicy is checked against. Example: compute.googleapis.com/Instance, store.googleapis.com/bucket", + "type": "string" + }, + "violationInfo": { + "description": "Optional. Policy violations", + "items": { + "$ref": "ViolationInfo" + }, + "type": "array" + } + }, + "type": "object" + }, "Peer": { "description": "This message defines attributes for a node that handles a network request. The node can be either a service or an application that sends, forwards, or receives the request. Service peers should fill in `principal` and `labels` as appropriate.", "id": "Peer", @@ -510,7 +547,7 @@ "type": "string" }, "principal": { - "description": "The identity of this peer. Similar to `Request.auth.principal`, but relative to the peer instead of the request. For example, the idenity associated with a load balancer that forwared the request.", + "description": "The identity of this peer. Similar to `Request.auth.principal`, but relative to the peer instead of the request. For example, the identity associated with a load balancer that forwarded the request.", "type": "string" }, "regionCode": { @@ -520,6 +557,17 @@ }, "type": "object" }, + "PolicyViolationInfo": { + "description": "Information related to policy violations for this request.", + "id": "PolicyViolationInfo", + "properties": { + "orgPolicyViolationInfo": { + "$ref": "OrgPolicyViolationInfo", + "description": "Indicates the orgpolicy violations for this resource." + } + }, + "type": "object" + }, "ReportRequest": { "description": "Request message for the Report method.", "id": "ReportRequest", @@ -609,7 +657,7 @@ "id": "RequestMetadata", "properties": { "callerIp": { - "description": "The IP address of the caller. For caller from internet, this will be public IPv4 or IPv6 address. For caller from a Compute Engine VM with external IP address, this will be the VM's external IP address. For caller from a Compute Engine VM without external IP address, if the VM is in the same organization (or project) as the accessed resource, `caller_ip` will be the VM's internal IPv4 address, otherwise the `caller_ip` will be redacted to \"gce-internal-ip\". See https://cloud.google.com/compute/docs/vpc/ for more information.", + "description": "The IP address of the caller. For a caller from the internet, this will be the public IPv4 or IPv6 address. For calls made from inside Google's internal production network from one GCP service to another, `caller_ip` will be redacted to \"private\". For a caller from a Compute Engine VM with a external IP address, `caller_ip` will be the VM's external IP address. For a caller from a Compute Engine VM without a external IP address, if the VM is in the same organization (or project) as the accessed resource, `caller_ip` will be the VM's internal IPv4 address, otherwise `caller_ip` will be redacted to \"gce-internal-ip\". See https://cloud.google.com/compute/docs/vpc/ for more information.", "type": "string" }, "callerNetwork": { @@ -617,7 +665,7 @@ "type": "string" }, "callerSuppliedUserAgent": { - "description": "The user agent of the caller. This information is not authenticated and should be treated accordingly. For example: + `google-api-python-client/1.4.0`: The request was made by the Google API client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: The request was made from the `my-project` App Engine app. NOLINT", + "description": "The user agent of the caller. This information is not authenticated and should be treated accordingly. For example: + `google-api-python-client/1.4.0`: The request was made by the Google API client for Python. + `Cloud SDK Command Line Tool apitools-client/1.0 gcloud/0.9.62`: The request was made by the Google Cloud SDK CLI (gcloud). + `AppEngine-Google; (+http://code.google.com/appengine; appid: s~my-project`: The request was made from the `my-project` App Engine app.", "type": "string" }, "destinationAttributes": { @@ -1059,6 +1107,41 @@ } }, "type": "object" + }, + "ViolationInfo": { + "description": "Provides information about the Policy violation info for this request.", + "id": "ViolationInfo", + "properties": { + "checkedValue": { + "description": "Optional. Value that is being checked for the policy. This could be in encrypted form (if pii sensitive). This field will only be emitted in LIST_POLICY types", + "type": "string" + }, + "constraint": { + "description": "Optional. Constraint name", + "type": "string" + }, + "errorMessage": { + "description": "Optional. Error message that policy is indicating.", + "type": "string" + }, + "policyType": { + "description": "Optional. Indicates the type of the policy.", + "enum": [ + "POLICY_TYPE_UNSPECIFIED", + "BOOLEAN_CONSTRAINT", + "LIST_CONSTRAINT", + "CUSTOM_CONSTRAINT" + ], + "enumDescriptions": [ + "Default value. This value should not be used.", + "Indicates boolean policy constraint", + "Indicates list policy constraint", + "Indicates custom policy constraint" + ], + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/servicedirectory/v1/servicedirectory-api.json b/etc/api/servicedirectory/v1/servicedirectory-api.json index 0f562f79c7..a9ac43d1bc 100644 --- a/etc/api/servicedirectory/v1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1/servicedirectory-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -272,7 +272,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -380,7 +380,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -408,7 +408,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -523,7 +523,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -659,7 +659,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -687,7 +687,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -883,7 +883,7 @@ } } }, - "revision": "20220224", + "revision": "20230105", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -895,7 +895,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -909,7 +909,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -941,6 +941,11 @@ "description": "Optional. Service Directory rejects values outside of `[0, 65535]`.", "format": "int32", "type": "integer" + }, + "uid": { + "description": "Output only. The globally unique identifier of the endpoint in the UUID4 format.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1111,6 +1116,11 @@ "name": { "description": "Immutable. The resource name for the namespace in the format `projects/*/locations/*/namespaces/*`.", "type": "string" + }, + "uid": { + "description": "Output only. The globally unique identifier of the namespace in the UUID4 format.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1144,7 +1154,7 @@ "id": "ResolveServiceRequest", "properties": { "endpointFilter": { - "description": "Optional. The filter applied to the endpoints of the resolved service. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `annotations.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `annotations.owner` returns endpoints that have a annotation with the key `owner`, this is the same as `annotations:owner` * `annotations.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `annotations.owner!=sd AND annotations.foo=bar` returns endpoints that have `owner` in annotation key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoint, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", + "description": "Optional. The filter applied to the endpoints of the resolved service. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `annotations.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `annotations.owner` returns endpoints that have a annotation with the key `owner`, this is the same as `annotations:owner` * `annotations.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `name=projects/my-project/locations/us-central1/namespaces/my-namespace/services/my-service/endpoints/ep-1` returns the endpoint that has an endpoint_id equal to `ep-1` * `annotations.owner!=sd AND annotations.foo=bar` returns endpoints that have `owner` in annotation key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoint, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", "type": "string" }, "maxEndpoints": { @@ -1187,6 +1197,11 @@ "name": { "description": "Immutable. The resource name for the service in the format `projects/*/locations/*/namespaces/*/services/*`.", "type": "string" + }, + "uid": { + "description": "Output only. The globally unique identifier of the service in the UUID4 format.", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1197,7 +1212,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1207,7 +1222,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json index 06b31b4692..2328007b6b 100644 --- a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -263,7 +263,7 @@ ] }, "getIamPolicy": { - "description": "Gets the IAM Policy for a resource (namespace or service only).", + "description": "Gets the IAM Policy for a resource", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:getIamPolicy", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.getIamPolicy", @@ -272,7 +272,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -300,7 +300,7 @@ ], "parameters": { "filter": { - "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name` or `labels.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `labels.owner` returns namespaces that have a label with the key `owner`, this is the same as `labels:owner` * `labels.owner=sd` returns namespaces that have key/value `owner=sd` * `name>projects/my-project/locations/us-east1/namespaces/namespace-c` returns namespaces that have name that is alphabetically later than the string, so \"namespace-e\" is returned but \"namespace-a\" is not * `labels.owner!=sd AND labels.foo=bar` returns namespaces that have `owner` in label key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that namespace doesn't have a field called \"doesnotexist\". Since the filter does not match any namespaces, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", + "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name`, `labels.` for map field, or `attributes.` for attributes field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `labels.owner` returns namespaces that have a label with the key `owner`, this is the same as `labels:owner` * `labels.owner=sd` returns namespaces that have key/value `owner=sd` * `name>projects/my-project/locations/us-east1/namespaces/namespace-c` returns namespaces that have name that is alphabetically later than the string, so \"namespace-e\" is returned but \"namespace-a\" is not * `labels.owner!=sd AND labels.foo=bar` returns namespaces that have `owner` in label key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that namespace doesn't have a field called \"doesnotexist\". Since the filter does not match any namespaces, it returns no results * `attributes.managed_registration=true` returns namespaces that are managed by a GCP product or service For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" }, @@ -371,7 +371,7 @@ ] }, "setIamPolicy": { - "description": "Sets the IAM Policy for a resource (namespace or service only).", + "description": "Sets the IAM Policy for a resource", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:setIamPolicy", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.setIamPolicy", @@ -380,7 +380,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -399,7 +399,7 @@ ] }, "testIamPermissions": { - "description": "Tests IAM permissions for a resource (namespace or service only).", + "description": "Tests IAM permissions for a resource (namespace, service or service workload only).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}:testIamPermissions", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.testIamPermissions", @@ -408,7 +408,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+$", "required": true, @@ -428,6 +428,94 @@ } }, "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": { @@ -514,7 +602,7 @@ ] }, "getIamPolicy": { - "description": "Gets the IAM Policy for a resource (namespace or service only).", + "description": "Gets the IAM Policy for a resource", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:getIamPolicy", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.services.getIamPolicy", @@ -523,7 +611,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -551,7 +639,7 @@ ], "parameters": { "filter": { - "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name` or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns services that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns services that have key/value `protocol=gRPC` * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/service-c` returns services that have name that is alphabetically later than the string, so \"service-e\" is returned but \"service-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns services that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that service doesn't have a field called \"doesnotexist\". Since the filter does not match any services, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", + "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name` or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns services that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns services that have key/value `protocol=gRPC` * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/service-c` returns services that have name that is alphabetically later than the string, so \"service-e\" is returned but \"service-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns services that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that service doesn't have a field called \"doesnotexist\". Since the filter does not match any services, it returns no results * `attributes.managed_registration=true` returns services that are managed by a GCP product or service For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" }, @@ -650,7 +738,7 @@ ] }, "setIamPolicy": { - "description": "Sets the IAM Policy for a resource (namespace or service only).", + "description": "Sets the IAM Policy for a resource", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:setIamPolicy", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.services.setIamPolicy", @@ -659,7 +747,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -678,7 +766,7 @@ ] }, "testIamPermissions": { - "description": "Tests IAM permissions for a resource (namespace or service only).", + "description": "Tests IAM permissions for a resource (namespace, service or service workload only).", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/namespaces/{namespacesId}/services/{servicesId}:testIamPermissions", "httpMethod": "POST", "id": "servicedirectory.projects.locations.namespaces.services.testIamPermissions", @@ -687,7 +775,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/services/[^/]+$", "required": true, @@ -802,7 +890,7 @@ ], "parameters": { "filter": { - "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoints, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", + "description": "Optional. The filter to list results by. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, `metadata.` for map field, or `attributes.` for attributes field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a metadata with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in metadata key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoints, it returns no results * `attributes.kubernetes_resource_type=KUBERNETES_RESOURCE_TYPE_CLUSTER_ IP` returns endpoints with the corresponding kubernetes_resource_type For more information about filtering, see [API Filtering](https://aip.dev/160).", "location": "query", "type": "string" }, @@ -877,13 +965,101 @@ } } } + }, + "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" + } + }, + "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" + ] + } + } } } } } } }, - "revision": "20220224", + "revision": "20230105", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { @@ -895,7 +1071,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -909,7 +1085,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1168,7 +1344,7 @@ "id": "ResolveServiceRequest", "properties": { "endpointFilter": { - "description": "Optional. The filter applied to the endpoints of the resolved service. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a annotation with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in annotation key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoint, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", + "description": "Optional. The filter applied to the endpoints of the resolved service. General `filter` string syntax: ` ()` * `` can be `name`, `address`, `port`, or `metadata.` for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is roughly the same as `=` * `` must be the same data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid filters: * `metadata.owner` returns endpoints that have a annotation with the key `owner`, this is the same as `metadata:owner` * `metadata.protocol=gRPC` returns endpoints that have key/value `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have this address * `port>8080` returns endpoints that have port number larger than 8080 * `name>projects/my-project/locations/us-east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c` returns endpoints that have name that is alphabetically later than the string, so \"endpoint-e\" is returned but \"endpoint-a\" is not * `name=projects/my-project/locations/us-central1/namespaces/my-namespace/services/my-service/endpoints/ep-1` returns the endpoint that has an endpoint_id equal to `ep-1` * `metadata.owner!=sd AND metadata.foo=bar` returns endpoints that have `owner` in annotation key but value is not `sd` AND have key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that endpoint doesn't have a field called \"doesnotexist\". Since the filter does not match any endpoint, it returns no results For more information about filtering, see [API Filtering](https://aip.dev/160).", "type": "string" }, "maxEndpoints": { @@ -1233,7 +1409,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -1243,7 +1419,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/servicemanagement/v1/servicemanagement-api.json b/etc/api/servicemanagement/v1/servicemanagement-api.json index 0136955b8f..3af6538b6b 100644 --- a/etc/api/servicemanagement/v1/servicemanagement-api.json +++ b/etc/api/servicemanagement/v1/servicemanagement-api.json @@ -213,7 +213,7 @@ ], "parameters": { "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -289,7 +289,7 @@ "type": "string" }, "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -329,7 +329,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+$", "required": true, @@ -363,7 +363,7 @@ "type": "string" }, "pageSize": { - "description": "The max number of items to include in the response list. Page size is 50 if not specified. Maximum value is 100.", + "description": "The max number of items to include in the response list. Page size is 50 if not specified. Maximum value is 500.", "format": "int32", "location": "query", "type": "integer" @@ -400,7 +400,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+$", "required": true, @@ -429,7 +429,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+$", "required": true, @@ -460,7 +460,7 @@ ], "parameters": { "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -489,7 +489,7 @@ ], "parameters": { "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -524,7 +524,7 @@ "type": "string" }, "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -575,7 +575,7 @@ "type": "string" }, "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -602,7 +602,7 @@ ], "parameters": { "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -634,7 +634,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+/consumers/[^/]+$", "required": true, @@ -665,7 +665,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+/consumers/[^/]+$", "required": true, @@ -694,7 +694,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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": "^services/[^/]+/consumers/[^/]+$", "required": true, @@ -729,7 +729,7 @@ ], "parameters": { "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -764,7 +764,7 @@ "type": "string" }, "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -791,7 +791,7 @@ ], "parameters": { "filter": { - "description": "Required. Use `filter` to return subset of rollouts. The following filters are supported: -- To limit the results to only those in [status](google.api.servicemanagement.v1.RolloutStatus) 'SUCCESS', use filter='status=SUCCESS' -- To limit the results to those in [status](google.api.servicemanagement.v1.RolloutStatus) 'CANCELLED' or 'FAILED', use filter='status=CANCELLED OR status=FAILED'", + "description": "Required. Use `filter` to return subset of rollouts. The following filters are supported: -- By status. For example, `filter='status=SUCCESS'` -- By strategy. For example, `filter='strategy=TrafficPercentStrategy'`", "location": "query", "type": "string" }, @@ -807,7 +807,7 @@ "type": "string" }, "serviceName": { - "description": "Required. The name of the service. See the [overview](/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", + "description": "Required. The name of the service. See the [overview](https://cloud.google.com/service-management/overview) for naming requirements. For example: `example.googleapis.com`.", "location": "path", "required": true, "type": "string" @@ -829,7 +829,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://servicemanagement.googleapis.com/", "schemas": { "Advice": { @@ -896,7 +896,7 @@ "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.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -968,7 +968,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -1074,6 +1074,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -1144,7 +1149,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -1171,6 +1176,105 @@ }, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "type": "string" + } + }, + "type": "object" + }, "ConfigChange": { "description": "Output generated from semantically comparing two versions of a service configuration. Includes detailed information about a field that have changed with applicable advice about potential consequences for the change, such as backwards-incompatibility.", "id": "ConfigChange", @@ -1332,7 +1436,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -1342,6 +1446,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CustomError": { "description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", "id": "CustomError", @@ -1482,10 +1597,34 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, + "EnableServiceResponse": { + "description": "Operation payload for EnableService method.", + "id": "EnableServiceResponse", + "properties": {}, + "type": "object" + }, "Endpoint": { "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1784,6 +1923,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", @@ -1852,10 +2002,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -2037,6 +2213,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "ManagedService": { "description": "The full representation of a Service that is managed by Google Service Management.", "id": "ManagedService", @@ -2046,7 +2249,7 @@ "type": "string" }, "serviceName": { - "description": "The name of the service. See the [overview](/service-management/overview) for naming requirements.", + "description": "The name of the service. See the [overview](https://cloud.google.com/service-infrastructure/docs/overview) for naming requirements.", "type": "string" } }, @@ -2098,6 +2301,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -2373,6 +2591,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -2506,6 +2735,17 @@ }, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -2537,19 +2777,96 @@ }, "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -2681,6 +2998,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Service": { "description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", "id": "Service", @@ -2784,6 +3112,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." @@ -2827,7 +3159,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -3006,7 +3338,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/servicenetworking/v1/servicenetworking-api.json b/etc/api/servicenetworking/v1/servicenetworking-api.json index 2efe72b467..5c1a3ecd2d 100644 --- a/etc/api/servicenetworking/v1/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1/servicenetworking-api.json @@ -685,6 +685,11 @@ "name" ], "parameters": { + "includeUsedIpRanges": { + "description": "Optional. When true, include the used IP ranges as part of the GetConsumerConfig output. This includes routes created inside the service networking network, consumer network, peers of the consumer network, and reserved ranges inside the service networking network. By default, this is false", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. Name of the consumer 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", @@ -860,7 +865,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -970,10 +975,19 @@ "description": "Request to create a subnetwork in a previously peered service network.", "id": "AddSubnetworkRequest", "properties": { + "allowSubnetCidrRoutesOverlap": { + "description": "Optional. Defines the allowSubnetCidrRoutesOverlap field of the subnet, e.g. Available in alpha and beta according to [Compute API documentation](https://cloud.google.com/compute/docs/reference/rest/beta/subnetworks/insert)", + "type": "boolean" + }, "checkServiceNetworkingUsePermission": { "description": "Optional. The IAM permission check determines whether the consumer project has 'servicenetworking.services.use' permission or not.", "type": "boolean" }, + "computeIdempotencyWindow": { + "description": "Optional. Specifies a custom time bucket for Arcus subnetwork request idempotency. If two equivalent concurrent requests are made, Arcus will know to ignore the request if it has already been completed or is in progress. Only requests with matching compute_idempotency_window have guaranteed idempotency. Changing this time window between requests results in undefined behavior. Zero (or empty) value with custom_compute_idempotency_window=true specifies no idempotency (i.e. no request ID is provided to Arcus). Maximum value of 14 days (enforced by Arcus limit). For more information on how to use, see: go/revisit-sn-idempotency-window", + "format": "google-duration", + "type": "string" + }, "consumer": { "description": "Required. A resource that represents the service consumer, such as `projects/123456`. The project number can be different from the value in the consumer network parameter. For example, the network might be part of a Shared VPC network. In those cases, Service Networking validates that this resource belongs to that Shared VPC.", "type": "string" @@ -987,7 +1001,7 @@ "type": "string" }, "ipPrefixLength": { - "description": "Required. The prefix length of the subnet's IP address range. Use CIDR range notation, such as `30` to provision a subnet with an `x.x.x.x/30` CIDR range. The IP address range is drawn from a pool of available ranges in the service consumer's allocated range.", + "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", "type": "integer" }, @@ -1018,6 +1032,10 @@ }, "type": "array" }, + "role": { + "description": "Optional. Defines the role field of the subnet, e.g. 'ACTIVE'. For information about the roles that can be set using this field, see [subnetwork](https://cloud.google.com/compute/docs/reference/rest/v1/subnetworks) in the Compute API documentation.", + "type": "string" + }, "secondaryIpRangeSpecs": { "description": "Optional. A list of secondary IP ranges to be created within the new subnetwork.", "items": { @@ -1030,11 +1048,15 @@ "type": "string" }, "subnetworkUsers": { - "description": "A list of members that are granted the `compute.networkUser` role on the subnet.", + "description": "A list of members that are granted the `roles/servicenetworking.subnetworkAdmin` role on the subnet.", "items": { "type": "string" }, "type": "array" + }, + "useCustomComputeIdempotencyWindow": { + "description": "Optional. Specifies if Service Networking should use a custom time bucket for Arcus idempotency. If false, Service Networking uses a 300 second (5 minute) Arcus idempotency window. If true, Service Networking uses a custom idempotency window provided by the user in field compute_idempotency_window. For more information on how to use, see: go/revisit-sn-idempotency-window", + "type": "boolean" } }, "type": "object" @@ -1116,7 +1138,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -1222,6 +1244,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -1289,6 +1316,125 @@ "properties": {}, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLConfig": { + "description": "Cloud SQL configuration.", + "id": "CloudSQLConfig", + "properties": { + "service": { + "description": "Peering service used for peering with the Cloud SQL project.", + "type": "string" + }, + "umbrellaNetwork": { + "description": "The name of the umbrella network in the Cloud SQL umbrella project.", + "type": "string" + }, + "umbrellaProject": { + "description": "The project number of the Cloud SQL umbrella project.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "type": "string" + } + }, + "type": "object" + }, "Connection": { "description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", "id": "Connection", @@ -1321,6 +1467,13 @@ "description": "Configuration information for a private service access connection.", "id": "ConsumerConfig", "properties": { + "cloudsqlConfigs": { + "description": "Represents one or multiple Cloud SQL configurations.", + "items": { + "$ref": "CloudSQLConfig" + }, + "type": "array" + }, "consumerExportCustomRoutes": { "description": "Export custom routes flag value for peering from consumer to producer.", "type": "boolean" @@ -1366,6 +1519,14 @@ "readOnly": true, "type": "array" }, + "usedIpRanges": { + "description": "Output only. The IP ranges already in use by consumer or producer", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "vpcScReferenceArchitectureEnabled": { "description": "Output only. Indicates whether the VPC Service Controls reference architecture is configured for the producer VPC host network.", "readOnly": true, @@ -1446,7 +1607,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -1456,6 +1617,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CustomError": { "description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", "id": "CustomError", @@ -1639,8 +1811,19 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1660,6 +1843,13 @@ "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1845,6 +2035,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange": { "description": "Allocated IP address ranges for this private service access connection.", "id": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange", @@ -1982,10 +2183,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -2141,6 +2368,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -2187,6 +2441,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -2462,6 +2731,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -2576,6 +2856,17 @@ "properties": {}, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "PolicyBinding": { "description": "Grouping of IAM role and IAM member.", "id": "PolicyBinding", @@ -2591,19 +2882,96 @@ }, "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -2686,7 +3054,7 @@ "id": "RangeReservation", "properties": { "ipPrefixLength": { - "description": "Required. The size of the desired subnet. Use usual CIDR range notation. For example, '30' to find unused x.x.x.x/30 CIDR range. The goal is to determine if one of the allocated ranges has enough free space for a subnet of the requested size.", + "description": "Required. The size of the desired subnet. Use usual CIDR range notation. For example, '29' to find unused x.x.x.x/29 CIDR range. The goal is to determine if one of the allocated ranges has enough free space for a subnet of the requested size. GCE disallows subnets with prefix_length > 29", "format": "int32", "type": "integer" }, @@ -2698,7 +3066,7 @@ "type": "array" }, "secondaryRangeIpPrefixLengths": { - "description": "Optional. The size of the desired secondary ranges for the subnet. Use usual CIDR range notation. For example, '30' to find unused x.x.x.x/30 CIDR range. The goal is to determine that the allocated ranges have enough free space for all the requested secondary ranges.", + "description": "Optional. The size of the desired secondary ranges for the subnet. Use usual CIDR range notation. For example, '29' to find unused x.x.x.x/29 CIDR range. The goal is to determine that the allocated ranges have enough free space for all the requested secondary ranges. GCE disallows subnets with prefix_length > 29", "items": { "format": "int32", "type": "integer" @@ -2796,6 +3164,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "SearchRangeRequest": { "description": "Request to search for an unused range within allocated ranges.", "id": "SearchRangeRequest", @@ -2952,6 +3331,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." diff --git a/etc/api/servicenetworking/v1beta/servicenetworking-api.json b/etc/api/servicenetworking/v1beta/servicenetworking-api.json index 234e69234b..8e725b3959 100644 --- a/etc/api/servicenetworking/v1beta/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1beta/servicenetworking-api.json @@ -307,7 +307,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -477,7 +477,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -583,6 +583,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -644,6 +649,125 @@ }, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLConfig": { + "description": "Cloud SQL configuration.", + "id": "CloudSQLConfig", + "properties": { + "service": { + "description": "Peering service used for peering with the Cloud SQL project.", + "type": "string" + }, + "umbrellaNetwork": { + "description": "The name of the umbrella network in the Cloud SQL umbrella project.", + "type": "string" + }, + "umbrellaProject": { + "description": "The project number of the Cloud SQL umbrella project.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "type": "string" + } + }, + "type": "object" + }, "Connection": { "description": "Represents a private connection resource. A private connection is implemented as a VPC Network Peering connection between a service producer's VPC network and a service consumer's VPC network.", "id": "Connection", @@ -676,6 +800,13 @@ "description": "Configuration information for a private service access connection.", "id": "ConsumerConfig", "properties": { + "cloudsqlConfigs": { + "description": "Represents one or multiple Cloud SQL configurations.", + "items": { + "$ref": "CloudSQLConfig" + }, + "type": "array" + }, "consumerExportCustomRoutes": { "description": "Export custom routes flag value for peering from consumer to producer.", "type": "boolean" @@ -721,6 +852,14 @@ "readOnly": true, "type": "array" }, + "usedIpRanges": { + "description": "Output only. The IP ranges already in use by consumer or producer", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "vpcScReferenceArchitectureEnabled": { "description": "Output only. Indicates whether the VPC Service Controls reference architecture is configured for the producer VPC host network.", "readOnly": true, @@ -789,7 +928,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -799,6 +938,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CustomError": { "description": "Customize service error responses. For example, list any service specific protobuf types that can appear in error detail lists of error responses. Example: custom_error: types: - google.foo.v1.CustomError - google.foo.v1.AnotherError", "id": "CustomError", @@ -960,10 +1110,28 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Endpoint": { "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1149,6 +1317,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange": { "description": "Allocated IP address ranges for this private service access connection.", "id": "GoogleCloudServicenetworkingV1ConsumerConfigReservedRange", @@ -1286,10 +1465,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -1413,6 +1618,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -1459,6 +1691,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -1734,6 +1981,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -1848,6 +2106,17 @@ "properties": {}, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "PolicyBinding": { "description": "Grouping of IAM role and IAM member.", "id": "PolicyBinding", @@ -1863,19 +2132,96 @@ }, "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -2000,6 +2346,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "SearchRangeRequest": { "description": "Request to search for an unused range within allocated ranges.", "id": "SearchRangeRequest", @@ -2133,6 +2490,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." diff --git a/etc/api/serviceusage/v1/serviceusage-api.json b/etc/api/serviceusage/v1/serviceusage-api.json index e60494c85d..c5b8428f97 100644 --- a/etc/api/serviceusage/v1/serviceusage-api.json +++ b/etc/api/serviceusage/v1/serviceusage-api.json @@ -426,7 +426,7 @@ } } }, - "revision": "20220305", + "revision": "20230118", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { @@ -541,7 +541,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -647,6 +647,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -791,6 +796,105 @@ "properties": {}, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "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", @@ -845,7 +949,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -855,6 +959,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CreateAdminQuotaPolicyMetadata": { "description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by CreateAdminQuotaPolicy.", "id": "CreateAdminQuotaPolicyMetadata", @@ -1010,8 +1125,19 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1052,6 +1178,13 @@ "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1266,6 +1399,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "GoogleApiService": { "description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", "id": "GoogleApiService", @@ -1369,6 +1513,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." @@ -1675,10 +1823,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -1824,6 +1998,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -1870,6 +2071,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -2145,6 +2361,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -2246,19 +2473,107 @@ }, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -2356,6 +2671,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "ServiceIdentity": { "description": "Service identity for a service. This is the identity that service producer should use to access consumer resources.", "id": "ServiceIdentity", diff --git a/etc/api/serviceusage/v1beta1/serviceusage-api.json b/etc/api/serviceusage/v1beta1/serviceusage-api.json index 416057f9b2..ddb4085d6d 100644 --- a/etc/api/serviceusage/v1beta1/serviceusage-api.json +++ b/etc/api/serviceusage/v1beta1/serviceusage-api.json @@ -959,7 +959,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { @@ -1074,7 +1074,7 @@ "type": "string" }, "jwtLocations": { - "description": "Defines the locations to extract the JWT. JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", + "description": "Defines the locations to extract the JWT. For now it is only used by the Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) JWT locations can be one of HTTP headers, URL query parameters or cookies. The rule is that the first match wins. If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter Default locations can be specified as followings: jwt_locations: - header: Authorization value_prefix: \"Bearer \" - header: x-goog-iap-jwt-assertion - query: access_token", "items": { "$ref": "JwtLocation" }, @@ -1180,6 +1180,11 @@ "description": "The JWT audience is used when generating a JWT ID token for the backend. This ID token will be added in the HTTP \"authorization\" header, and sent to the backend.", "type": "string" }, + "minDeadline": { + "description": "Deprecated, do not use.", + "format": "double", + "type": "number" + }, "operationDeadline": { "description": "The number of seconds to wait for the completion of a long running operation. The default is no deadline.", "format": "double", @@ -1304,6 +1309,105 @@ }, "type": "object" }, + "ClientLibrarySettings": { + "description": "Details about how and where to publish client libraries.", + "id": "ClientLibrarySettings", + "properties": { + "cppSettings": { + "$ref": "CppSettings", + "description": "Settings for C++ client libraries." + }, + "dotnetSettings": { + "$ref": "DotnetSettings", + "description": "Settings for .NET client libraries." + }, + "goSettings": { + "$ref": "GoSettings", + "description": "Settings for Go client libraries." + }, + "javaSettings": { + "$ref": "JavaSettings", + "description": "Settings for legacy Java features, supported in the Service YAML." + }, + "launchStage": { + "description": "Launch stage of this version of the API.", + "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" + }, + "nodeSettings": { + "$ref": "NodeSettings", + "description": "Settings for Node client libraries." + }, + "phpSettings": { + "$ref": "PhpSettings", + "description": "Settings for PHP client libraries." + }, + "pythonSettings": { + "$ref": "PythonSettings", + "description": "Settings for Python client libraries." + }, + "restNumericEnums": { + "description": "When using transport=rest, the client request will encode enums as numbers rather than strings.", + "type": "boolean" + }, + "rubySettings": { + "$ref": "RubySettings", + "description": "Settings for Ruby client libraries." + }, + "version": { + "description": "Version of the API to apply these settings to.", + "type": "string" + } + }, + "type": "object" + }, + "CommonLanguageSettings": { + "description": "Required information for every language.", + "id": "CommonLanguageSettings", + "properties": { + "destinations": { + "description": "The destination where API teams want this client library to be published.", + "items": { + "enum": [ + "CLIENT_LIBRARY_DESTINATION_UNSPECIFIED", + "GITHUB", + "PACKAGE_MANAGER" + ], + "enumDescriptions": [ + "Client libraries will neither be generated nor published to package managers.", + "Generate the client library in a repo under github.com/googleapis, but don't publish it to package managers.", + "Publish the library to package managers like nuget.org and npmjs.com." + ], + "type": "string" + }, + "type": "array" + }, + "referenceDocsUri": { + "description": "Link to automatically generated reference documentation. Example: https://cloud.google.com/nodejs/docs/reference/asset/latest", + "type": "string" + } + }, + "type": "object" + }, "ConsumerQuotaLimit": { "description": "Consumer quota settings for a quota limit.", "id": "ConsumerQuotaLimit", @@ -1436,7 +1540,7 @@ "type": "object" }, "Control": { - "description": "Selects and configures the service controller used by the service. The service controller handles two things: - **What is allowed:** for each API request, Chemist checks the project status, activation status, abuse status, billing status, service status, location restrictions, VPC Service Controls, SuperQuota, and other policies. - **What has happened:** for each API response, Chemist reports the telemetry data to analytics, auditing, billing, eventing, logging, monitoring, sawmill, and tracing. Chemist also accepts telemetry data not associated with API traffic, such as billing metrics. Example: control: environment: servicecontrol.googleapis.com", + "description": "Selects and configures the service controller used by the service. Example: control: environment: servicecontrol.googleapis.com", "id": "Control", "properties": { "environment": { @@ -1446,6 +1550,17 @@ }, "type": "object" }, + "CppSettings": { + "description": "Settings for C++ client libraries.", + "id": "CppSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "CreateAdminQuotaPolicyMetadata": { "description": "Metadata message that provides information such as progress, partial failures, and similar information on each GetOperation call of LRO returned by CreateAdminQuotaPolicy.", "id": "CreateAdminQuotaPolicyMetadata", @@ -1582,8 +1697,19 @@ }, "type": "object" }, + "DotnetSettings": { + "description": "Settings for Dotnet client libraries.", + "id": "DotnetSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1624,6 +1750,13 @@ "description": "`Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true", "id": "Endpoint", "properties": { + "aliases": { + "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" + }, + "type": "array" + }, "allowCors": { "description": "Allowing [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP OPTIONS requests. The response will be used by the browser to determine whether the subsequent cross-origin request is allowed to proceed.", "type": "boolean" @@ -1838,6 +1971,17 @@ }, "type": "object" }, + "GoSettings": { + "description": "Settings for Go client libraries.", + "id": "GoSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "GoogleApiService": { "description": "`Service` is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. For more information, see each proto message definition. Example: type: google.api.Service name: calendar.googleapis.com title: Google Calendar API apis: - name: google.calendar.v3.Calendar visibility: rules: - selector: \"google.calendar.v3.*\" restriction: PREVIEW backend: rules: - selector: \"google.calendar.v3.*\" address: calendar.example.com authentication: providers: - id: google_calendar_auth jwks_uri: https://www.googleapis.com/oauth2/v1/certs issuer: https://securetoken.google.com rules: - selector: \"*\" requirements: provider_id: google_calendar_auth", "id": "GoogleApiService", @@ -1941,6 +2085,10 @@ "description": "The Google project that owns this service.", "type": "string" }, + "publishing": { + "$ref": "Publishing", + "description": "Settings for [Google Cloud Client libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) generated from APIs defined as protocol buffers." + }, "quota": { "$ref": "Quota", "description": "Quota configuration." @@ -2311,10 +2459,36 @@ }, "type": "object" }, + "JavaSettings": { + "description": "Settings for Java client libraries.", + "id": "JavaSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + }, + "libraryPackage": { + "description": "The package name to use in Java. Clobbers the java_package option set in the protobuf. This should be used **only** by APIs who have already set the language_settings.java.package_name\" field in gapic.yaml. API teams should use the protobuf java_package option where possible. Example of a YAML configuration:: publishing: java_settings: library_package: com.google.cloud.pubsub.v1", + "type": "string" + }, + "serviceClassNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Configure the Java class name to use instead of the service's for its corresponding generated GAPIC client. Keys are fully-qualified service names as they appear in the protobuf (including the full the language_settings.java.interface_names\" field in gapic.yaml. API teams should otherwise use the service name as it appears in the protobuf. Example of a YAML configuration:: publishing: java_settings: service_class_names: - google.pubsub.v1.Publisher: TopicAdmin - google.pubsub.v1.Subscriber: SubscriptionAdmin", + "type": "object" + } + }, + "type": "object" + }, "JwtLocation": { "description": "Specifies a location to extract JWT from an API request.", "id": "JwtLocation", "properties": { + "cookie": { + "description": "Specifies cookie name to extract JWT token.", + "type": "string" + }, "header": { "description": "Specifies HTTP header name to extract JWT token.", "type": "string" @@ -2514,6 +2688,33 @@ }, "type": "object" }, + "LongRunning": { + "description": "Describes settings to use when generating API methods that use the long-running operation pattern. All default values below are from those used in the client library generators (e.g. [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).", + "id": "LongRunning", + "properties": { + "initialPollDelay": { + "description": "Initial delay after which the first poll request will be made. Default value: 5 seconds.", + "format": "google-duration", + "type": "string" + }, + "maxPollDelay": { + "description": "Maximum time between two subsequent poll requests. Default value: 45 seconds.", + "format": "google-duration", + "type": "string" + }, + "pollDelayMultiplier": { + "description": "Multiplier to gradually increase delay between subsequent polls until it reaches max_poll_delay. Default value: 1.5.", + "format": "float", + "type": "number" + }, + "totalPollTimeout": { + "description": "Total polling timeout. Default value: 5 minutes.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Method": { "description": "Method represents a method of an API interface.", "id": "Method", @@ -2560,6 +2761,21 @@ }, "type": "object" }, + "MethodSettings": { + "description": "Describes the generator configuration for a method.", + "id": "MethodSettings", + "properties": { + "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" + }, + "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.", + "type": "string" + } + }, + "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", @@ -2835,6 +3051,17 @@ }, "type": "object" }, + "NodeSettings": { + "description": "Settings for Node client libraries.", + "id": "NodeSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "OAuthRequirements": { "description": "OAuth scopes are a way to define data and permissions on data. For example, there are scopes defined for \"Read-only access to Google Calendar\" and \"Access to Cloud Platform\". Users can consent to a scope for an application, giving it permission to access that data on their behalf. OAuth scope specifications should be fairly coarse grained; a user will need to see and understand the text description of what your scope means. In most cases: use one or at most two OAuth scopes for an entire family of products. If your product has multiple APIs, you should probably be sharing the OAuth scope across all of those APIs. When you need finer grained OAuth consent screens: talk with your product management about how developers will use them in practice. Please note that even though each of the canonical scopes is enough for a request to be accepted and passed to the backend, a request can still fail due to the backend requiring additional scopes or permissions.", "id": "OAuthRequirements", @@ -2950,19 +3177,107 @@ }, "type": "object" }, + "PhpSettings": { + "description": "Settings for Php client libraries.", + "id": "PhpSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "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", + "properties": { + "apiShortName": { + "description": "Used as a tracking tag when collecting data about the APIs developer relations artifacts like docs, packages delivered to package managers, etc. Example: \"speech\".", + "type": "string" + }, + "codeownerGithubTeams": { + "description": "GitHub teams to be added to CODEOWNERS in the directory in GitHub containing source code for the client libraries for this API.", + "items": { + "type": "string" + }, + "type": "array" + }, + "docTagPrefix": { + "description": "A prefix used in sample code when demarking regions to be included in documentation.", + "type": "string" + }, + "documentationUri": { + "description": "Link to product home page. Example: https://cloud.google.com/asset-inventory/docs/overview", + "type": "string" + }, + "githubLabel": { + "description": "GitHub label to apply to issues and pull requests opened for this API.", + "type": "string" + }, + "librarySettings": { + "description": "Client library settings. If the same version string appears multiple times in this list, then the last one wins. Settings from earlier settings with the same version string are discarded.", + "items": { + "$ref": "ClientLibrarySettings" + }, + "type": "array" + }, + "methodSettings": { + "description": "A list of API method settings, e.g. the behavior for methods that use the long-running operation pattern.", + "items": { + "$ref": "MethodSettings" + }, + "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", + "type": "string" + }, + "organization": { + "description": "For whom the client library is being published.", + "enum": [ + "CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED", + "CLOUD", + "ADS", + "PHOTOS", + "STREET_VIEW" + ], + "enumDescriptions": [ + "Not useful.", + "Google Cloud Platform Org.", + "Ads (Advertising) Org.", + "Photos Org.", + "Street View Org." + ], + "type": "string" + } + }, + "type": "object" + }, + "PythonSettings": { + "description": "Settings for Python client libraries.", + "id": "PythonSettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Quota": { - "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 # The metric rules bind all methods to the read_calls metric, # except for the UpdateBook and DeleteBook methods. These two methods # are mapped to the write_calls metric, with the UpdateBook method # consuming at twice rate as the DeleteBook method. metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", + "description": "Quota configuration helps to achieve fairness and budgeting in service usage. The metric based quota configuration works this way: - The service configuration defines a set of metrics. - For API calls, the quota.metric_rules maps methods to metrics with corresponding costs. - The quota.limits defines limits on the metrics, which will be used for quota checks at runtime. An example quota configuration in yaml format: quota: limits: - name: apiWriteQpsPerProject metric: library.googleapis.com/write_calls unit: \"1/min/{project}\" # rate limit for consumer projects values: STANDARD: 10000 (The metric rules bind all methods to the read_calls metric, except for the UpdateBook and DeleteBook methods. These two methods are mapped to the write_calls metric, with the UpdateBook method consuming at twice rate as the DeleteBook method.) metric_rules: - selector: \"*\" metric_costs: library.googleapis.com/read_calls: 1 - selector: google.example.library.v1.LibraryService.UpdateBook metric_costs: library.googleapis.com/write_calls: 2 - selector: google.example.library.v1.LibraryService.DeleteBook metric_costs: library.googleapis.com/write_calls: 1 Corresponding Metric definition: metrics: - name: library.googleapis.com/read_calls display_name: Read requests metric_kind: DELTA value_type: INT64 - name: library.googleapis.com/write_calls display_name: Write requests metric_kind: DELTA value_type: INT64 ", "id": "Quota", "properties": { "limits": { - "description": "List of `QuotaLimit` definitions for the service.", + "description": "List of QuotaLimit definitions for the service.", "items": { "$ref": "QuotaLimit" }, "type": "array" }, "metricRules": { - "description": "List of `MetricRule` definitions, each one mapping a selected method to one or more metrics.", + "description": "List of MetricRule definitions, each one mapping a selected method to one or more metrics.", "items": { "$ref": "MetricRule" }, @@ -3096,6 +3411,17 @@ }, "type": "object" }, + "RubySettings": { + "description": "Settings for Ruby client libraries.", + "id": "RubySettings", + "properties": { + "common": { + "$ref": "CommonLanguageSettings", + "description": "Some settings." + } + }, + "type": "object" + }, "Service": { "description": "A service that is available for use by the consumer.", "id": "Service", diff --git a/etc/api/shared.yaml b/etc/api/shared.yaml index 36145952c4..59e9a86469 100644 --- a/etc/api/shared.yaml +++ b/etc/api/shared.yaml @@ -1,6 +1,8 @@ api: credentials: '{"installed":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"hCsslbCUyfehWMmbkG8vTYxG","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","oob"],"client_x509_cert_url":"","client_id":"620010449518-9ngf7o4dhs0dka470npqvor6dc5lqb9b.apps.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}' blacklist: + # recursive type + - analyticsadmin1_alpha # ampersand & in type name - mybusinessqanda # recursive type diff --git a/etc/api/sheets/v4/sheets-api.json b/etc/api/sheets/v4/sheets-api.json index 589ee529be..6b28d14e33 100644 --- a/etc/api/sheets/v4/sheets-api.json +++ b/etc/api/sheets/v4/sheets-api.json @@ -169,7 +169,7 @@ ] }, "get": { - "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids will not be returned. You can include grid data one of two ways: * Specify a field mask listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, it is recommended to retrieve only the specific fields of the spreadsheet that you want. To retrieve only subsets of the spreadsheet, use the ranges URL parameter. Multiple ranges can be specified. Limiting the range will return only the portions of the spreadsheet that intersect the requested ranges. Ranges are specified using A1 notation.", + "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. By default, data within grids is not returned. You can include grid data in one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData URL parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want. To retrieve only subsets of spreadsheet data, use the ranges URL parameter. Ranges are specified using [A1 notation](/sheets/api/guides/concepts#cell). You can define a single cell (for example, `A1`) or multiple cells (for example, `A1:D5`). You can also get cells from other sheets within the same spreadsheet (for example, `Sheet2!A1:C4`) or retrieve multiple ranges at once (for example, `?ranges=A1:D5&ranges=Sheet2!A1:C4`). Limiting the range returns only the portions of the spreadsheet that intersect the requested ranges.", "flatPath": "v4/spreadsheets/{spreadsheetId}", "httpMethod": "GET", "id": "sheets.spreadsheets.get", @@ -208,7 +208,7 @@ ] }, "getByDataFilter": { - "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters will return the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids will not be returned. You can include grid data one of two ways: * Specify a field mask listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, it is recommended to retrieve only the specific fields of the spreadsheet that you want.", + "description": "Returns the spreadsheet at the given ID. The caller must specify the spreadsheet ID. This method differs from GetSpreadsheet in that it allows selecting which subsets of spreadsheet data to return by specifying a dataFilters parameter. Multiple DataFilters can be specified. Specifying one or more data filters returns the portions of the spreadsheet that intersect ranges matched by any of the filters. By default, data within grids is not returned. You can include grid data one of 2 ways: * Specify a [field mask](https://developers.google.com/sheets/api/guides/field-masks) listing your desired fields using the `fields` URL parameter in HTTP * Set the includeGridData parameter to true. If a field mask is set, the `includeGridData` parameter is ignored For large spreadsheets, as a best practice, retrieve only the specific spreadsheet fields that you want.", "flatPath": "v4/spreadsheets/{spreadsheetId}:getByDataFilter", "httpMethod": "POST", "id": "sheets.spreadsheets.getByDataFilter", @@ -377,7 +377,7 @@ "type": "string" }, "range": { - "description": "The A1 notation of a range to search for a logical table of data. Values are appended after the last row of the table.", + "description": "The [A1 notation](/sheets/api/guides/concepts#cell) of a range to search for a logical table of data. Values are appended after the last row of the table.", "location": "path", "required": true, "type": "string" @@ -446,7 +446,7 @@ ] }, "batchClear": { - "description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting, data validation, etc..) are kept.", + "description": "Clears one or more ranges of values from a spreadsheet. The caller must specify the spreadsheet ID and one or more ranges. Only values are cleared -- all other properties of the cell (such as formatting and data validation) are kept.", "flatPath": "v4/spreadsheets/{spreadsheetId}/values:batchClear", "httpMethod": "POST", "id": "sheets.spreadsheets.values.batchClear", @@ -526,7 +526,7 @@ "type": "string" }, "majorDimension": { - "description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", + "description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `ranges=[\"A1:B2\"],majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `ranges=[\"A1:B2\"],majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", "enum": [ "DIMENSION_UNSPECIFIED", "ROWS", @@ -541,7 +541,7 @@ "type": "string" }, "ranges": { - "description": "The A1 notation or R1C1 notation of the range to retrieve values from.", + "description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the range to retrieve values from.", "location": "query", "repeated": true, "type": "string" @@ -678,7 +678,7 @@ ], "parameters": { "range": { - "description": "The A1 notation or R1C1 notation of the values to clear.", + "description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the values to clear.", "location": "path", "required": true, "type": "string" @@ -727,7 +727,7 @@ "type": "string" }, "majorDimension": { - "description": "The major dimension that results should use. For example, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", + "description": "The major dimension that results should use. For example, if the spreadsheet data in Sheet1 is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=Sheet1!A1:B2?majorDimension=ROWS` returns `[[1,2],[3,4]]`, whereas requesting `range=Sheet1!A1:B2?majorDimension=COLUMNS` returns `[[1,3],[2,4]]`.", "enum": [ "DIMENSION_UNSPECIFIED", "ROWS", @@ -742,7 +742,7 @@ "type": "string" }, "range": { - "description": "The A1 notation or R1C1 notation of the range to retrieve values from.", + "description": "The [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell) of the range to retrieve values from.", "location": "path", "required": true, "type": "string" @@ -797,7 +797,7 @@ "type": "boolean" }, "range": { - "description": "The A1 notation of the values to update.", + "description": "The [A1 notation](/sheets/api/guides/concepts#cell) of the values to update.", "location": "path", "required": true, "type": "string" @@ -870,7 +870,7 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://sheets.googleapis.com/", "schemas": { "AddBandingRequest": { @@ -1232,7 +1232,7 @@ "properties": { "firstBandColor": { "$ref": "Color", - "description": "The first color that is alternating. (Required)" + "description": "The first color that is alternating. (Required) Deprecated: Use first_band_color_style." }, "firstBandColorStyle": { "$ref": "ColorStyle", @@ -1240,7 +1240,7 @@ }, "footerColor": { "$ref": "Color", - "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." + "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": { "$ref": "ColorStyle", @@ -1248,7 +1248,7 @@ }, "headerColor": { "$ref": "Color", - "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." + "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": { "$ref": "ColorStyle", @@ -1256,7 +1256,7 @@ }, "secondBandColor": { "$ref": "Color", - "description": "The second color that is alternating. (Required)" + "description": "The second color that is alternating. (Required) Deprecated: Use second_band_color_style." }, "secondBandColorStyle": { "$ref": "ColorStyle", @@ -1289,7 +1289,7 @@ }, "negativeColor": { "$ref": "Color", - "description": "Color to be used, in case baseline value represents a negative change for key value. This field is optional." + "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": { "$ref": "ColorStyle", @@ -1301,7 +1301,7 @@ }, "positiveColor": { "$ref": "Color", - "description": "Color to be used, in case baseline value represents a positive change for key value. This field is optional." + "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": { "$ref": "ColorStyle", @@ -1374,7 +1374,7 @@ "properties": { "color": { "$ref": "Color", - "description": "The color for elements (such as bars, lines, and points) associated with this series. If empty, a default color is used." + "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": { "$ref": "ColorStyle", @@ -1607,7 +1607,7 @@ "properties": { "color": { "$ref": "Color", - "description": "Color of the series data point. If empty, the series default is used." + "description": "Color of the series data point. If empty, the series default is used. Deprecated: Use color_style." }, "colorStyle": { "$ref": "ColorStyle", @@ -1644,7 +1644,7 @@ "id": "BatchClearValuesByDataFilterResponse", "properties": { "clearedRanges": { - "description": "The ranges that were cleared, in A1 notation. If the requests are for an unbounded range or a ranger larger than the bounds of the sheet, this is the actual ranges that were cleared, bounded to the sheet's limits.", + "description": "The ranges that were cleared, in [A1 notation](/sheets/api/guides/concepts#cell). If the requests are for an unbounded range or a ranger larger than the bounds of the sheet, this is the actual ranges that were cleared, bounded to the sheet's limits.", "items": { "type": "string" }, @@ -1662,7 +1662,7 @@ "id": "BatchClearValuesRequest", "properties": { "ranges": { - "description": "The ranges to clear, in A1 or R1C1 notation.", + "description": "The ranges to clear, in [A1 notation or R1C1 notation](/sheets/api/guides/concepts#cell).", "items": { "type": "string" }, @@ -2178,7 +2178,7 @@ "properties": { "color": { "$ref": "Color", - "description": "The color of the border." + "description": "The color of the border. Deprecated: Use color_style." }, "colorStyle": { "$ref": "ColorStyle", @@ -2245,7 +2245,7 @@ "properties": { "bubbleBorderColor": { "$ref": "Color", - "description": "The bubble border color." + "description": "The bubble border color. Deprecated: Use bubble_border_color_style." }, "bubbleBorderColorStyle": { "$ref": "ColorStyle", @@ -2447,7 +2447,7 @@ "properties": { "backgroundColor": { "$ref": "Color", - "description": "The background color of the cell." + "description": "The background color of the cell. Deprecated: Use background_color_style." }, "backgroundColorStyle": { "$ref": "ColorStyle", @@ -2474,7 +2474,7 @@ "type": "string" }, "hyperlinkDisplayType": { - "description": "How a hyperlink, if it exists, should be displayed in the cell.", + "description": "If one exists, how a hyperlink should be displayed in the cell.", "enum": [ "HYPERLINK_DISPLAY_TYPE_UNSPECIFIED", "LINKED", @@ -2511,11 +2511,11 @@ }, "textFormat": { "$ref": "TextFormat", - "description": "The format of the text in the cell (unless overridden by a format run). Setting a cell-level link here will clear the cell's existing links. Setting the link field in a TextFormatRun will take precedence over the cell-level link." + "description": "The format of the text in the cell (unless overridden by a format run). Setting a cell-level link here clears the cell's existing links. Setting the link field in a TextFormatRun takes precedence over the cell-level link." }, "textRotation": { "$ref": "TextRotation", - "description": "The rotation applied to text in a cell" + "description": "The rotation applied to text in the cell." }, "verticalAlignment": { "description": "The vertical alignment of the value in the cell.", @@ -2751,7 +2751,7 @@ }, "backgroundColor": { "$ref": "Color", - "description": "The background color of the entire chart. Not applicable to Org charts." + "description": "The background color of the entire chart. Not applicable to Org charts. Deprecated: Use background_color_style." }, "backgroundColorStyle": { "$ref": "ColorStyle", @@ -2930,7 +2930,7 @@ "properties": { "rgbColor": { "$ref": "Color", - "description": "RGB color." + "description": "RGB color. The [`alpha`](/sheets/api/reference/rest/v4/spreadsheets/other#Color.FIELDS.alpha) value in the [`Color`](/sheets/api/reference/rest/v4/spreadsheets/other#color) object isn't generally supported." }, "themeColor": { "description": "Theme color.", @@ -3147,6 +3147,7 @@ "DATA_EXECUTION_ERROR_CODE_UNSPECIFIED", "TIMED_OUT", "TOO_MANY_ROWS", + "TOO_MANY_COLUMNS", "TOO_MANY_CELLS", "ENGINE", "PARAMETER_INVALID", @@ -3167,6 +3168,7 @@ "Default value, do not use.", "The data execution timed out.", "The data execution returns more rows than the limit.", + "The data execution returns more columns than the limit.", "The data execution returns more cells than the limit.", "Error is received from the backend data execution engine (e.g. BigQuery). Check error_message for details.", "One or some of the provided data source parameters are invalid.", @@ -4340,7 +4342,7 @@ "properties": { "color": { "$ref": "Color", - "description": "The color of the border." + "description": "The color of the border. Deprecated: Use color_style." }, "colorStyle": { "$ref": "ColorStyle", @@ -4453,7 +4455,7 @@ }, "visibleBackgroundColor": { "$ref": "Color", - "description": "The background fill color to filter by; only cells with this fill color are shown. Mutually exclusive with visible_foreground_color." + "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": { "$ref": "ColorStyle", @@ -4461,7 +4463,7 @@ }, "visibleForegroundColor": { "$ref": "Color", - "description": "The foreground color to filter by; only cells with this foreground color are shown. Mutually exclusive with visible_background_color." + "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": { "$ref": "ColorStyle", @@ -4748,7 +4750,7 @@ "type": "object" }, "GridRange": { - "description": "A range on a sheet. All indexes are zero-based. Indexes are half open, i.e. the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if `\"Sheet1\"` is sheet ID 0, then: `Sheet1!A1:A1 == sheet_id: 0, start_row_index: 0, end_row_index: 1, start_column_index: 0, end_column_index: 1` `Sheet1!A3:B4 == sheet_id: 0, start_row_index: 2, end_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1!A:B == sheet_id: 0, start_column_index: 0, end_column_index: 2` `Sheet1!A5:B == sheet_id: 0, start_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1 == sheet_id:0` The start index must always be less than or equal to the end index. If the start index equals the end index, then the range is empty. Empty ranges are typically not meaningful and are usually rendered in the UI as `#REF!`.", + "description": "A range on a sheet. All indexes are zero-based. Indexes are half open, i.e. the start index is inclusive and the end index is exclusive -- [start_index, end_index). Missing indexes indicate the range is unbounded on that side. For example, if `\"Sheet1\"` is sheet ID 123456, then: `Sheet1!A1:A1 == sheet_id: 123456, start_row_index: 0, end_row_index: 1, start_column_index: 0, end_column_index: 1` `Sheet1!A3:B4 == sheet_id: 123456, start_row_index: 2, end_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1!A:B == sheet_id: 123456, start_column_index: 0, end_column_index: 2` `Sheet1!A5:B == sheet_id: 123456, start_row_index: 4, start_column_index: 0, end_column_index: 2` `Sheet1 == sheet_id: 123456` The start index must always be less than or equal to the end index. If the start index equals the end index, then the range is empty. Empty ranges are typically not meaningful and are usually rendered in the UI as `#REF!`.", "id": "GridRange", "properties": { "endColumnIndex": { @@ -4857,7 +4859,7 @@ "properties": { "barColor": { "$ref": "Color", - "description": "The color of the column representing this series in each bucket. This field is optional." + "description": "The color of the column representing this series in each bucket. This field is optional. Deprecated: Use bar_color_style." }, "barColorStyle": { "$ref": "ColorStyle", @@ -4916,7 +4918,7 @@ "properties": { "color": { "$ref": "Color", - "description": "The color this interpolation point should use." + "description": "The color this interpolation point should use. Deprecated: Use color_style." }, "colorStyle": { "$ref": "ColorStyle", @@ -5222,7 +5224,7 @@ }, "nodeColor": { "$ref": "Color", - "description": "The color of the org chart nodes." + "description": "The color of the org chart nodes. Deprecated: Use node_color_style." }, "nodeColorStyle": { "$ref": "ColorStyle", @@ -5250,7 +5252,7 @@ }, "selectedNodeColor": { "$ref": "Color", - "description": "The color of the selected org chart nodes." + "description": "The color of the selected org chart nodes. Deprecated: Use selected_node_color_style." }, "selectedNodeColorStyle": { "$ref": "ColorStyle", @@ -6537,7 +6539,7 @@ }, "tabColor": { "$ref": "Color", - "description": "The color of the tab in the UI." + "description": "The color of the tab in the UI. Deprecated: Use tab_color_style." }, "tabColorStyle": { "$ref": "ColorStyle", @@ -6580,7 +6582,7 @@ }, "backgroundColor": { "$ref": "Color", - "description": "The background color of the slicer." + "description": "The background color of the slicer. Deprecated: Use background_color_style." }, "backgroundColorStyle": { "$ref": "ColorStyle", @@ -6650,7 +6652,7 @@ "properties": { "backgroundColor": { "$ref": "Color", - "description": "The background fill color to sort by; cells with this fill color are sorted to the top. Mutually exclusive with foreground_color." + "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": { "$ref": "ColorStyle", @@ -6667,7 +6669,7 @@ }, "foregroundColor": { "$ref": "Color", - "description": "The foreground color to sort by; cells with this foreground color are sorted to the top. Mutually exclusive with background_color." + "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": { "$ref": "ColorStyle", @@ -6859,7 +6861,7 @@ }, "foregroundColor": { "$ref": "Color", - "description": "The foreground color of the text." + "description": "The foreground color of the text. Deprecated: Use foreground_color_style." }, "foregroundColorStyle": { "$ref": "ColorStyle", @@ -7048,7 +7050,7 @@ "properties": { "maxValueColor": { "$ref": "Color", - "description": "The background color for cells with a color value greater than or equal to maxValue. Defaults to #109618 if not specified." + "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": { "$ref": "ColorStyle", @@ -7056,7 +7058,7 @@ }, "midValueColor": { "$ref": "Color", - "description": "The background color for cells with a color value at the midpoint between minValue and maxValue. Defaults to #efe6dc if not specified." + "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": { "$ref": "ColorStyle", @@ -7064,7 +7066,7 @@ }, "minValueColor": { "$ref": "Color", - "description": "The background color for cells with a color value less than or equal to minValue. Defaults to #dc3912 if not specified." + "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": { "$ref": "ColorStyle", @@ -7072,7 +7074,7 @@ }, "noDataColor": { "$ref": "Color", - "description": "The background color for cells that have no color data associated with them. Defaults to #000000 if not specified." + "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": { "$ref": "ColorStyle", @@ -7095,7 +7097,7 @@ }, "headerColor": { "$ref": "Color", - "description": "The background color for header cells." + "description": "The background color for header cells. Deprecated: Use header_color_style." }, "headerColorStyle": { "$ref": "ColorStyle", @@ -7608,7 +7610,7 @@ "description": "The values of the cells in the range matched by the dataFilter after all updates were applied. This is only included if the request's `includeValuesInResponse` field was `true`." }, "updatedRange": { - "description": "The range (in A1 notation) that updates were applied to.", + "description": "The range (in [A1 notation](/sheets/api/guides/concepts#cell)) that updates were applied to.", "type": "string" }, "updatedRows": { @@ -7672,7 +7674,7 @@ "type": "string" }, "range": { - "description": "The range the values cover, in A1 notation. For output, this range indicates the entire requested range, even though the values will exclude trailing rows and columns. When appending values, this field represents the range to search for a table, after which values will be appended.", + "description": "The range the values cover, in [A1 notation](/sheets/api/guides/concepts#cell). For output, this range indicates the entire requested range, even though the values will exclude trailing rows and columns. When appending values, this field represents the range to search for a table, after which values will be appended.", "type": "string" }, "values": { @@ -7694,7 +7696,7 @@ "properties": { "color": { "$ref": "Color", - "description": "The color of the column." + "description": "The color of the column. Deprecated: Use color_style." }, "colorStyle": { "$ref": "ColorStyle", diff --git a/etc/api/slides/v1/slides-api.json b/etc/api/slides/v1/slides-api.json index 1c39c2e4e3..78bbf218ef 100644 --- a/etc/api/slides/v1/slides-api.json +++ b/etc/api/slides/v1/slides-api.json @@ -313,7 +313,7 @@ } } }, - "revision": "20220301", + "revision": "20230119", "rootUrl": "https://slides.googleapis.com/", "schemas": { "AffineTransform": { @@ -532,14 +532,14 @@ "properties": { "elementProperties": { "$ref": "PageElementProperties", - "description": "The element properties for the image. When the aspect ratio of the provided size does not match the image aspect ratio, the image is scaled and centered with respect to the size in order to maintain aspect ratio. The provided transform is applied after this operation. The PageElementProperties.size property is optional. If you don't specify the size, the default size of the image is used. The PageElementProperties.transform property is optional. If you don't specify a transform, the image will be placed at the top left corner of the page." + "description": "The element properties for the image. When the aspect ratio of the provided size does not match the image aspect ratio, the image is scaled and centered with respect to the size in order to maintain the aspect ratio. The provided transform is applied after this operation. The PageElementProperties.size property is optional. If you don't specify the size, the default size of the image is used. The PageElementProperties.transform property is optional. If you don't specify a transform, the image will be placed at the top-left corner of the page." }, "objectId": { "description": "A user-supplied object ID. If you specify an ID, it must be unique among all pages and page elements in the presentation. The ID must start with an alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less than 5 or greater than 50. If you don't specify an ID, a unique one is generated.", "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 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URL can be at most 2 kB in length. The URL itself is saved with the image, and exposed via 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 can be up to 2 KB in length. The URL is saved with the image, and exposed through the Image.source_url field.", "type": "string" } }, @@ -1037,20 +1037,20 @@ "type": "object" }, "CreateSlideRequest": { - "description": "Creates a new slide.", + "description": "Creates a slide.", "id": "CreateSlideRequest", "properties": { "insertionIndex": { - "description": "The optional zero-based index indicating where to insert the slides. If you don't specify an index, the new slide is created at the end.", + "description": "The optional zero-based index indicating where to insert the slides. If you don't specify an index, the slide is created at the end.", "format": "int32", "type": "integer" }, "objectId": { - "description": "A user-supplied object ID. If you specify an ID, it must be unique among all pages and page elements in the presentation. The ID must start with an alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less than 5 or greater than 50. If you don't specify an ID, a unique one is generated.", + "description": "A user-supplied object ID. If you specify an ID, it must be unique among all pages and page elements in the presentation. The ID must start with an alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The ID length must be between 5 and 50 characters, inclusive. If you don't specify an ID, a unique one is generated.", "type": "string" }, "placeholderIdMappings": { - "description": "An optional list of object ID mappings from the placeholder(s) on the layout to the placeholder(s) that will be created on the new slide from that specified layout. Can only be used when `slide_layout_reference` is specified.", + "description": "An optional list of object ID mappings from the placeholder(s) on the layout to the placeholders that are created on the slide from the specified layout. Can only be used when `slide_layout_reference` is specified.", "items": { "$ref": "LayoutPlaceholderIdMapping" }, @@ -1058,7 +1058,7 @@ }, "slideLayoutReference": { "$ref": "LayoutReference", - "description": "Layout reference of the slide to be inserted, based on the *current master*, which is one of the following: - The master of the previous slide index. - The master of the first slide, if the insertion_index is zero. - The first master in the presentation, if there are no slides. If the LayoutReference is not found in the current master, a 400 bad request error is returned. If you don't specify a layout reference, then the new slide will use the predefined layout `BLANK`." + "description": "Layout reference of the slide to be inserted, based on the *current master*, which is one of the following: - The master of the previous slide index. - The master of the first slide, if the insertion_index is zero. - The first master in the presentation, if there are no slides. If the LayoutReference is not found in the current master, a 400 bad request error is returned. If you don't specify a layout reference, the slide uses the predefined `BLANK` layout." } }, "type": "object" @@ -2054,7 +2054,7 @@ "type": "string" }, "revisionId": { - "description": "The revision ID of the presentation containing this page. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes.", + "description": "Output only. The revision ID of the presentation. Can be used in update requests to assert the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The revision ID is not a sequential number but an opaque string. The format of the revision ID might change over time. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated. However, a changed ID can also be due to internal factors such as ID format changes.", "type": "string" }, "slideProperties": { @@ -2372,7 +2372,7 @@ "type": "string" }, "revisionId": { - "description": "The revision ID of the presentation. Can be used in update requests to assert that the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated; however, a changed ID can also be due to internal factors such as ID format changes.", + "description": "Output only. The revision ID of the presentation. Can be used in update requests to assert the presentation revision hasn't changed since the last read operation. Only populated if the user has edit access to the presentation. The revision ID is not a sequential number but a nebulous string. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the presentation has not changed. Conversely, a changed ID (for the same presentation and user) usually means the presentation has been updated. However, a changed ID can also be due to internal factors such as ID format changes.", "type": "string" }, "slides": { @@ -2523,7 +2523,7 @@ "enumDescriptions": [ "Unspecified image replace method. This value must not be used.", "Scales and centers the image to fit within the bounds of the original shape and maintains the image's aspect ratio. The rendered size of the image may be smaller than the size of the shape. This is the default method when one is not specified.", - "Scales and centers the image to fill the bounds of the original shape. The image may be cropped in order to fill the shape. The rendered size of the image will be the same as that of the original shape." + "Scales and centers the image to fill the bounds of the original shape. The image may be cropped in order to fill the shape. The rendered size of the image will be the same as the original shape." ], "type": "string" }, @@ -2655,7 +2655,7 @@ "id": "ReplaceImageRequest", "properties": { "imageObjectId": { - "description": "The ID of the existing image that will be replaced.", + "description": "The ID of the existing image that will be replaced. The ID can be retrieved from the response of a get request.", "type": "string" }, "imageReplaceMethod": { @@ -2668,12 +2668,12 @@ "enumDescriptions": [ "Unspecified image replace method. This value must not be used.", "Scales and centers the image to fit within the bounds of the original shape and maintains the image's aspect ratio. The rendered size of the image may be smaller than the size of the shape. This is the default method when one is not specified.", - "Scales and centers the image to fill the bounds of the original shape. The image may be cropped in order to fill the shape. The rendered size of the image will be the same as that of the original shape." + "Scales and centers the image to fill the bounds of the original shape. The image may be cropped in order to fill the shape. The rendered size of the image will be the same as the original shape." ], "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 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URL can be at most 2 kB in length. The URL itself is saved with the image, and exposed via 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 50MB, cannot exceed 25 megapixels, and must be in PNG, JPEG, or GIF format. The provided URL can't surpass 2 KB in length. The URL is saved with the image, and exposed through the Image.source_url field.", "type": "string" } }, @@ -4582,7 +4582,7 @@ "id": "WriteControl", "properties": { "requiredRevisionId": { - "description": "The revision ID of the presentation required for the write request. If specified and the `required_revision_id` doesn't exactly match the presentation's current `revision_id`, the request will not be processed and will return a 400 bad request error.", + "description": "The revision ID of the presentation required for the write request. If specified and the required revision ID doesn't match the presentation's current revision ID, the request is not processed and returns a 400 bad request error. When a required revision ID is returned in a response, it indicates the revision ID of the document after the request was applied.", "type": "string" } }, diff --git a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json index 52deb33fe9..26c62572b6 100644 --- a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json +++ b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json @@ -4,9 +4,6 @@ "scopes": { "https://www.googleapis.com/auth/sdm.service": { "description": "See and/or control the devices that you selected" - }, - "https://www.googleapis.com/auth/sdm.thermostat.service": { - "description": "See and control the Nest thermostats that you select" } } } @@ -137,8 +134,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1ExecuteDeviceCommandResponse" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] }, "get": { @@ -163,8 +159,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1Device" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] }, "list": { @@ -205,8 +200,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1ListDevicesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] } } @@ -235,8 +229,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1Structure" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] }, "list": { @@ -277,8 +270,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1ListStructuresResponse" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] } }, @@ -307,8 +299,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1Room" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] }, "list": { @@ -344,8 +335,7 @@ "$ref": "GoogleHomeEnterpriseSdmV1ListRoomsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/sdm.service", - "https://www.googleapis.com/auth/sdm.thermostat.service" + "https://www.googleapis.com/auth/sdm.service" ] } } @@ -355,7 +345,7 @@ } } }, - "revision": "20220302", + "revision": "20230112", "rootUrl": "https://smartdevicemanagement.googleapis.com/", "schemas": { "GoogleHomeEnterpriseSdmV1Device": { diff --git a/etc/api/sourcerepo/v1/sourcerepo-api.json b/etc/api/sourcerepo/v1/sourcerepo-api.json index 1fe1e5f9b1..8f116a57b1 100644 --- a/etc/api/sourcerepo/v1/sourcerepo-api.json +++ b/etc/api/sourcerepo/v1/sourcerepo-api.json @@ -272,7 +272,7 @@ "type": "integer" }, "resource": { - "description": "REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repos/.*$", "required": true, @@ -367,7 +367,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repos/.*$", "required": true, @@ -424,7 +424,7 @@ ], "parameters": { "resource": { - "description": "REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.", + "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/[^/]+/repos/.*$", "required": true, @@ -450,11 +450,11 @@ } } }, - "revision": "20220217", + "revision": "20230123", "rootUrl": "https://sourcerepo.googleapis.com/", "schemas": { "AuditConfig": { - "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", "properties": { "auditLogConfigs": { @@ -510,7 +510,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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" }, @@ -524,7 +524,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -743,7 +743,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", @@ -816,7 +816,7 @@ "id": "TestIamPermissionsRequest", "properties": { "permissions": { - "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "items": { "type": "string" }, diff --git a/etc/api/spanner/v1/spanner-api.json b/etc/api/spanner/v1/spanner-api.json index 2a3f775db0..3e796543cc 100644 --- a/etc/api/spanner/v1/spanner-api.json +++ b/etc/api/spanner/v1/spanner-api.json @@ -113,8 +113,119 @@ "resources": { "projects": { "resources": { + "instanceConfigOperations": { + "methods": { + "list": { + "description": "Lists the user-managed instance config long-running operations in the given project. An instance config operation has a name of the form `projects//instanceConfigs//operations/`. The long-running operation metadata field type `metadata.type_url` describes the type of the metadata. Operations returned include those that have completed/failed/canceled within the last 7 days, and pending operations. Operations returned are ordered by `operation.metadata.value.start_time` in descending order starting from the most recently started operation.", + "flatPath": "v1/projects/{projectsId}/instanceConfigOperations", + "httpMethod": "GET", + "id": "spanner.projects.instanceConfigOperations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "An expression that filters the list of returned operations. A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules are not case sensitive. The following fields in the Operation are eligible for filtering: * `name` - The name of the long-running operation * `done` - False if the operation is in progress, else true. * `metadata.@type` - the type of metadata. For example, the type string for CreateInstanceConfigMetadata is `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata`. * `metadata.` - any field in metadata.value. `metadata.@type` must be specified first, if filtering on metadata fields. * `error` - Error associated with the long-running operation. * `response.@type` - the type of response. * `response.` - any field in response.value. You can combine multiple expressions by enclosing each expression in parentheses. By default, expressions are combined with AND logic. However, you can specify AND, OR, and NOT logic explicitly. Here are a few examples: * `done:true` - The operation is complete. * `(metadata.@type=` \\ `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceConfigMetadata) AND` \\ `(metadata.instance_config.name:custom-config) AND` \\ `(metadata.progress.start_time < \\\"2021-03-28T14:50:00Z\\\") AND` \\ `(error:*)` - Return operations where: * The operation's metadata type is CreateInstanceConfigMetadata. * The instance config name contains \"custom-config\". * The operation started before 2021-03-28T14:50:00Z. * The operation resulted in an error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of operations to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "If non-empty, `page_token` should contain a next_page_token from a previous ListInstanceConfigOperationsResponse to the same `parent` and with the same `filter`.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project of the instance config operations. Values are of the form `projects/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/instanceConfigOperations", + "response": { + "$ref": "ListInstanceConfigOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + } + }, "instanceConfigs": { "methods": { + "create": { + "description": "Creates an instance config and begins preparing it to be used. The returned long-running operation can be used to track the progress of preparing the new instance config. The instance config name is assigned by the caller. If the named instance config already exists, `CreateInstanceConfig` returns `ALREADY_EXISTS`. Immediately after the request returns: * The instance config is readable via the API, with all requested attributes. The instance config's reconciling field is set to true. Its state is `CREATING`. While the operation is pending: * Cancelling the operation renders the instance config immediately unreadable via the API. * Except for deleting the creating resource, all other attempts to modify the instance config are rejected. Upon completion of the returned operation: * Instances can be created using the instance configuration. * The instance config's reconciling field becomes false. Its state becomes `READY`. The returned long-running operation will have a name of the format `/operations/` and can be used to track creation of the instance config. The metadata field type is CreateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.create` permission on the resource parent.", + "flatPath": "v1/projects/{projectsId}/instanceConfigs", + "httpMethod": "POST", + "id": "spanner.projects.instanceConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the project in which to create the instance config. Values are of the form `projects/`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/instanceConfigs", + "request": { + "$ref": "CreateInstanceConfigRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "delete": { + "description": "Deletes the instance config. Deletion is only allowed when no instances are using the configuration. If any instances are using the config, returns `FAILED_PRECONDITION`. Only user managed configurations can be deleted. Authorization requires `spanner.instanceConfigs.delete` permission on the resource name.", + "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}", + "httpMethod": "DELETE", + "id": "spanner.projects.instanceConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Used for optimistic concurrency control as a way to help prevent simultaneous deletes of an instance config from overwriting each other. If not empty, the API only deletes the instance config when the etag provided matches the current status of the requested instance config. Otherwise, deletes the instance config without checking the current status of the requested instance config.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the instance configuration to be deleted. Values are of the form `projects//instanceConfigs/`", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "An option to validate, but not actually execute, a request, and provide the same response.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, "get": { "description": "Gets information about a particular instance configuration.", "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}", @@ -177,6 +288,161 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spanner.admin" ] + }, + "patch": { + "description": "Updates an instance config. The returned long-running operation can be used to track the progress of updating the instance. If the named instance config does not exist, returns `NOT_FOUND`. Only user managed configurations can be updated. Immediately after the request returns: * The instance config's reconciling field is set to true. While the operation is pending: * Cancelling the operation sets its metadata's cancel_time. The operation is guaranteed to succeed at undoing all changes, after which point it terminates with a `CANCELLED` status. * All other attempts to modify the instance config are rejected. * Reading the instance config via the API continues to give the pre-request values. Upon completion of the returned operation: * Creating instances using the instance configuration uses the new values. * The instance config's new values are readable via the API. * The instance config's reconciling field becomes false. The returned long-running operation will have a name of the format `/operations/` and can be used to track the instance config modification. The metadata field type is UpdateInstanceConfigMetadata. The response field type is InstanceConfig, if successful. Authorization requires `spanner.instanceConfigs.update` permission on the resource name.", + "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}", + "httpMethod": "PATCH", + "id": "spanner.projects.instanceConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "UpdateInstanceConfigRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + }, + "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}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "spanner.projects.instanceConfigs.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/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}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "spanner.projects.instanceConfigs.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/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}/operations/{operationsId}", + "httpMethod": "GET", + "id": "spanner.projects.instanceConfigs.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/instanceConfigs/[^/]+/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`. 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.", + "flatPath": "v1/projects/{projectsId}/instanceConfigs/{instanceConfigsId}/operations", + "httpMethod": "GET", + "id": "spanner.projects.instanceConfigs.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/[^/]+/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" + ] + } + } } } }, @@ -447,7 +713,7 @@ ], "parameters": { "filter": { - "description": "An expression that filters the list of returned backup operations. A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules are not case sensitive. The following fields in the operation are eligible for filtering: * `name` - The name of the long-running operation * `done` - False if the operation is in progress, else true. * `metadata.@type` - the type of metadata. For example, the type string for CreateBackupMetadata is `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`. * `metadata.` - any field in metadata.value. `metadata.@type` must be specified first if filtering on metadata fields. * `error` - Error associated with the long-running operation. * `response.@type` - the type of response. * `response.` - any field in response.value. You can combine multiple expressions by enclosing each expression in parentheses. By default, expressions are combined with AND logic, but you can specify AND, OR, and NOT logic explicitly. Here are a few examples: * `done:true` - The operation is complete. * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \\ `metadata.database:prod` - Returns operations where: * The operation's metadata type is CreateBackupMetadata. * The database the backup was taken from has a name containing the string \"prod\". * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \\ `(metadata.name:howl) AND` \\ `(metadata.progress.start_time < \\\"2018-03-28T14:50:00Z\\\") AND` \\ `(error:*)` - Returns operations where: * The operation's metadata type is CreateBackupMetadata. * The backup name contains the string \"howl\". * The operation started before 2018-03-28T14:50:00Z. * The operation resulted in an error.", + "description": "An expression that filters the list of returned backup operations. A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules are not case sensitive. The following fields in the operation are eligible for filtering: * `name` - The name of the long-running operation * `done` - False if the operation is in progress, else true. * `metadata.@type` - the type of metadata. For example, the type string for CreateBackupMetadata is `type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata`. * `metadata.` - any field in metadata.value. `metadata.@type` must be specified first if filtering on metadata fields. * `error` - Error associated with the long-running operation. * `response.@type` - the type of response. * `response.` - any field in response.value. You can combine multiple expressions by enclosing each expression in parentheses. By default, expressions are combined with AND logic, but you can specify AND, OR, and NOT logic explicitly. Here are a few examples: * `done:true` - The operation is complete. * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \\ `metadata.database:prod` - Returns operations where: * The operation's metadata type is CreateBackupMetadata. * The source database name of backup contains the string \"prod\". * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \\ `(metadata.name:howl) AND` \\ `(metadata.progress.start_time < \\\"2018-03-28T14:50:00Z\\\") AND` \\ `(error:*)` - Returns operations where: * The operation's metadata type is CreateBackupMetadata. * The backup name contains the string \"howl\". * The operation started before 2018-03-28T14:50:00Z. * The operation resulted in an error. * `(metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) AND` \\ `(metadata.source_backup:test) AND` \\ `(metadata.progress.start_time < \\\"2022-01-18T14:50:00Z\\\") AND` \\ `(error:*)` - Returns operations where: * The operation's metadata type is CopyBackupMetadata. * The source backup name contains the string \"test\". * The operation started before 2022-01-18T14:50:00Z. * The operation resulted in an error. * `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata) AND` \\ `(metadata.database:test_db)) OR` \\ `((metadata.@type=type.googleapis.com/google.spanner.admin.database.v1.CopyBackupMetadata) AND` \\ `(metadata.source_backup:test_bkp)) AND` \\ `(error:*)` - Returns operations where: * The operation's metadata matches either of criteria: * The operation's metadata type is CreateBackupMetadata AND the source database name of the backup contains the string \"test_db\" * The operation's metadata type is CopyBackupMetadata AND the source backup name contains the string \"test_bkp\" * The operation resulted in an error.", "location": "query", "type": "string" }, @@ -483,6 +749,35 @@ }, "backups": { "methods": { + "copy": { + "description": "Starts copying a Cloud Spanner Backup. The returned backup long-running operation will have a name of the format `projects//instances//backups//operations/` and can be used to track copying of the backup. The operation is associated with the destination backup. The metadata field type is CopyBackupMetadata. The response field type is Backup, if successful. Cancelling the returned operation will stop the copying and delete the destination backup. Concurrent CopyBackup requests can run on the same source backup.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/backups:copy", + "httpMethod": "POST", + "id": "spanner.projects.instances.backups.copy", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the destination instance that will contain the backup copy. Values are of the form: `projects//instances/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/backups:copy", + "request": { + "$ref": "CopyBackupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, "create": { "description": "Starts creating a new Cloud Spanner Backup. The returned backup long-running operation will have a name of the format `projects//instances//backups//operations/` and can be used to track creation of the backup. The metadata field type is CreateBackupMetadata. The response field type is Backup, if successful. Cancelling the returned operation will stop the creation and delete the backup. There can be only one pending backup creation per database. Backup creation of different databases can run concurrently.", "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/backups", @@ -1275,6 +1570,76 @@ } }, "resources": { + "databaseRoles": { + "methods": { + "list": { + "description": "Lists Cloud Spanner database roles.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/databaseRoles", + "httpMethod": "GET", + "id": "spanner.projects.instances.databases.databaseRoles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Number of database roles to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "If non-empty, `page_token` should contain a next_page_token from a previous ListDatabaseRolesResponse.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The database whose roles should be listed. Values are of the form `projects//instances//databases/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/databaseRoles", + "response": { + "$ref": "ListDatabaseRolesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that the caller has on the specified database or backup resource. Attempting this RPC on a non-existent Cloud Spanner database will result in a NOT_FOUND error if the user has `spanner.databases.list` permission on the containing Cloud Spanner instance. Otherwise returns an empty set of permissions. Calling this method on a backup that does not exist will result in a NOT_FOUND error if the user has `spanner.backups.list` permission on the containing instance.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/databases/{databasesId}/databaseRoles/{databaseRolesId}:testIamPermissions", + "httpMethod": "POST", + "id": "spanner.projects.instances.databases.databaseRoles.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The Cloud Spanner resource for which permissions are being tested. The format is `projects//instances/` for instance resources and `projects//instances//databases/` for database resources.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/databases/[^/]+/databaseRoles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -2037,7 +2402,7 @@ } } }, - "revision": "20220212", + "revision": "20230119", "rootUrl": "https://spanner.googleapis.com/", "schemas": { "Backup": { @@ -2079,10 +2444,24 @@ "format": "google-datetime", "type": "string" }, + "maxExpireTime": { + "description": "Output only. The max allowed expiration time of the backup, with microseconds granularity. A backup's expiration time can be configured in multiple APIs: CreateBackup, UpdateBackup, CopyBackup. When updating or copying an existing backup, the expiration time specified must be less than `Backup.max_expire_time`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only for the CreateBackup operation. Required for the UpdateBackup operation. A globally unique identifier for the backup which cannot be changed. Values are of the form `projects//instances//backups/a-z*[a-z0-9]` The final segment of the name must be between 2 and 60 characters in length. The backup is stored in the location(s) specified in the instance configuration of the instance containing the backup, identified by the prefix of the backup name of the form `projects//instances/`.", "type": "string" }, + "referencingBackups": { + "description": "Output only. The names of the destination backups being created by copying this source backup. The backup names are of the form `projects//instances//backups/`. Referencing backups may exist in different instances. The existence of any referencing backup prevents the backup from being deleted. When the copy operation is done (either successfully completed or cancelled or the destination backup is deleted), the reference to the backup is removed.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "referencingDatabases": { "description": "Output only. The names of the restored databases that reference the backup. The database names are of the form `projects//instances//databases/`. Referencing databases may exist in different instances. The existence of any referencing database prevents the backup from being deleted. When a restored database from the backup enters the `READY` state, the reference to the backup is removed.", "items": { @@ -2199,7 +2578,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -2329,6 +2708,81 @@ }, "type": "object" }, + "CopyBackupEncryptionConfig": { + "description": "Encryption configuration for the copied backup.", + "id": "CopyBackupEncryptionConfig", + "properties": { + "encryptionType": { + "description": "Required. The encryption type of the backup.", + "enum": [ + "ENCRYPTION_TYPE_UNSPECIFIED", + "USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION", + "GOOGLE_DEFAULT_ENCRYPTION", + "CUSTOMER_MANAGED_ENCRYPTION" + ], + "enumDescriptions": [ + "Unspecified. Do not use.", + "This is the default option for CopyBackup when encryption_config is not specified. For example, if the source backup is using `Customer_Managed_Encryption`, the backup will be using the same Cloud KMS key as the source backup.", + "Use Google default encryption.", + "Use customer managed encryption. If specified, either `kms_key_name` or `kms_key_names` must contain valid Cloud KMS key(s)." + ], + "type": "string" + }, + "kmsKeyName": { + "description": "Optional. The Cloud KMS key that will be used to protect the backup. This field should be set only when encryption_type is `CUSTOMER_MANAGED_ENCRYPTION`. Values are of the form `projects//locations//keyRings//cryptoKeys/`.", + "type": "string" + } + }, + "type": "object" + }, + "CopyBackupMetadata": { + "description": "Metadata type for the operation returned by CopyBackup.", + "id": "CopyBackupMetadata", + "properties": { + "cancelTime": { + "description": "The time at which cancellation of CopyBackup operation was received. Operations.CancelOperation starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. Clients can use Operations.GetOperation 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`.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "The name of the backup being created through the copy operation. Values are of the form `projects//instances//backups/`.", + "type": "string" + }, + "progress": { + "$ref": "OperationProgress", + "description": "The progress of the CopyBackup operation." + }, + "sourceBackup": { + "description": "The name of the source backup that is being copied. Values are of the form `projects//instances//backups/`.", + "type": "string" + } + }, + "type": "object" + }, + "CopyBackupRequest": { + "description": "The request for CopyBackup.", + "id": "CopyBackupRequest", + "properties": { + "backupId": { + "description": "Required. The id of the backup copy. The `backup_id` appended to `parent` forms the full backup_uri of the form `projects//instances//backups/`.", + "type": "string" + }, + "encryptionConfig": { + "$ref": "CopyBackupEncryptionConfig", + "description": "Optional. The encryption configuration used to encrypt the backup. If this field is not specified, the backup will use the same encryption configuration as the source backup by default, namely encryption_type = `USE_CONFIG_DEFAULT_OR_BACKUP_ENCRYPTION`." + }, + "expireTime": { + "description": "Required. The expiration time of the backup in microsecond granularity. The expiration time must be at least 6 hours and at most 366 days from the `create_time` of the source backup. Once the `expire_time` has passed, the backup is eligible to be automatically deleted by Cloud Spanner to free the resources used by the backup.", + "format": "google-datetime", + "type": "string" + }, + "sourceBackup": { + "description": "Required. The source backup to be copied. The source backup needs to be in READY state for it to be copied. Once CopyBackup is in progress, the source backup cannot be deleted or cleaned up on expiration until CopyBackup is finished. Values are of the form: `projects//instances//backups/`.", + "type": "string" + } + }, + "type": "object" + }, "CreateBackupMetadata": { "description": "Metadata type for the operation returned by CreateBackup.", "id": "CreateBackupMetadata", @@ -2396,6 +2850,50 @@ "type": "string" }, "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).", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "CreateInstanceConfigMetadata": { + "description": "Metadata type for the operation returned by CreateInstanceConfig.", + "id": "CreateInstanceConfigMetadata", + "properties": { + "cancelTime": { + "description": "The time at which this operation was cancelled.", + "format": "google-datetime", + "type": "string" + }, + "instanceConfig": { + "$ref": "InstanceConfig", + "description": "The target instance config end state." + }, + "progress": { + "$ref": "InstanceOperationProgress", + "description": "The progress of the CreateInstanceConfig operation." + } + }, + "type": "object" + }, + "CreateInstanceConfigRequest": { + "description": "The request for CreateInstanceConfigRequest.", + "id": "CreateInstanceConfigRequest", + "properties": { + "instanceConfig": { + "$ref": "InstanceConfig", + "description": "Required. The InstanceConfig proto of the configuration to create. instance_config.name must be `/instanceConfigs/`. instance_config.base_config must be a Google managed configuration name, e.g. /instanceConfigs/us-east1, /instanceConfigs/nam3." + }, + "instanceConfigId": { + "description": "Required. The ID of the instance config to create. Valid identifiers are of the form `custom-[-a-z0-9]*[a-z0-9]` and must be between 2 and 64 characters in length. The `custom-` prefix is required to avoid name conflicts with Google managed configurations.", + "type": "string" + }, + "validateOnly": { + "description": "An option to validate, but not actually execute, a request, and provide the same response.", + "type": "boolean" } }, "type": "object" @@ -2494,7 +2992,7 @@ "readOnly": true }, "encryptionInfo": { - "description": "Output only. For databases that are using customer managed encryption, this field contains the encryption information for the database, such as encryption state and the Cloud KMS key versions that are in use. For databases that are using Google default or other types of encryption, this field is empty. This field is propagated lazily from the backend. There might be a delay from when a key version is being used and when it appears in this field.", + "description": "Output only. For databases that are using customer managed encryption, this field contains the encryption information for the database, such as all Cloud KMS key versions that are in use. The `encryption_status' field inside of each `EncryptionInfo` is not populated. For databases that are using Google default or other types of encryption, this field is empty. This field is propagated lazily from the backend. There might be a delay from when a key version is being used and when it appears in this field.", "items": { "$ref": "EncryptionInfo" }, @@ -2535,6 +3033,17 @@ }, "type": "object" }, + "DatabaseRole": { + "description": "A Cloud Spanner database role.", + "id": "DatabaseRole", + "properties": { + "name": { + "description": "Required. The name of the database role. Values are of the form `projects//instances//databases//databaseRoles/` where `` is as specified in the `CREATE ROLE` DDL statement.", + "type": "string" + } + }, + "type": "object" + }, "Delete": { "description": "Arguments to delete operations.", "id": "Delete", @@ -2607,7 +3116,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2805,10 +3314,48 @@ }, "type": "object" }, + "FreeInstanceMetadata": { + "description": "Free instance specific metadata that is kept even after an instance has been upgraded for tracking purposes.", + "id": "FreeInstanceMetadata", + "properties": { + "expireBehavior": { + "description": "Specifies the expiration behavior of a free instance. The default of ExpireBehavior is `REMOVE_AFTER_GRACE_PERIOD`. This can be modified during or after creation, and before expiration.", + "enum": [ + "EXPIRE_BEHAVIOR_UNSPECIFIED", + "FREE_TO_PROVISIONED", + "REMOVE_AFTER_GRACE_PERIOD" + ], + "enumDescriptions": [ + "Not specified.", + "When the free instance expires, upgrade the instance to a provisioned instance.", + "When the free instance expires, disable the instance, and delete it after the grace period passes if it has not been upgraded." + ], + "type": "string" + }, + "expireTime": { + "description": "Output only. Timestamp after which the instance will either be upgraded or scheduled for deletion after a grace period. ExpireBehavior is used to choose between upgrading or scheduling the free instance for deletion. This timestamp is set during the creation of a free instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "upgradeTime": { + "description": "Output only. If present, the timestamp at which the free instance was upgraded to a provisioned instance.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GetDatabaseDdlResponse": { "description": "The response for GetDatabaseDdl.", "id": "GetDatabaseDdlResponse", "properties": { + "protoDescriptors": { + "description": "Proto descriptors stored in the database. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto). For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).", + "format": "byte", + "type": "string" + }, "statements": { "description": "A list of formatted DDL statements defining the schema of the database specified in the request.", "items": { @@ -2879,6 +3426,12 @@ "description": "Required. The name of the instance's configuration. Values are of the form `projects//instanceConfigs/`. See also InstanceConfig and ListInstanceConfigs.", "type": "string" }, + "createTime": { + "description": "Output only. The time at which the instance was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "displayName": { "description": "Required. The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length.", "type": "string" @@ -2890,6 +3443,24 @@ }, "type": "array" }, + "freeInstanceMetadata": { + "$ref": "FreeInstanceMetadata", + "description": "Free instance metadata. Only populated for free instances." + }, + "instanceType": { + "description": "The `InstanceType` of the current instance.", + "enum": [ + "INSTANCE_TYPE_UNSPECIFIED", + "PROVISIONED", + "FREE_INSTANCE" + ], + "enumDescriptions": [ + "Not specified.", + "Provisioned instances have dedicated resources, standard usage limits and support.", + "Free instances provide no guarantee for dedicated resources, [node_count, processing_units] should be 0. They come with stricter usage limits and limited support." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2925,6 +3496,12 @@ ], "readOnly": true, "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which the instance was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2933,10 +3510,59 @@ "description": "A possible configuration for a Cloud Spanner instance. Configurations define the geographic placement of nodes and their replication.", "id": "InstanceConfig", "properties": { + "baseConfig": { + "description": "Base configuration name, e.g. projects//instanceConfigs/nam3, based on which this configuration is created. Only set for user managed configurations. `base_config` must refer to a configuration of type GOOGLE_MANAGED in the same project as this configuration.", + "type": "string" + }, + "configType": { + "description": "Output only. Whether this instance config is a Google or User Managed Configuration.", + "enum": [ + "TYPE_UNSPECIFIED", + "GOOGLE_MANAGED", + "USER_MANAGED" + ], + "enumDescriptions": [ + "Unspecified.", + "Google managed configuration.", + "User managed configuration." + ], + "readOnly": true, + "type": "string" + }, "displayName": { "description": "The name of this instance configuration as it appears in UIs.", "type": "string" }, + "etag": { + "description": "etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance config from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance config updates in order to avoid race conditions: An etag is returned in the response which contains instance configs, and systems are expected to put that etag in the request to update instance config to ensure that their change will be applied to the same version of the instance config. If no etag is provided in the call to update instance config, then the existing instance config is overwritten blindly.", + "type": "string" + }, + "freeInstanceAvailability": { + "description": "Output only. Describes whether free instances are available to be created in this instance config.", + "enum": [ + "FREE_INSTANCE_AVAILABILITY_UNSPECIFIED", + "AVAILABLE", + "UNSUPPORTED", + "DISABLED", + "QUOTA_EXCEEDED" + ], + "enumDescriptions": [ + "Not specified.", + "Indicates that free instances are available to be created in this instance config.", + "Indicates that free instances are not supported in this instance config.", + "Indicates that free instances are currently not available to be created in this instance config.", + "Indicates that additional free instances cannot be created in this instance config because the project has reached its limit of free instances." + ], + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cloud Labels are a flexible and lightweight mechanism for organizing cloud resources into groups that reflect a customer's organizational needs and deployment strategies. Cloud Labels can be used to filter collections of resources. They can be used to control how resource metrics are aggregated. And they can be used as arguments to policy management rules (e.g. route, firewall, load balancing, etc.). * Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z{0,62}`. * Label values must be between 0 and 63 characters long and must conform to the regular expression `[a-z0-9_-]{0,63}`. * No more than 64 labels can be associated with a given resource. See https://goo.gl/xmQnxf for more information on and examples of labels. If you plan to use labels in your own code, please note that additional characters may be allowed in the future. Therefore, you are advised to use an internal label representation, such as JSON, which doesn't rely upon specific characters being disallowed. For example, representing labels as the string: name + \"_\" + value would prove problematic if we were to allow \"_\" in a future release.", + "type": "object" + }, "leaderOptions": { "description": "Allowed values of the \"default_leader\" schema option for databases in instances that use this instance configuration.", "items": { @@ -2948,12 +3574,62 @@ "description": "A unique identifier for the instance configuration. Values are of the form `projects//instanceConfigs/a-z*`.", "type": "string" }, + "optionalReplicas": { + "description": "Output only. The available optional replicas to choose from for user managed configurations. Populated for Google managed configurations.", + "items": { + "$ref": "ReplicaInfo" + }, + "readOnly": true, + "type": "array" + }, + "reconciling": { + "description": "Output only. If true, the instance config is being created or updated. If false, there are no ongoing operations for the instance config.", + "readOnly": true, + "type": "boolean" + }, "replicas": { "description": "The geographic placement of nodes in this instance configuration and their replication properties.", "items": { "$ref": "ReplicaInfo" }, "type": "array" + }, + "state": { + "description": "Output only. The current instance config state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY" + ], + "enumDescriptions": [ + "Not specified.", + "The instance config is still being created.", + "The instance config is fully created and ready to be used to create instances." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "InstanceOperationProgress": { + "description": "Encapsulates progress related information for a Cloud Spanner long running instance operations.", + "id": "InstanceOperationProgress", + "properties": { + "endTime": { + "description": "If set, the time at which this operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "progressPercent": { + "description": "Percent completion of the operation. Values are between 0 and 100 inclusive.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "Time the request was received.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -3145,6 +3821,24 @@ }, "type": "object" }, + "ListDatabaseRolesResponse": { + "description": "The response for ListDatabaseRoles.", + "id": "ListDatabaseRolesResponse", + "properties": { + "databaseRoles": { + "description": "Database roles that matched the request.", + "items": { + "$ref": "DatabaseRole" + }, + "type": "array" + }, + "nextPageToken": { + "description": "`next_page_token` can be sent in a subsequent ListDatabaseRoles call to fetch more of the matching roles.", + "type": "string" + } + }, + "type": "object" + }, "ListDatabasesResponse": { "description": "The response for ListDatabases.", "id": "ListDatabasesResponse", @@ -3163,6 +3857,24 @@ }, "type": "object" }, + "ListInstanceConfigOperationsResponse": { + "description": "The response for ListInstanceConfigOperations.", + "id": "ListInstanceConfigOperationsResponse", + "properties": { + "nextPageToken": { + "description": "`next_page_token` can be sent in a subsequent ListInstanceConfigOperations call to fetch more of the matching metadata.", + "type": "string" + }, + "operations": { + "description": "The list of matching instance config long-running operations. Each operation's name will be prefixed by the instance config's name. The operation's metadata field type `metadata.type_url` describes the type of the metadata.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListInstanceConfigsResponse": { "description": "The response for ListInstanceConfigs.", "id": "ListInstanceConfigsResponse", @@ -3504,7 +4216,7 @@ "description": "Query plan and execution statistics for the statement that produced this streaming result set. These can be requested by setting ExecuteSqlRequest.query_mode and are sent only once with the last response in the stream. This field will also be present in the last response for DML statements." }, "values": { - "description": "A streamed result set consists of a stream of values, which might be split into many `PartialResultSet` messages to accommodate large rows and/or large values. Every N complete values defines a row, where N is equal to the number of entries in metadata.row_type.fields. Most values are encoded based on type as described here. It is possible that the last value in values is \"chunked\", meaning that the rest of the value is sent in subsequent `PartialResultSet`(s). This is denoted by the chunked_value field. Two or more chunked values can be merged to form a complete value as follows: * `bool/number/null`: cannot be chunked * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a list is a `string`, `list`, or `object`, merge it with the first element in the next list by applying these rules recursively. * `object`: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. \"foo\", \"bar\" => \"foobar\" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"] # Non-overlapping object fields are combined. {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \"b\": 2\"} # Overlapping object fields are merged. {\"a\": \"1\"}, {\"a\": \"2\"} => {\"a\": \"12\"} # Examples of merging objects containing lists of strings. {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The following `PartialResultSet`s might be yielded: { \"metadata\": { ... } \"values\": [\"Hello\", \"W\"] \"chunked_value\": true \"resume_token\": \"Af65...\" } { \"values\": [\"orl\"] \"chunked_value\": true \"resume_token\": \"Bqp2...\" } { \"values\": [\"d\"] \"resume_token\": \"Zx1B...\" } This sequence of `PartialResultSet`s encodes two rows, one containing the field value `\"Hello\"`, and a second containing the field value `\"World\" = \"W\" + \"orl\" + \"d\"`.", + "description": "A streamed result set consists of a stream of values, which might be split into many `PartialResultSet` messages to accommodate large rows and/or large values. Every N complete values defines a row, where N is equal to the number of entries in metadata.row_type.fields. Most values are encoded based on type as described here. It is possible that the last value in values is \"chunked\", meaning that the rest of the value is sent in subsequent `PartialResultSet`(s). This is denoted by the chunked_value field. Two or more chunked values can be merged to form a complete value as follows: * `bool/number/null`: cannot be chunked * `string`: concatenate the strings * `list`: concatenate the lists. If the last element in a list is a `string`, `list`, or `object`, merge it with the first element in the next list by applying these rules recursively. * `object`: concatenate the (field name, field value) pairs. If a field name is duplicated, then apply these rules recursively to merge the field values. Some examples of merging: # Strings are concatenated. \"foo\", \"bar\" => \"foobar\" # Lists of non-strings are concatenated. [2, 3], [4] => [2, 3, 4] # Lists are concatenated, but the last and first elements are merged # because they are strings. [\"a\", \"b\"], [\"c\", \"d\"] => [\"a\", \"bc\", \"d\"] # Lists are concatenated, but the last and first elements are merged # because they are lists. Recursively, the last and first elements # of the inner lists are merged because they are strings. [\"a\", [\"b\", \"c\"]], [[\"d\"], \"e\"] => [\"a\", [\"b\", \"cd\"], \"e\"] # Non-overlapping object fields are combined. {\"a\": \"1\"}, {\"b\": \"2\"} => {\"a\": \"1\", \"b\": 2\"} # Overlapping object fields are merged. {\"a\": \"1\"}, {\"a\": \"2\"} => {\"a\": \"12\"} # Examples of merging objects containing lists of strings. {\"a\": [\"1\"]}, {\"a\": [\"2\"]} => {\"a\": [\"12\"]} For a more complete example, suppose a streaming SQL query is yielding a result set whose rows contain a single string field. The following `PartialResultSet`s might be yielded: { \"metadata\": { ... } \"values\": [\"Hello\", \"W\"] \"chunked_value\": true \"resume_token\": \"Af65...\" } { \"values\": [\"orl\"] \"chunked_value\": true } { \"values\": [\"d\"] \"resume_token\": \"Zx1B...\" } This sequence of `PartialResultSet`s encodes two rows, one containing the field value `\"Hello\"`, and a second containing the field value `\"World\" = \"W\" + \"orl\" + \"d\"`. Not all `PartialResultSet`s contain a `resume_token`. Execution can only be resumed from a previously yielded `resume_token`. For the above sequence of `PartialResultSet`s, resuming the query with `\"resume_token\": \"Af65...\"` will yield results from the `PartialResultSet` with value `[\"orl\"]`.", "items": { "type": "any" }, @@ -3861,7 +4573,22 @@ "ReadWrite": { "description": "Message type to initiate a read-write transaction. Currently this transaction type has no options.", "id": "ReadWrite", - "properties": {}, + "properties": { + "readLockMode": { + "description": "Read lock mode for the transaction.", + "enum": [ + "READ_LOCK_MODE_UNSPECIFIED", + "PESSIMISTIC", + "OPTIMISTIC" + ], + "enumDescriptions": [ + "Default value. If the value is not specified, the pessimistic read lock is used.", + "Pessimistic lock mode. Read locks are acquired immediately on read.", + "Optimistic lock mode. Locks for reads within the transaction are not acquired on read. Instead the locks are acquired on a commit to validate that read/queried data has not changed since the transaction started." + ], + "type": "string" + } + }, "type": "object" }, "ReplicaInfo": { @@ -4070,6 +4797,10 @@ "transaction": { "$ref": "Transaction", "description": "If the read or SQL query began a transaction as a side-effect, the information about the new transaction is yielded here." + }, + "undeclaredParameters": { + "$ref": "StructType", + "description": "A SQL query can be parameterized. In PLAN mode, these parameters can be undeclared. This indicates the field names and types for those undeclared parameters in the SQL query. For example, a SQL query like `\"SELECT * FROM Users where UserId = @userId and UserName = @userName \"` could return a `undeclared_parameters` value like: \"fields\": [ { \"name\": \"UserId\", \"type\": { \"code\": \"INT64\" } }, { \"name\": \"UserName\", \"type\": { \"code\": \"STRING\" } }, ]" } }, "type": "object" @@ -4186,6 +4917,10 @@ "readOnly": true, "type": "string" }, + "creatorRole": { + "description": "The database role which created this session.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -4207,7 +4942,7 @@ "properties": { "policy": { "$ref": "Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them." + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." } }, "type": "object" @@ -4344,7 +5079,7 @@ "type": "object" }, "TransactionOptions": { - "description": "Transactions: Each session can have at most one active transaction at a time (note that standalone reads and queries use a transaction internally and do count towards the one transaction limit). After the active transaction is completed, the session can immediately be re-used for the next transaction. It is not necessary to create a new session for each transaction. Transaction Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write. This type of transaction is the only way to write data into Cloud Spanner. These transactions rely on pessimistic locking and, if necessary, two-phase commit. Locking read-write transactions may abort, requiring the application to retry. 2. Snapshot read-only. This transaction type provides guaranteed consistency across several reads, but does not allow writes. Snapshot read-only transactions can be configured to read at timestamps in the past. Snapshot read-only transactions do not need to be committed. 3. Partitioned DML. This type of transaction is used to execute a single Partitioned DML statement. Partitioned DML partitions the key space and runs the DML statement over each partition in parallel using separate, internal transactions that commit independently. Partitioned DML transactions do not need to be committed. For transactions that only read, snapshot read-only transactions provide simpler semantics and are almost always faster. In particular, read-only transactions do not take locks, so they do not conflict with read-write transactions. As a consequence of not taking locks, they also do not abort, so retry loops are not needed. Transactions may only read/write data in a single database. They may, however, read/write data in different tables within that database. Locking Read-Write Transactions: Locking transactions may be used to atomically read-modify-write data anywhere in a database. This type of transaction is externally consistent. Clients should attempt to minimize the amount of time a transaction is active. Faster transactions commit with higher probability and cause less contention. Cloud Spanner attempts to keep read locks active as long as the transaction continues to do reads, and the transaction has not been terminated by Commit or Rollback. Long periods of inactivity at the client may cause Cloud Spanner to release a transaction's locks and abort it. Conceptually, a read-write transaction consists of zero or more reads or SQL statements followed by Commit. At any time before Commit, the client can send a Rollback request to abort the transaction. Semantics: Cloud Spanner can commit the transaction if all read locks it acquired are still valid at commit time, and it is able to acquire write locks for all writes. Cloud Spanner can abort the transaction for any reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees that the transaction has not modified any user data in Cloud Spanner. Unless the transaction commits, Cloud Spanner makes no guarantees about how long the transaction's locks were held for. It is an error to use Cloud Spanner locks for any sort of mutual exclusion other than between Cloud Spanner transactions themselves. Retrying Aborted Transactions: When a transaction aborts, the application can choose to retry the whole transaction again. To maximize the chances of successfully committing the retry, the client should execute the retry in the same session as the original attempt. The original session's lock priority increases with each consecutive abort, meaning that each attempt has a slightly better chance of success than the previous. Under some circumstances (for example, many transactions attempting to modify the same row(s)), a transaction can abort many times in a short period before successfully committing. Thus, it is not a good idea to cap the number of retries a transaction can attempt; instead, it is better to limit the total amount of time spent retrying. Idle Transactions: A transaction is considered idle if it has no outstanding reads or SQL queries and has not started a read or SQL query within the last 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don't hold on to locks indefinitely. If an idle transaction is aborted, the commit will fail with error `ABORTED`. If this behavior is undesirable, periodically executing a simple SQL query in the transaction (for example, `SELECT 1`) prevents the transaction from becoming idle. Snapshot Read-Only Transactions: Snapshot read-only transactions provides a simpler method than locking read-write transactions for doing several consistent reads. However, this type of transaction does not support writes. Snapshot transactions do not take locks. Instead, they work by choosing a Cloud Spanner timestamp, then executing all reads at that timestamp. Since they do not acquire locks, they do not block concurrent read-write transactions. Unlike locking read-write transactions, snapshot read-only transactions never abort. They can fail if the chosen read timestamp is garbage collected; however, the default garbage collection policy is generous enough that most applications do not need to worry about this in practice. Snapshot read-only transactions do not need to call Commit or Rollback (and in fact are not permitted to do so). To execute a snapshot transaction, the client specifies a timestamp bound, which tells Cloud Spanner how to choose a read timestamp. The types of timestamp bound are: - Strong (the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read is geographically distributed, stale read-only transactions can execute more quickly than strong or read-write transaction, because they are able to execute far from the leader replica. Each type of timestamp bound is discussed in detail below. Strong: Strong reads are guaranteed to see the effects of all transactions that have committed before the start of the read. Furthermore, all rows yielded by a single read are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Strong reads are not repeatable: two consecutive strong read-only transactions might return inconsistent results if there are concurrent writes. If consistency across reads is required, the reads should be executed within a transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.strong. Exact Staleness: These timestamp bounds execute reads at a user-specified timestamp. Reads at a timestamp are guaranteed to see a consistent prefix of the global transaction history: they observe modifications done by all transactions with a commit timestamp less than or equal to the read timestamp, and observe none of the modifications done by transactions with a larger commit timestamp. They will block until all conflicting transactions that may be assigned commit timestamps <= the read timestamp have finished. The timestamp can either be expressed as an absolute Cloud Spanner commit timestamp or a staleness relative to the current time. These modes do not require a \"negotiation phase\" to pick a timestamp. As a result, they execute slightly faster than the equivalent boundedly stale concurrency modes. On the other hand, boundedly stale reads usually return fresher results. See TransactionOptions.ReadOnly.read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded Staleness: Bounded staleness modes allow Cloud Spanner to pick the read timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses the newest timestamp within the staleness bound that allows execution of the reads at the closest available replica without blocking. All rows yielded are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Boundedly stale reads are not repeatable: two stale reads, even if they use the same staleness bound, can execute at different timestamps and thus return inconsistent results. Boundedly stale reads execute in two phases: the first phase negotiates a timestamp among all replicas needed to serve the read. In the second phase, reads are executed at the negotiated timestamp. As a result of the two phase execution, bounded staleness reads are usually a little slower than comparable exact staleness reads. However, they are typically able to return fresher results, and are more likely to execute at the closest replica. Because the timestamp negotiation requires up-front knowledge of which rows will be read, it can only be used with single-use read-only transactions. See TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner continuously garbage collects deleted and overwritten data in the background to reclaim storage space. This process is known as \"version GC\". By default, version GC reclaims versions after they are one hour old. Because of this, Cloud Spanner cannot perform reads at read timestamps more than one hour in the past. This restriction also applies to in-progress reads and/or SQL queries whose timestamp become too old while executing. Reads and SQL queries with too-old read timestamps fail with the error `FAILED_PRECONDITION`. Partitioned DML Transactions: Partitioned DML transactions are used to execute DML statements with a different execution strategy that provides different, and often better, scalability properties for large, table-wide operations than DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, should prefer using ReadWrite transactions. Partitioned DML partitions the keyspace and runs the DML statement on each partition in separate, internal transactions. These transactions commit automatically when complete, and run independently from one another. To reduce lock contention, this execution strategy only acquires read locks on rows that match the WHERE clause of the statement. Additionally, the smaller per-partition transactions hold locks for less time. That said, Partitioned DML is not a drop-in replacement for standard DML used in ReadWrite transactions. - The DML statement must be fully-partitionable. Specifically, the statement must be expressible as the union of many statements which each access only a single row of the table. - The statement is not applied atomically to all rows of the table. Rather, the statement is applied atomically to partitions of the table, in independent transactions. Secondary index rows are updated atomically with the base table rows. - Partitioned DML does not guarantee exactly-once execution semantics against a partition. The statement will be applied at least once to each partition. It is strongly recommended that the DML statement should be idempotent to avoid unexpected results. For instance, it is potentially dangerous to run a statement such as `UPDATE table SET column = column + 1` as it could be run multiple times against some rows. - The partitions are committed automatically - there is no support for Commit or Rollback. If the call returns an error, or if the client issuing the ExecuteSql call dies, it is possible that some rows had the statement executed on them successfully. It is also possible that statement was never executed against other rows. - Partitioned DML transactions may only contain the execution of a single DML statement via ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the execution of the partitioned DML operation (for instance, a UNIQUE INDEX violation, division by zero, or a value that cannot be stored due to schema constraints), then the operation is stopped at that point and an error is returned. It is possible that at this point, some partitions have been committed (or even committed multiple times), and other partitions have not been run at all. Given the above, Partitioned DML is good fit for large, database-wide, operations that are idempotent, such as deleting old rows from a very large table.", + "description": "Transactions: Each session can have at most one active transaction at a time (note that standalone reads and queries use a transaction internally and do count towards the one transaction limit). After the active transaction is completed, the session can immediately be re-used for the next transaction. It is not necessary to create a new session for each transaction. Transaction modes: Cloud Spanner supports three transaction modes: 1. Locking read-write. This type of transaction is the only way to write data into Cloud Spanner. These transactions rely on pessimistic locking and, if necessary, two-phase commit. Locking read-write transactions may abort, requiring the application to retry. 2. Snapshot read-only. Snapshot read-only transactions provide guaranteed consistency across several reads, but do not allow writes. Snapshot read-only transactions can be configured to read at timestamps in the past, or configured to perform a strong read (where Spanner will select a timestamp such that the read is guaranteed to see the effects of all transactions that have committed before the start of the read). Snapshot read-only transactions do not need to be committed. Queries on change streams must be performed with the snapshot read-only transaction mode, specifying a strong read. Please see TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This type of transaction is used to execute a single Partitioned DML statement. Partitioned DML partitions the key space and runs the DML statement over each partition in parallel using separate, internal transactions that commit independently. Partitioned DML transactions do not need to be committed. For transactions that only read, snapshot read-only transactions provide simpler semantics and are almost always faster. In particular, read-only transactions do not take locks, so they do not conflict with read-write transactions. As a consequence of not taking locks, they also do not abort, so retry loops are not needed. Transactions may only read-write data in a single database. They may, however, read-write data in different tables within that database. Locking read-write transactions: Locking transactions may be used to atomically read-modify-write data anywhere in a database. This type of transaction is externally consistent. Clients should attempt to minimize the amount of time a transaction is active. Faster transactions commit with higher probability and cause less contention. Cloud Spanner attempts to keep read locks active as long as the transaction continues to do reads, and the transaction has not been terminated by Commit or Rollback. Long periods of inactivity at the client may cause Cloud Spanner to release a transaction's locks and abort it. Conceptually, a read-write transaction consists of zero or more reads or SQL statements followed by Commit. At any time before Commit, the client can send a Rollback request to abort the transaction. Semantics: Cloud Spanner can commit the transaction if all read locks it acquired are still valid at commit time, and it is able to acquire write locks for all writes. Cloud Spanner can abort the transaction for any reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees that the transaction has not modified any user data in Cloud Spanner. Unless the transaction commits, Cloud Spanner makes no guarantees about how long the transaction's locks were held for. It is an error to use Cloud Spanner locks for any sort of mutual exclusion other than between Cloud Spanner transactions themselves. Retrying aborted transactions: When a transaction aborts, the application can choose to retry the whole transaction again. To maximize the chances of successfully committing the retry, the client should execute the retry in the same session as the original attempt. The original session's lock priority increases with each consecutive abort, meaning that each attempt has a slightly better chance of success than the previous. Under some circumstances (for example, many transactions attempting to modify the same row(s)), a transaction can abort many times in a short period before successfully committing. Thus, it is not a good idea to cap the number of retries a transaction can attempt; instead, it is better to limit the total amount of time spent retrying. Idle transactions: A transaction is considered idle if it has no outstanding reads or SQL queries and has not started a read or SQL query within the last 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don't hold on to locks indefinitely. If an idle transaction is aborted, the commit will fail with error `ABORTED`. If this behavior is undesirable, periodically executing a simple SQL query in the transaction (for example, `SELECT 1`) prevents the transaction from becoming idle. Snapshot read-only transactions: Snapshot read-only transactions provides a simpler method than locking read-write transactions for doing several consistent reads. However, this type of transaction does not support writes. Snapshot transactions do not take locks. Instead, they work by choosing a Cloud Spanner timestamp, then executing all reads at that timestamp. Since they do not acquire locks, they do not block concurrent read-write transactions. Unlike locking read-write transactions, snapshot read-only transactions never abort. They can fail if the chosen read timestamp is garbage collected; however, the default garbage collection policy is generous enough that most applications do not need to worry about this in practice. Snapshot read-only transactions do not need to call Commit or Rollback (and in fact are not permitted to do so). To execute a snapshot transaction, the client specifies a timestamp bound, which tells Cloud Spanner how to choose a read timestamp. The types of timestamp bound are: - Strong (the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read is geographically distributed, stale read-only transactions can execute more quickly than strong or read-write transactions, because they are able to execute far from the leader replica. Each type of timestamp bound is discussed in detail below. Strong: Strong reads are guaranteed to see the effects of all transactions that have committed before the start of the read. Furthermore, all rows yielded by a single read are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Strong reads are not repeatable: two consecutive strong read-only transactions might return inconsistent results if there are concurrent writes. If consistency across reads is required, the reads should be executed within a transaction or at an exact read timestamp. Queries on change streams (see below for more details) must also specify the strong read timestamp bound. See TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds execute reads at a user-specified timestamp. Reads at a timestamp are guaranteed to see a consistent prefix of the global transaction history: they observe modifications done by all transactions with a commit timestamp less than or equal to the read timestamp, and observe none of the modifications done by transactions with a larger commit timestamp. They will block until all conflicting transactions that may be assigned commit timestamps <= the read timestamp have finished. The timestamp can either be expressed as an absolute Cloud Spanner commit timestamp or a staleness relative to the current time. These modes do not require a \"negotiation phase\" to pick a timestamp. As a result, they execute slightly faster than the equivalent boundedly stale concurrency modes. On the other hand, boundedly stale reads usually return fresher results. See TransactionOptions.ReadOnly.read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded staleness modes allow Cloud Spanner to pick the read timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses the newest timestamp within the staleness bound that allows execution of the reads at the closest available replica without blocking. All rows yielded are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Boundedly stale reads are not repeatable: two stale reads, even if they use the same staleness bound, can execute at different timestamps and thus return inconsistent results. Boundedly stale reads execute in two phases: the first phase negotiates a timestamp among all replicas needed to serve the read. In the second phase, reads are executed at the negotiated timestamp. As a result of the two phase execution, bounded staleness reads are usually a little slower than comparable exact staleness reads. However, they are typically able to return fresher results, and are more likely to execute at the closest replica. Because the timestamp negotiation requires up-front knowledge of which rows will be read, it can only be used with single-use read-only transactions. See TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner continuously garbage collects deleted and overwritten data in the background to reclaim storage space. This process is known as \"version GC\". By default, version GC reclaims versions after they are one hour old. Because of this, Cloud Spanner cannot perform reads at read timestamps more than one hour in the past. This restriction also applies to in-progress reads and/or SQL queries whose timestamp become too old while executing. Reads and SQL queries with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long as one week, which allows Cloud Spanner to perform reads up to one week in the past. Querying change Streams: A Change Stream is a schema object that can be configured to watch data changes on the entire database, a set of tables, or a set of columns in a database. When a change stream is created, Spanner automatically defines a corresponding SQL Table-Valued Function (TVF) that can be used to query the change records in the associated change stream using the ExecuteStreamingSql API. The name of the TVF for a change stream is generated from the name of the change stream: READ_. All queries on change stream TVFs must be executed using the ExecuteStreamingSql API with a single-use read-only transaction with a strong read-only timestamp_bound. The change stream TVF allows users to specify the start_timestamp and end_timestamp for the time range of interest. All change records within the retention period is accessible using the strong read-only timestamp_bound. All other TransactionOptions are invalid for change stream queries. In addition, if TransactionOptions.read_only.return_read_timestamp is set to true, a special value of 2^63 - 2 will be returned in the Transaction message that describes the transaction, instead of a valid read timestamp. This special value should be discarded and not used for any subsequent queries. Please see https://cloud.google.com/spanner/docs/change-streams for more details on how to query the change stream TVFs. Partitioned DML transactions: Partitioned DML transactions are used to execute DML statements with a different execution strategy that provides different, and often better, scalability properties for large, table-wide operations than DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, should prefer using ReadWrite transactions. Partitioned DML partitions the keyspace and runs the DML statement on each partition in separate, internal transactions. These transactions commit automatically when complete, and run independently from one another. To reduce lock contention, this execution strategy only acquires read locks on rows that match the WHERE clause of the statement. Additionally, the smaller per-partition transactions hold locks for less time. That said, Partitioned DML is not a drop-in replacement for standard DML used in ReadWrite transactions. - The DML statement must be fully-partitionable. Specifically, the statement must be expressible as the union of many statements which each access only a single row of the table. - The statement is not applied atomically to all rows of the table. Rather, the statement is applied atomically to partitions of the table, in independent transactions. Secondary index rows are updated atomically with the base table rows. - Partitioned DML does not guarantee exactly-once execution semantics against a partition. The statement will be applied at least once to each partition. It is strongly recommended that the DML statement should be idempotent to avoid unexpected results. For instance, it is potentially dangerous to run a statement such as `UPDATE table SET column = column + 1` as it could be run multiple times against some rows. - The partitions are committed automatically - there is no support for Commit or Rollback. If the call returns an error, or if the client issuing the ExecuteSql call dies, it is possible that some rows had the statement executed on them successfully. It is also possible that statement was never executed against other rows. - Partitioned DML transactions may only contain the execution of a single DML statement via ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the execution of the partitioned DML operation (for instance, a UNIQUE INDEX violation, division by zero, or a value that cannot be stored due to schema constraints), then the operation is stopped at that point and an error is returned. It is possible that at this point, some partitions have been committed (or even committed multiple times), and other partitions have not been run at all. Given the above, Partitioned DML is good fit for large, database-wide, operations that are idempotent, such as deleting old rows from a very large table.", "id": "TransactionOptions", "properties": { "partitionedDml": { @@ -4404,7 +5139,9 @@ "ARRAY", "STRUCT", "NUMERIC", - "JSON" + "JSON", + "PROTO", + "ENUM" ], "enumDescriptions": [ "Not specified.", @@ -4418,10 +5155,16 @@ "Encoded as `list`, where the list elements are represented according to array_element_type.", "Encoded as `list`, where list element `i` is represented according to [struct_type.fields[i]][google.spanner.v1.StructType.fields].", "Encoded as `string`, in decimal format or scientific notation format. Decimal format: `[+-]Digits[.[Digits]]` or `+-.Digits` Scientific notation: `[+-]Digits[.[Digits]][ExponentIndicator[+-]Digits]` or `+-.Digits[ExponentIndicator[+-]Digits]` (ExponentIndicator is `\"e\"` or `\"E\"`)", - "Encoded as a JSON-formatted `string` as described in RFC 7159. The following rules are applied when parsing JSON input: - Whitespace characters are not preserved. - If a JSON object has duplicate keys, only the first key is preserved. - Members of a JSON object are not guaranteed to have their order preserved. - JSON array elements will have their order preserved." + "Encoded as a JSON-formatted `string` as described in RFC 7159. The following rules are applied when parsing JSON input: - Whitespace characters are not preserved. - If a JSON object has duplicate keys, only the first key is preserved. - Members of a JSON object are not guaranteed to have their order preserved. - JSON array elements will have their order preserved.", + "Encoded as a base64-encoded `string`, as described in RFC 4648, section 4.", + "Encoded as `string`, in decimal format." ], "type": "string" }, + "protoTypeFqn": { + "description": "If code == PROTO or code == ENUM, then `proto_type_fqn` is the fully qualified name of the proto type representing the proto/enum definition.", + "type": "string" + }, "structType": { "$ref": "StructType", "description": "If code == STRUCT, then `struct_type` provides type information for the struct's fields." @@ -4430,11 +5173,13 @@ "description": "The TypeAnnotationCode that disambiguates SQL type that Spanner will use to represent values of this type during query processing. This is necessary for some type codes because a single TypeCode can be mapped to different SQL types depending on the SQL dialect. type_annotation typically is not needed to process the content of a value (it doesn't affect serialization) and clients can ignore it on the read path.", "enum": [ "TYPE_ANNOTATION_CODE_UNSPECIFIED", - "PG_NUMERIC" + "PG_NUMERIC", + "PG_JSONB" ], "enumDescriptions": [ "Not specified.", - "PostgreSQL compatible NUMERIC type. This annotation needs to be applied to Type instances having NUMERIC type code to specify that values of this type should be treated as PostgreSQL NUMERIC values. Currently this annotation is always needed for NUMERIC when a client interacts with PostgreSQL-enabled Spanner databases." + "PostgreSQL compatible NUMERIC type. This annotation needs to be applied to Type instances having NUMERIC type code to specify that values of this type should be treated as PostgreSQL NUMERIC values. Currently this annotation is always needed for NUMERIC when a client interacts with PostgreSQL-enabled Spanner databases.", + "PostgreSQL compatible JSONB type. This annotation needs to be applied to Type instances having JSON type code to specify that values of this type should be treated as PostgreSQL JSONB values. Currently this annotation is always needed for JSON when a client interacts with PostgreSQL-enabled Spanner databases." ], "type": "string" } @@ -4487,6 +5232,11 @@ "description": "If empty, the new update request is assigned an automatically-generated operation ID. Otherwise, `operation_id` is used to construct the name of the resulting Operation. Specifying an explicit operation ID simplifies determining whether the statements were executed in the event that the UpdateDatabaseDdl call is replayed, or the return value is otherwise lost: the database and `operation_id` fields can be combined to form the name of the resulting longrunning.Operation: `/operations/`. `operation_id` should be unique within the database, and must be a valid identifier: `a-z*`. Note that automatically-generated operation IDs always begin with an underscore. If the named operation already exists, UpdateDatabaseDdl returns `ALREADY_EXISTS`.", "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).", + "format": "byte", + "type": "string" + }, "statements": { "description": "Required. DDL statements to be applied to the database.", "items": { @@ -4497,6 +5247,46 @@ }, "type": "object" }, + "UpdateInstanceConfigMetadata": { + "description": "Metadata type for the operation returned by UpdateInstanceConfig.", + "id": "UpdateInstanceConfigMetadata", + "properties": { + "cancelTime": { + "description": "The time at which this operation was cancelled.", + "format": "google-datetime", + "type": "string" + }, + "instanceConfig": { + "$ref": "InstanceConfig", + "description": "The desired instance config after updating." + }, + "progress": { + "$ref": "InstanceOperationProgress", + "description": "The progress of the UpdateInstanceConfig operation." + } + }, + "type": "object" + }, + "UpdateInstanceConfigRequest": { + "description": "The request for UpdateInstanceConfigRequest.", + "id": "UpdateInstanceConfigRequest", + "properties": { + "instanceConfig": { + "$ref": "InstanceConfig", + "description": "Required. The user instance config to update, which must always include the instance config name. Otherwise, only fields mentioned in update_mask need be included. To prevent conflicts of concurrent updates, etag can be used." + }, + "updateMask": { + "description": "Required. A mask specifying which fields in InstanceConfig should be updated. The field mask must always be specified; this prevents any future fields in InstanceConfig from being erased accidentally by clients that do not know about them. Only display_name and labels can be updated.", + "format": "google-fieldmask", + "type": "string" + }, + "validateOnly": { + "description": "An option to validate, but not actually execute, a request, and provide the same response.", + "type": "boolean" + } + }, + "type": "object" + }, "UpdateInstanceMetadata": { "description": "Metadata type for the operation returned by UpdateInstance.", "id": "UpdateInstanceMetadata", diff --git a/etc/api/speech/v1/speech-api.json b/etc/api/speech/v1/speech-api.json index 9c2ffa1dbe..43eee7b82b 100644 --- a/etc/api/speech/v1/speech-api.json +++ b/etc/api/speech/v1/speech-api.json @@ -187,7 +187,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent resource where this custom class will be created. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent resource where this custom class will be created. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -215,7 +215,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the custom class to delete. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The name of the custom class to delete. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/customClasses/[^/]+$", "required": true, @@ -276,7 +276,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of custom classes. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent, which owns this collection of custom classes. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -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](/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}/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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -392,7 +392,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the phrase set to retrieve. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The name of the phrase set to retrieve. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/phraseSets/[^/]+$", "required": true, @@ -428,7 +428,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of phrase set. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent, which owns this collection of phrase set. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -524,9 +524,22 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://speech.googleapis.com/", "schemas": { + "ABNFGrammar": { + "id": "ABNFGrammar", + "properties": { + "abnfStrings": { + "description": "All declarations and rules of an ABNF grammar broken up into multiple strings that will end up concatenated.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ClassItem": { "description": "An item of the class.", "id": "ClassItem", @@ -547,7 +560,7 @@ "description": "Required. The custom class to create." }, "customClassId": { - "description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", "type": "string" } }, @@ -562,7 +575,7 @@ "description": "Required. The phrase set to create." }, "phraseSetId": { - "description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", "type": "string" } }, @@ -591,7 +604,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -708,6 +721,11 @@ "$ref": "Status", "description": "If the transcript output fails this field contains the relevant error." }, + "requestId": { + "description": "The ID associated with the request. This is a unique ID specific only to the given request.", + "format": "int64", + "type": "string" + }, "results": { "description": "Sequential list of transcription results corresponding to sequential portions of audio.", "items": { @@ -715,6 +733,10 @@ }, "type": "array" }, + "speechAdaptationInfo": { + "$ref": "SpeechAdaptationInfo", + "description": "Provides information on speech adaptation behavior in response" + }, "totalBilledTime": { "description": "When available, billed audio seconds for the corresponding request.", "format": "google-duration", @@ -759,11 +781,11 @@ "type": "object" }, "Phrase": { - "description": "A phrases containing words and phrase \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. \"i was born in january\", \"i was born in febuary\", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. \"i was born in $month\"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. \"${my-months}\". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "A phrases containing words and phrase \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. \"i was born in january\", \"i was born in febuary\", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. \"i was born in $month\"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. \"${my-months}\". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). 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.", "id": "Phrase", "properties": { "boost": { - "description": "Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case. Speech recognition will skip PhraseSets with a boost value of 0.", + "description": "Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", "format": "float", "type": "number" }, @@ -779,7 +801,7 @@ "id": "PhraseSet", "properties": { "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. Speech recognition will skip PhraseSets with a boost value of 0.", + "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" }, @@ -829,7 +851,7 @@ "type": "array" }, "audioChannelCount": { - "description": "The number of channels in the input audio data. ONLY set this for MULTI-CHANNEL recognition. Valid values for LINEAR16 and FLAC are `1`-`8`. Valid values for OGG_OPUS are '1'-'254'. Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. If `0` or omitted, defaults to one channel (mono). Note: We only recognize the first channel by default. To perform independent recognition on each channel set `enable_separate_recognition_per_channel` to 'true'.", + "description": "The number of channels in the input audio data. ONLY set this for MULTI-CHANNEL recognition. Valid values for LINEAR16, OGG_OPUS and FLAC are `1`-`8`. Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. If `0` or omitted, defaults to one channel (mono). Note: We only recognize the first channel by default. To perform independent recognition on each channel set `enable_separate_recognition_per_channel` to 'true'.", "format": "int32", "type": "integer" }, @@ -901,7 +923,7 @@ "description": "Metadata regarding this request." }, "model": { - "description": "Which 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 RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate. medical_conversation Best for audio that originated from a conversation between a medical provider and patient. medical_dictation Best for audio that originated from dictation notes by a medical provider. ", + "description": "Which 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 RecognitionConfig. *Model* *Description* latest_long Best for long form content like media or conversation. latest_short Best for short form content like commands or single shot directed speech. command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate. medical_conversation Best for audio that originated from a conversation between a medical provider and patient. medical_dictation Best for audio that originated from dictation notes by a medical provider. ", "type": "string" }, "profanityFilter": { @@ -1048,6 +1070,11 @@ "description": "The only message returned to the client by the `Recognize` method. It contains the result as zero or more sequential `SpeechRecognitionResult` messages.", "id": "RecognizeResponse", "properties": { + "requestId": { + "description": "The ID associated with the request. This is a unique ID specific only to the given request.", + "format": "int64", + "type": "string" + }, "results": { "description": "Sequential list of transcription results corresponding to sequential portions of audio.", "items": { @@ -1055,6 +1082,10 @@ }, "type": "array" }, + "speechAdaptationInfo": { + "$ref": "SpeechAdaptationInfo", + "description": "Provides information on adaptation behavior in response" + }, "totalBilledTime": { "description": "When available, billed audio seconds for the corresponding request.", "format": "google-duration", @@ -1094,6 +1125,10 @@ "description": "Speech adaptation configuration.", "id": "SpeechAdaptation", "properties": { + "abnfGrammar": { + "$ref": "ABNFGrammar", + "description": "Augmented Backus-Naur form (ABNF) is a standardized grammar notation comprised by a set of derivation rules. See specifications: https://www.w3.org/TR/speech-grammar" + }, "customClasses": { "description": "A collection of custom classes. To specify the classes inline, leave the class' `name` blank and fill in the rest of its fields, giving it a unique `custom_class_id`. Refer to the inline defined class in phrase hints by its `custom_class_id`.", "items": { @@ -1118,6 +1153,21 @@ }, "type": "object" }, + "SpeechAdaptationInfo": { + "description": "Information on speech adaptation use in results", + "id": "SpeechAdaptationInfo", + "properties": { + "adaptationTimeout": { + "description": "Whether there was a timeout when applying speech adaptation. If true, adaptation had no effect in the response transcript.", + "type": "boolean" + }, + "timeoutMessage": { + "description": "If set, returns a message specifying which part of the speech adaptation request timed out.", + "type": "string" + } + }, + "type": "object" + }, "SpeechContext": { "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", "id": "SpeechContext", diff --git a/etc/api/speech/v1p1beta1/speech-api.json b/etc/api/speech/v1p1beta1/speech-api.json index b97927585f..6896c08af5 100644 --- a/etc/api/speech/v1p1beta1/speech-api.json +++ b/etc/api/speech/v1p1beta1/speech-api.json @@ -187,7 +187,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent resource where this custom class will be created. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent resource where this custom class will be created. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -215,7 +215,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the custom class to delete. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The name of the custom class to delete. Format: `projects/{project}/locations/{location}/customClasses/{custom_class}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/customClasses/[^/]+$", "required": true, @@ -276,7 +276,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of custom classes. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent, which owns this collection of custom classes. Format: `projects/{project}/locations/{location}/customClasses` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -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](/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}/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.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -392,7 +392,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the phrase set to retrieve. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The name of the phrase set to retrieve. Format: `projects/{project}/locations/{location}/phraseSets/{phrase_set}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/phraseSets/[^/]+$", "required": true, @@ -428,7 +428,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of phrase set. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "Required. The parent, which owns this collection of phrase set. Format: `projects/{project}/locations/{location}` Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](https://cloud.google.com/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -524,9 +524,22 @@ } } }, - "revision": "20220221", + "revision": "20230119", "rootUrl": "https://speech.googleapis.com/", "schemas": { + "ABNFGrammar": { + "id": "ABNFGrammar", + "properties": { + "abnfStrings": { + "description": "All declarations and rules of an ABNF grammar broken up into multiple strings that will end up concatenated.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ClassItem": { "description": "An item of the class.", "id": "ClassItem", @@ -547,7 +560,7 @@ "description": "Required. The custom class to create." }, "customClassId": { - "description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the custom class, which will become the final component of the custom class' resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", "type": "string" } }, @@ -562,7 +575,7 @@ "description": "Required. The phrase set to create." }, "phraseSetId": { - "description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", + "description": "Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource name. This value should restrict to letters, numbers, and hyphens, with the first character a letter, the last a letter or a number, and be 4-63 characters.", "type": "string" } }, @@ -591,7 +604,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -732,6 +745,11 @@ "$ref": "Status", "description": "If the transcript output fails this field contains the relevant error." }, + "requestId": { + "description": "The ID associated with the request. This is a unique ID specific only to the given request.", + "format": "int64", + "type": "string" + }, "results": { "description": "Sequential list of transcription results corresponding to sequential portions of audio.", "items": { @@ -739,6 +757,10 @@ }, "type": "array" }, + "speechAdaptationInfo": { + "$ref": "SpeechAdaptationInfo", + "description": "Provides information on speech adaptation behavior in response" + }, "totalBilledTime": { "description": "When available, billed audio seconds for the corresponding request.", "format": "google-duration", @@ -783,11 +805,11 @@ "type": "object" }, "Phrase": { - "description": "A phrases containing words and phrase \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. \"i was born in january\", \"i was born in febuary\", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. \"i was born in $month\"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. \"${my-months}\". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). Speech-to-Text supports three locations: `global`, `us` (US North America), and `eu` (Europe). If you are calling the `speech.googleapis.com` endpoint, use the `global` location. To specify a region, use a [regional endpoint](/speech-to-text/docs/endpoints) with matching `us` or `eu` location value.", + "description": "A phrases containing words and phrase \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech-to-text/quotas#content). List items can also include pre-built or custom classes containing groups of words that represent common concepts that occur in natural language. For example, rather than providing a phrase hint for every month of the year (e.g. \"i was born in january\", \"i was born in febuary\", ...), use the pre-built `$MONTH` class improves the likelihood of correctly transcribing audio that includes months (e.g. \"i was born in $month\"). To refer to pre-built classes, use the class' symbol prepended with `$` e.g. `$MONTH`. To refer to custom classes that were defined inline in the request, set the class's `custom_class_id` to a string unique to all class resources and inline classes. Then use the class' id wrapped in $`{...}` e.g. \"${my-months}\". To refer to custom classes resources, use the class' id wrapped in `${}` (e.g. `${my-months}`). 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.", "id": "Phrase", "properties": { "boost": { - "description": "Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case. Speech recognition will skip PhraseSets with a boost value of 0.", + "description": "Hint Boost. Overrides the boost set at the phrase set level. Positive value will increase the probability that a specific phrase will be recognized over other similar sounding phrases. The higher the boost, the higher the chance of false positive recognition as well. Negative boost will simply be ignored. Though `boost` can accept a wide range of positive values, most use cases are best served with values between 0 and 20. We recommend using a binary search approach to finding the optimal value for your use case as well as adding phrases both with and without boost to your requests.", "format": "float", "type": "number" }, @@ -803,7 +825,7 @@ "id": "PhraseSet", "properties": { "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. Speech recognition will skip PhraseSets with a boost value of 0.", + "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" }, @@ -853,7 +875,7 @@ "type": "array" }, "audioChannelCount": { - "description": "The number of channels in the input audio data. ONLY set this for MULTI-CHANNEL recognition. Valid values for LINEAR16 and FLAC are `1`-`8`. Valid values for OGG_OPUS are '1'-'254'. Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. If `0` or omitted, defaults to one channel (mono). Note: We only recognize the first channel by default. To perform independent recognition on each channel set `enable_separate_recognition_per_channel` to 'true'.", + "description": "The number of channels in the input audio data. ONLY set this for MULTI-CHANNEL recognition. Valid values for LINEAR16, OGG_OPUS and FLAC are `1`-`8`. Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. If `0` or omitted, defaults to one channel (mono). Note: We only recognize the first channel by default. To perform independent recognition on each channel set `enable_separate_recognition_per_channel` to 'true'.", "format": "int32", "type": "integer" }, @@ -936,7 +958,7 @@ "description": "Metadata regarding this request." }, "model": { - "description": "Which 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 RecognitionConfig. *Model* *Description* command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate. medical_conversation Best for audio that originated from a conversation between a medical provider and patient. medical_dictation Best for audio that originated from dictation notes by a medical provider. ", + "description": "Which 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 RecognitionConfig. *Model* *Description* latest_long Best for long form content like media or conversation. latest_short Best for short form content like commands or single shot directed speech. command_and_search Best for short queries such as voice commands or voice search. phone_call Best for audio that originated from a phone call (typically recorded at an 8khz sampling rate). video Best for audio that originated from video or includes multiple speakers. Ideally the audio is recorded at a 16khz or greater sampling rate. This is a premium model that costs more than the standard rate. default Best for audio that is not one of the specific audio models. For example, long-form audio. Ideally the audio is high-fidelity, recorded at a 16khz or greater sampling rate. medical_conversation Best for audio that originated from a conversation between a medical provider and patient. medical_dictation Best for audio that originated from dictation notes by a medical provider. ", "type": "string" }, "profanityFilter": { @@ -1092,6 +1114,11 @@ "description": "The only message returned to the client by the `Recognize` method. It contains the result as zero or more sequential `SpeechRecognitionResult` messages.", "id": "RecognizeResponse", "properties": { + "requestId": { + "description": "The ID associated with the request. This is a unique ID specific only to the given request.", + "format": "int64", + "type": "string" + }, "results": { "description": "Sequential list of transcription results corresponding to sequential portions of audio.", "items": { @@ -1099,6 +1126,10 @@ }, "type": "array" }, + "speechAdaptationInfo": { + "$ref": "SpeechAdaptationInfo", + "description": "Provides information on adaptation behavior in response" + }, "totalBilledTime": { "description": "When available, billed audio seconds for the corresponding request.", "format": "google-duration", @@ -1138,6 +1169,10 @@ "description": "Speech adaptation configuration.", "id": "SpeechAdaptation", "properties": { + "abnfGrammar": { + "$ref": "ABNFGrammar", + "description": "Augmented Backus-Naur form (ABNF) is a standardized grammar notation comprised by a set of derivation rules. See specifications: https://www.w3.org/TR/speech-grammar" + }, "customClasses": { "description": "A collection of custom classes. To specify the classes inline, leave the class' `name` blank and fill in the rest of its fields, giving it a unique `custom_class_id`. Refer to the inline defined class in phrase hints by its `custom_class_id`.", "items": { @@ -1162,6 +1197,21 @@ }, "type": "object" }, + "SpeechAdaptationInfo": { + "description": "Information on speech adaptation use in results", + "id": "SpeechAdaptationInfo", + "properties": { + "adaptationTimeout": { + "description": "Whether there was a timeout when applying speech adaptation. If true, adaptation had no effect in the response transcript.", + "type": "boolean" + }, + "timeoutMessage": { + "description": "If set, returns a message specifying which part of the speech adaptation request timed out.", + "type": "string" + } + }, + "type": "object" + }, "SpeechContext": { "description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", "id": "SpeechContext", diff --git a/etc/api/sqladmin/v1/sqladmin-api.json b/etc/api/sqladmin/v1/sqladmin-api.json index 61635ac119..f14b057cd4 100644 --- a/etc/api/sqladmin/v1/sqladmin-api.json +++ b/etc/api/sqladmin/v1/sqladmin-api.json @@ -920,7 +920,7 @@ "type": "string" }, "maxResults": { - "description": "The maximum number of results to return per response.", + "description": "The maximum number of instances to return. The service may return fewer than this value. If unspecified, at most 500 instances are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "uint32", "location": "query", "type": "integer" @@ -979,7 +979,7 @@ ] }, "patch": { - "description": "Updates settings of a Cloud SQL instance. This method supports patch semantics.", + "description": "Partially updates settings of a Cloud SQL instance by merging the request with the current configuration. This method supports patch semantics.", "flatPath": "v1/projects/{project}/instances/{instance}", "httpMethod": "PATCH", "id": "sql.instances.patch", @@ -1762,6 +1762,50 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "get": { + "description": "Retrieves a resource containing information about a user.", + "flatPath": "v1/projects/{project}/instances/{instance}/users/{name}", + "httpMethod": "GET", + "id": "sql.users.get", + "parameterOrder": [ + "project", + "instance", + "name" + ], + "parameters": { + "host": { + "description": "Host of a user of the instance.", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "User of the instance.", + "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}/users/{name}", + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "insert": { "description": "Creates a new user in a Cloud SQL instance.", "flatPath": "v1/projects/{project}/instances/{instance}/users", @@ -1877,7 +1921,7 @@ } } }, - "revision": "20220226", + "revision": "20221209", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -1912,11 +1956,13 @@ "description": "Code to uniquely identify the warning type.", "enum": [ "SQL_API_WARNING_CODE_UNSPECIFIED", - "REGION_UNREACHABLE" + "REGION_UNREACHABLE", + "MAX_RESULTS_EXCEEDS_LIMIT" ], "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 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." ], "type": "string" }, @@ -2113,8 +2159,12 @@ ], "type": "string" }, + "timeZone": { + "description": "Backup time zone to prevent restores to an instance with a different time zone. Now relevant only for SQL Server.", + "type": "string" + }, "type": { - "description": "The type of this run; can be either \"AUTOMATED\" or \"ON_DEMAND\". This field defaults to \"ON_DEMAND\" and is ignored, when specified for insert requests.", + "description": "The type of this run; can be either \"AUTOMATED\" or \"ON_DEMAND\" or \"FINAL\". This field defaults to \"ON_DEMAND\" and is ignored, when specified for insert requests.", "enum": [ "SQL_BACKUP_RUN_TYPE_UNSPECIFIED", "AUTOMATED", @@ -2182,13 +2232,20 @@ "id": "CloneContext", "properties": { "allocatedIpRange": { - "description": "The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future use.", + "description": "The name of the allocated ip range for the private ip Cloud SQL instance. For example: \"google-managed-services-default\". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future use.", "type": "string" }, "binLogCoordinates": { "$ref": "BinLogCoordinates", "description": "Binary log coordinates, if specified, identify the position up to which the source instance is cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates." }, + "databaseNames": { + "description": "(SQL Server only) Clone only the specified databases from the source instance. Clone all databases if empty.", + "items": { + "type": "string" + }, + "type": "array" + }, "destinationInstanceName": { "description": "Name of the Cloud SQL instance to be created as a clone.", "type": "string" @@ -2238,19 +2295,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2262,19 +2324,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2416,19 +2483,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2440,19 +2512,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2566,7 +2643,7 @@ "type": "array" }, "rootPassword": { - "description": "Initial root password. Use only on creation.", + "description": "Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.", "type": "string" }, "satisfiesPzs": { @@ -2789,6 +2866,21 @@ "description": "Database instance export context.", "id": "ExportContext", "properties": { + "bakExportOptions": { + "description": "Options for exporting BAK files (SQL Server-only)", + "properties": { + "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", + "type": "integer" + }, + "striped": { + "description": "Whether or not the export should be striped.", + "type": "boolean" + } + }, + "type": "object" + }, "csvExportOptions": { "description": "Options for exporting data as CSV. `MySQL` and `PostgreSQL` instances only.", "properties": { @@ -2925,19 +3017,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2949,19 +3046,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3101,6 +3203,10 @@ } }, "type": "object" + }, + "striped": { + "description": "Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.", + "type": "boolean" } }, "type": "object" @@ -3364,7 +3470,7 @@ "id": "IpConfiguration", "properties": { "allocatedIpRange": { - "description": "The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`", + "description": "The name of the allocated ip range for the private ip Cloud SQL instance. For example: \"google-managed-services-default\". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`", "type": "string" }, "authorizedNetworks": { @@ -3374,6 +3480,10 @@ }, "type": "array" }, + "enablePrivatePathForGoogleCloudServices": { + "description": "Controls connectivity to private IP instances from Google services, such as BigQuery.", + "type": "boolean" + }, "ipv4Enabled": { "description": "Whether the instance is assigned a public IP address or not.", "type": "boolean" @@ -3666,7 +3776,9 @@ "DEFER_MAINTENANCE", "CREATE_CLONE", "RESCHEDULE_MAINTENANCE", - "START_EXTERNAL_SYNC" + "START_EXTERNAL_SYNC", + "LOG_CLEANUP", + "AUTO_RESTART" ], "enumDescriptions": [ "Unknown operation type.", @@ -3703,7 +3815,9 @@ "", "Creates clone instance.", "Reschedule maintenance to another time.", - "Starts external sync of a Cloud SQL EM replica to an external primary instance." + "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." ], "type": "string" }, @@ -3845,13 +3959,17 @@ "description": "Disallow username as a part of the password.", "type": "boolean" }, + "enablePasswordPolicy": { + "description": "Whether the password policy is enabled or not.", + "type": "boolean" + }, "minLength": { "description": "Minimum number of characters allowed.", "format": "int32", "type": "integer" }, "passwordChangeInterval": { - "description": "Minimum interval after which the password can be changed. This flag is only supported for PostgresSQL.", + "description": "Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.", "format": "google-duration", "type": "string" }, @@ -4001,6 +4119,20 @@ "description": "The name of server Instance collation.", "type": "string" }, + "connectorEnforcement": { + "description": "Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors). Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.", + "enum": [ + "CONNECTOR_ENFORCEMENT_UNSPECIFIED", + "NOT_REQUIRED", + "REQUIRED" + ], + "enumDescriptions": [ + "The requirement for Cloud SQL connectors is unknown.", + "Do not require Cloud SQL connectors.", + "Require all connections to use Cloud SQL connectors, including the Cloud SQL Auth Proxy and Cloud SQL Java, Python, and Go connectors. Note: This disables all existing authorized networks." + ], + "type": "string" + }, "crashSafeReplicationEnabled": { "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" @@ -4037,6 +4169,10 @@ "description": "Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.", "type": "boolean" }, + "deletionProtectionEnabled": { + "description": "Configuration to protect against accidental instance deletion.", + "type": "boolean" + }, "denyMaintenancePeriods": { "description": "Deny maintenance periods", "items": { @@ -4118,6 +4254,10 @@ "description": "The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.", "type": "string" }, + "timeZone": { + "description": "Server timezone, relevant only for Cloud SQL for SQL Server.", + "type": "string" + }, "userLabels": { "additionalProperties": { "type": "string" @@ -4183,7 +4323,9 @@ "SQLSERVER_SERVERNAME_MISMATCH", "PRIMARY_ALREADY_SETUP", "UNSUPPORTED_BINLOG_FORMAT", - "BINLOG_RETENTION_SETTING" + "BINLOG_RETENTION_SETTING", + "UNSUPPORTED_STORAGE_ENGINE", + "LIMITED_SUPPORT_TABLES" ], "enumDescriptions": [ "", @@ -4211,7 +4353,9 @@ "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'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" ], "type": "string" } @@ -4343,7 +4487,7 @@ "type": "object" }, "SqlScheduledMaintenance": { - "description": "Any scheduled maintenancce for this instance.", + "description": "Any scheduled maintenance for this instance.", "id": "SqlScheduledMaintenance", "properties": { "canDefer": { @@ -4377,6 +4521,16 @@ "kind": { "description": "This is always sql#sqlServerAuditConfig", "type": "string" + }, + "retentionInterval": { + "description": "How long to keep generated audit files.", + "format": "google-duration", + "type": "string" + }, + "uploadInterval": { + "description": "How often to upload generated audit files.", + "format": "google-duration", + "type": "string" } }, "type": "object" @@ -4626,6 +4780,22 @@ "description": "A Cloud SQL user resource.", "id": "User", "properties": { + "dualPasswordType": { + "description": "Dual password status for the user.", + "enum": [ + "DUAL_PASSWORD_TYPE_UNSPECIFIED", + "NO_MODIFY_DUAL_PASSWORD", + "NO_DUAL_PASSWORD", + "DUAL_PASSWORD" + ], + "enumDescriptions": [ + "The default value.", + "Do not update the user's dual password status.", + "No dual password usable for connecting using this user.", + "Dual password usable for connecting using this user." + ], + "type": "string" + }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API.", "type": "string" @@ -4691,6 +4861,10 @@ "description": "If true, failed login attempts check will be enabled.", "type": "boolean" }, + "enablePasswordVerification": { + "description": "If true, the user must specify the current password before changing the password. This flag is supported only for MySQL.", + "type": "boolean" + }, "passwordExpirationDuration": { "description": "Expiration duration after password is updated.", "format": "google-duration", diff --git a/etc/api/sqladmin/v1beta4/sqladmin-api.json b/etc/api/sqladmin/v1beta4/sqladmin-api.json index 42b77e07c6..4a450c7e58 100644 --- a/etc/api/sqladmin/v1beta4/sqladmin-api.json +++ b/etc/api/sqladmin/v1beta4/sqladmin-api.json @@ -920,7 +920,7 @@ "type": "string" }, "maxResults": { - "description": "The maximum number of results to return per response.", + "description": "The maximum number of instances to return. The service may return fewer than this value. If unspecified, at most 500 instances are returned. The maximum value is 1000; values above 1000 are coerced to 1000.", "format": "uint32", "location": "query", "type": "integer" @@ -979,7 +979,7 @@ ] }, "patch": { - "description": "Updates settings of a Cloud SQL instance. This method supports patch semantics.", + "description": "Partially updates settings of a Cloud SQL instance by merging the request with the current configuration. This method supports patch semantics.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}", "httpMethod": "PATCH", "id": "sql.instances.patch", @@ -1762,6 +1762,50 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "get": { + "description": "Retrieves a resource containing information about a user.", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/users/{name}", + "httpMethod": "GET", + "id": "sql.users.get", + "parameterOrder": [ + "project", + "instance", + "name" + ], + "parameters": { + "host": { + "description": "Host of a user of the instance.", + "location": "query", + "type": "string" + }, + "instance": { + "description": "Database instance ID. This does not include the project ID.", + "location": "path", + "required": true, + "type": "string" + }, + "name": { + "description": "User of the instance.", + "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}/users/{name}", + "response": { + "$ref": "User" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "insert": { "description": "Creates a new user in a Cloud SQL instance.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/users", @@ -1877,7 +1921,7 @@ } } }, - "revision": "20220226", + "revision": "20221209", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -1912,11 +1956,13 @@ "description": "Code to uniquely identify the warning type.", "enum": [ "SQL_API_WARNING_CODE_UNSPECIFIED", - "REGION_UNREACHABLE" + "REGION_UNREACHABLE", + "MAX_RESULTS_EXCEEDS_LIMIT" ], "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 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." ], "type": "string" }, @@ -2113,8 +2159,12 @@ ], "type": "string" }, + "timeZone": { + "description": "Backup time zone to prevent restores to an instance with a different time zone. Now relevant only for SQL Server.", + "type": "string" + }, "type": { - "description": "The type of this run; can be either \"AUTOMATED\" or \"ON_DEMAND\". This field defaults to \"ON_DEMAND\" and is ignored, when specified for insert requests.", + "description": "The type of this run; can be either \"AUTOMATED\" or \"ON_DEMAND\" or \"FINAL\". This field defaults to \"ON_DEMAND\" and is ignored, when specified for insert requests.", "enum": [ "SQL_BACKUP_RUN_TYPE_UNSPECIFIED", "AUTOMATED", @@ -2182,13 +2232,20 @@ "id": "CloneContext", "properties": { "allocatedIpRange": { - "description": "The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future use.", + "description": "The name of the allocated ip range for the private ip Cloud SQL instance. For example: \"google-managed-services-default\". If set, the cloned instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?. Reserved for future use.", "type": "string" }, "binLogCoordinates": { "$ref": "BinLogCoordinates", "description": "Binary log coordinates, if specified, identify the position up to which the source instance is cloned. If not specified, the source instance is cloned up to the most recent binary log coordinates." }, + "databaseNames": { + "description": "(SQL Server only) Clone only the specified databases from the source instance. Clone all databases if empty.", + "items": { + "type": "string" + }, + "type": "array" + }, "destinationInstanceName": { "description": "Name of the Cloud SQL instance to be created as a clone.", "type": "string" @@ -2238,19 +2295,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2262,19 +2324,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2416,19 +2483,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2440,19 +2512,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2566,7 +2643,7 @@ "type": "array" }, "rootPassword": { - "description": "Initial root password. Use only on creation.", + "description": "Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.", "type": "string" }, "satisfiesPzs": { @@ -2789,6 +2866,21 @@ "description": "Database instance export context.", "id": "ExportContext", "properties": { + "bakExportOptions": { + "description": "Options for exporting BAK files (SQL Server-only)", + "properties": { + "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", + "type": "integer" + }, + "striped": { + "description": "Whether or not the export should be striped.", + "type": "boolean" + } + }, + "type": "object" + }, "csvExportOptions": { "description": "Options for exporting data as CSV. `MySQL` and `PostgreSQL` instances only.", "properties": { @@ -2925,19 +3017,24 @@ "MYSQL_5_5", "MYSQL_5_6", "MYSQL_5_7", - "POSTGRES_9_6", - "POSTGRES_11", "SQLSERVER_2017_STANDARD", "SQLSERVER_2017_ENTERPRISE", "SQLSERVER_2017_EXPRESS", "SQLSERVER_2017_WEB", + "POSTGRES_9_6", "POSTGRES_10", + "POSTGRES_11", "POSTGRES_12", + "POSTGRES_13", + "POSTGRES_14", "MYSQL_8_0", "MYSQL_8_0_18", "MYSQL_8_0_26", - "POSTGRES_13", - "POSTGRES_14", + "MYSQL_8_0_27", + "MYSQL_8_0_28", + "MYSQL_8_0_29", + "MYSQL_8_0_30", + "MYSQL_8_0_31", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2949,19 +3046,24 @@ "The database version is MySQL 5.5.", "The database version is MySQL 5.6.", "The database version is MySQL 5.7.", - "The database version is PostgreSQL 9.6.", - "The database version is PostgreSQL 11.", "The database version is SQL Server 2017 Standard.", "The database version is SQL Server 2017 Enterprise.", "The database version is SQL Server 2017 Express.", "The database version is SQL Server 2017 Web.", + "The database version is PostgreSQL 9.6.", "The database version is PostgreSQL 10.", + "The database version is PostgreSQL 11.", "The database version is PostgreSQL 12.", + "The database version is PostgreSQL 13.", + "The database version is PostgreSQL 14.", "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.", - "The database version is PostgreSQL 13.", - "The database version is PostgreSQL 14.", + "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 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 version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3101,6 +3203,10 @@ } }, "type": "object" + }, + "striped": { + "description": "Whether or not the backup set being restored is striped. Applies only to Cloud SQL for SQL Server.", + "type": "boolean" } }, "type": "object" @@ -3364,7 +3470,7 @@ "id": "IpConfiguration", "properties": { "allocatedIpRange": { - "description": "The name of the allocated ip range for the private ip CloudSQL instance. For example: \"google-managed-services-default\". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`", + "description": "The name of the allocated ip range for the private ip Cloud SQL instance. For example: \"google-managed-services-default\". If set, the instance ip will be created in the allocated range. The range name must comply with [RFC 1035](https://tools.ietf.org/html/rfc1035). Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?.`", "type": "string" }, "authorizedNetworks": { @@ -3374,6 +3480,10 @@ }, "type": "array" }, + "enablePrivatePathForGoogleCloudServices": { + "description": "Controls connectivity to private IP instances from Google services, such as BigQuery.", + "type": "boolean" + }, "ipv4Enabled": { "description": "Whether the instance is assigned a public IP address or not.", "type": "boolean" @@ -3666,7 +3776,9 @@ "DEFER_MAINTENANCE", "CREATE_CLONE", "RESCHEDULE_MAINTENANCE", - "START_EXTERNAL_SYNC" + "START_EXTERNAL_SYNC", + "LOG_CLEANUP", + "AUTO_RESTART" ], "enumDescriptions": [ "Unknown operation type.", @@ -3703,7 +3815,9 @@ "", "Creates clone instance.", "Reschedule maintenance to another time.", - "Starts external sync of a Cloud SQL EM replica to an external primary instance." + "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." ], "type": "string" }, @@ -3845,13 +3959,17 @@ "description": "Disallow username as a part of the password.", "type": "boolean" }, + "enablePasswordPolicy": { + "description": "Whether the password policy is enabled or not.", + "type": "boolean" + }, "minLength": { "description": "Minimum number of characters allowed.", "format": "int32", "type": "integer" }, "passwordChangeInterval": { - "description": "Minimum interval after which the password can be changed. This flag is only supported for PostgresSQL.", + "description": "Minimum interval after which the password can be changed. This flag is only supported for PostgreSQL.", "format": "google-duration", "type": "string" }, @@ -4001,6 +4119,20 @@ "description": "The name of server Instance collation.", "type": "string" }, + "connectorEnforcement": { + "description": "Specifies if connections must use Cloud SQL connectors. Option values include the following: `NOT_REQUIRED` (Cloud SQL instances can be connected without Cloud SQL Connectors) and `REQUIRED` (Only allow connections that use Cloud SQL Connectors) Note that using REQUIRED disables all existing authorized networks. If this field is not specified when creating a new instance, NOT_REQUIRED is used. If this field is not specified when patching or updating an existing instance, it is left unchanged in the instance.", + "enum": [ + "CONNECTOR_ENFORCEMENT_UNSPECIFIED", + "NOT_REQUIRED", + "REQUIRED" + ], + "enumDescriptions": [ + "The requirement for Cloud SQL connectors is unknown.", + "Do not require Cloud SQL connectors.", + "Require all connections to use Cloud SQL connectors, including the Cloud SQL Auth Proxy and Cloud SQL Java, Python, and Go connectors. Note: This disables all existing authorized networks." + ], + "type": "string" + }, "crashSafeReplicationEnabled": { "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" @@ -4037,6 +4169,10 @@ "description": "Configuration specific to read replica instances. Indicates whether replication is enabled or not. WARNING: Changing this restarts the instance.", "type": "boolean" }, + "deletionProtectionEnabled": { + "description": "Configuration to protect against accidental instance deletion.", + "type": "boolean" + }, "denyMaintenancePeriods": { "description": "Deny maintenance periods", "items": { @@ -4118,6 +4254,10 @@ "description": "The tier (or machine type) for this instance, for example `db-custom-1-3840`. WARNING: Changing this restarts the instance.", "type": "string" }, + "timeZone": { + "description": "Server timezone, relevant only for Cloud SQL for SQL Server.", + "type": "string" + }, "userLabels": { "additionalProperties": { "type": "string" @@ -4183,7 +4323,9 @@ "SQLSERVER_SERVERNAME_MISMATCH", "PRIMARY_ALREADY_SETUP", "UNSUPPORTED_BINLOG_FORMAT", - "BINLOG_RETENTION_SETTING" + "BINLOG_RETENTION_SETTING", + "UNSUPPORTED_STORAGE_ENGINE", + "LIMITED_SUPPORT_TABLES" ], "enumDescriptions": [ "", @@ -4211,7 +4353,9 @@ "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'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" ], "type": "string" } @@ -4341,7 +4485,7 @@ "type": "object" }, "SqlScheduledMaintenance": { - "description": "Any scheduled maintenancce for this instance.", + "description": "Any scheduled maintenance for this instance.", "id": "SqlScheduledMaintenance", "properties": { "canDefer": { @@ -4375,6 +4519,16 @@ "kind": { "description": "This is always sql#sqlServerAuditConfig", "type": "string" + }, + "retentionInterval": { + "description": "How long to keep generated audit files.", + "format": "google-duration", + "type": "string" + }, + "uploadInterval": { + "description": "How often to upload generated audit files.", + "format": "google-duration", + "type": "string" } }, "type": "object" @@ -4624,6 +4778,22 @@ "description": "A Cloud SQL user resource.", "id": "User", "properties": { + "dualPasswordType": { + "description": "Dual password status for the user.", + "enum": [ + "DUAL_PASSWORD_TYPE_UNSPECIFIED", + "NO_MODIFY_DUAL_PASSWORD", + "NO_DUAL_PASSWORD", + "DUAL_PASSWORD" + ], + "enumDescriptions": [ + "The default value.", + "Do not update the user's dual password status.", + "No dual password usable for connecting using this user.", + "Dual password usable for connecting using this user." + ], + "type": "string" + }, "etag": { "description": "This field is deprecated and will be removed from a future version of the API.", "type": "string" @@ -4689,6 +4859,10 @@ "description": "If true, failed login attempts check will be enabled.", "type": "boolean" }, + "enablePasswordVerification": { + "description": "If true, the user must specify the current password before changing the password. This flag is supported only for MySQL.", + "type": "boolean" + }, "passwordExpirationDuration": { "description": "Expiration duration after password is updated.", "format": "google-duration", diff --git a/etc/api/storage/v1/storage-api.json b/etc/api/storage/v1/storage-api.json index 18846f24d4..23b62f2940 100644 --- a/etc/api/storage/v1/storage-api.json +++ b/etc/api/storage/v1/storage-api.json @@ -26,7 +26,7 @@ "description": "Stores and retrieves potentially large, immutable data objects.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/storage/docs/json_api/", - "etag": "\"33393833373235383936383930383337323037\"", + "etag": "\"3137333136363634383834383932303638343631\"", "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" @@ -115,11 +115,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -153,11 +148,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -187,11 +177,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -224,11 +209,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -265,11 +245,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -309,11 +284,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -362,11 +332,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -419,11 +384,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -463,11 +423,6 @@ "minimum": "1", "type": "integer" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -550,11 +505,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -619,11 +569,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -664,11 +609,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -764,11 +704,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -801,11 +736,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -846,11 +776,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -948,11 +873,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1017,11 +937,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1055,11 +970,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1089,11 +999,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1138,11 +1043,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1179,11 +1079,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1223,11 +1118,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1271,11 +1161,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1310,11 +1195,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1347,11 +1227,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1385,11 +1260,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1446,11 +1316,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1497,11 +1362,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1544,11 +1404,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1594,11 +1449,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1648,11 +1498,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1705,11 +1550,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1791,11 +1631,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -1925,11 +1760,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "sourceBucket": { "description": "Name of the bucket in which to find the source object.", "location": "path", @@ -2018,11 +1848,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2100,11 +1925,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2152,11 +1972,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2277,11 +2092,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2362,11 +2172,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "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", @@ -2481,11 +2286,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request, for Requester Pays buckets.", "location": "query", @@ -2620,11 +2420,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "rewriteToken": { "description": "Include this field (from the previous rewrite response) on each rewrite request after the first one, until the rewrite response 'done' flag is true. Calls that provide a rewriteToken can omit all other request fields, but if included those fields must match the values provided in the first rewrite request.", "location": "query", @@ -2694,11 +2489,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2753,11 +2543,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2861,11 +2646,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request. Required for Requester Pays buckets.", "location": "query", @@ -2944,11 +2724,6 @@ "location": "query", "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "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", @@ -3207,11 +2982,6 @@ "required": true, "type": "string" }, - "provisionalUserProject": { - "description": "The project to be billed for this request if the target bucket is requester-pays bucket.", - "location": "query", - "type": "string" - }, "userProject": { "description": "The project to be billed for this request.", "location": "query", @@ -3235,7 +3005,7 @@ } } }, - "revision": "20220228", + "revision": "20230119", "rootUrl": "https://storage.googleapis.com/", "schemas": { "Bucket": { @@ -3424,7 +3194,7 @@ "type": "string" }, "type": { - "description": "Type of the action. Currently, only Delete and SetStorageClass are supported.", + "description": "Type of the action. Currently, only Delete, SetStorageClass, and AbortIncompleteMultipartUpload are supported.", "type": "string" } }, @@ -3466,6 +3236,13 @@ "description": "A regular expression that satisfies the RE2 syntax. This condition is satisfied when the name of the object matches the RE2 pattern. Note: This feature is currently in the \"Early Access\" launch stage and is only available to a whitelisted set of users; that means that this feature may be changed in backward-incompatible ways and that it is not guaranteed to be released.", "type": "string" }, + "matchesPrefix": { + "description": "List of object name prefixes. This condition will be satisfied when at least one of the prefixes exactly matches the beginning of the object name.", + "items": { + "type": "string" + }, + "type": "array" + }, "matchesStorageClass": { "description": "Objects having any of the storage classes specified by this condition will be matched. Values include MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, STANDARD, and DURABLE_REDUCED_AVAILABILITY.", "items": { @@ -3473,6 +3250,13 @@ }, "type": "array" }, + "matchesSuffix": { + "description": "List of object name suffixes. This condition will be satisfied when at least one of the suffixes exactly matches the end of the object name.", + "items": { + "type": "string" + }, + "type": "array" + }, "noncurrentTimeBefore": { "description": "A date in RFC 3339 format with only the date part (for instance, \"2013-01-15\"). This condition is satisfied when the noncurrent time on an object is before this date in UTC. This condition is relevant only for versioned objects.", "format": "date", @@ -4211,7 +3995,7 @@ "type": "string" }, "updated": { - "description": "The modification time of the object metadata in RFC 3339 format.", + "description": "The modification time of the object metadata in RFC 3339 format. Set initially to object creation time and then updated whenever any metadata of the object changes. This includes changes made by a requester, such as modifying custom metadata, as well as changes made by Cloud Storage on behalf of a requester, such as changing the storage class based on an Object Lifecycle Configuration.", "format": "date-time", "type": "string" } diff --git a/etc/api/storagetransfer/v1/storagetransfer-api.json b/etc/api/storagetransfer/v1/storagetransfer-api.json index 65ca50c94d..30dd97c1ea 100644 --- a/etc/api/storagetransfer/v1/storagetransfer-api.json +++ b/etc/api/storagetransfer/v1/storagetransfer-api.json @@ -11,7 +11,7 @@ "basePath": "", "baseUrl": "https://storagetransfer.googleapis.com/", "batchPath": "batch", - "description": "Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets.", + "description": "Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/storage-transfer/docs", "fullyEncodeReservedExpansion": true, @@ -318,6 +318,38 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "delete": { + "description": "Deletes a transfer job. Deleting a transfer job sets its status to DELETED.", + "flatPath": "v1/transferJobs/{transferJobsId}", + "httpMethod": "DELETE", + "id": "storagetransfer.transferJobs.delete", + "parameterOrder": [ + "jobName", + "projectId" + ], + "parameters": { + "jobName": { + "description": "Required. The job to delete.", + "location": "path", + "pattern": "^transferJobs/.*$", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Required. The ID of the Google Cloud project that owns the job.", + "location": "query", + "required": true, + "type": "string" + } + }, + "path": "v1/{+jobName}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a transfer job.", "flatPath": "v1/transferJobs/{transferJobsId}", @@ -414,7 +446,7 @@ ] }, "run": { - "description": "Attempts to start a new TransferOperation for the current TransferJob. A TransferJob has a maximum of one active TransferOperation. If this method is called while a TransferOperation is active, an error will be returned.", + "description": "Starts a new operation for the specified transfer job. A `TransferJob` has a maximum of one active `TransferOperation`. If this method is called while a `TransferOperation` is active, an error is returned.", "flatPath": "v1/transferJobs/{transferJobsId}:run", "httpMethod": "POST", "id": "storagetransfer.transferJobs.run", @@ -600,7 +632,7 @@ } } }, - "revision": "20220223", + "revision": "20230111", "rootUrl": "https://storagetransfer.googleapis.com/", "schemas": { "AgentPool": { @@ -654,6 +686,33 @@ }, "type": "object" }, + "AwsS3CompatibleData": { + "description": "An AwsS3CompatibleData resource.", + "id": "AwsS3CompatibleData", + "properties": { + "bucketName": { + "description": "Required. Specifies the name of the bucket.", + "type": "string" + }, + "endpoint": { + "description": "Required. Specifies the endpoint of the storage service.", + "type": "string" + }, + "path": { + "description": "Specifies the root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'.", + "type": "string" + }, + "region": { + "description": "Specifies the region to sign requests with. This can be left blank if requests should be signed with an empty region.", + "type": "string" + }, + "s3Metadata": { + "$ref": "S3CompatibleMetadata", + "description": "A S3 compatible metadata." + } + }, + "type": "object" + }, "AwsS3Data": { "description": "An AwsS3Data resource can be a data source, but not a data sink. In an AwsS3Data resource, an object's name is the S3 object's key name.", "id": "AwsS3Data", @@ -730,7 +789,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -752,7 +811,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -801,7 +860,7 @@ "DATA_LOSS" ], "enumDescriptions": [ - "Not an error; returned on success HTTP Mapping: 200 OK", + "Not an error; returned on success. HTTP Mapping: 200 OK", "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", @@ -836,6 +895,27 @@ }, "type": "object" }, + "EventStream": { + "description": "Specifies the Event-driven transfer options. Event-driven transfers listen to an event stream to transfer updated files.", + "id": "EventStream", + "properties": { + "eventStreamExpirationTime": { + "description": "Specifies the data and time at which Storage Transfer Service stops listening for events from this stream. After this time, any transfers in progress will complete, but no new transfers are initiated.", + "format": "google-datetime", + "type": "string" + }, + "eventStreamStartTime": { + "description": "Specifies the date and time that Storage Transfer Service starts listening for events from this stream. If no start time is specified or start time is in the past, Storage Transfer Service starts listening immediately.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Required. Specifies a unique name of the resource such as AWS SQS ARN in the form 'arn:aws:sqs:region:account_id:queue_name', or Pub/Sub subscription resource name in the form 'projects/{project}/subscriptions/{sub}'.", + "type": "string" + } + }, + "type": "object" + }, "GcsData": { "description": "In a GcsData resource, an object's name is the Cloud Storage object's name and its \"last modification time\" refers to the object's `updated` property of Cloud Storage objects, which changes when the content or the metadata of the object is updated.", "id": "GcsData", @@ -979,7 +1059,7 @@ "type": "object" }, "MetadataOptions": { - "description": "Specifies the metadata options for running a transfer. These options only apply to transfers involving a POSIX filesystem and are ignored for other transfers.", + "description": "Specifies the metadata options for running a transfer.", "id": "MetadataOptions", "properties": { "acl": { @@ -997,7 +1077,7 @@ "type": "string" }, "gid": { - "description": "Specifies how each file's POSIX group ID (GID) attribute should be handled by the transfer. By default, GID is not preserved.", + "description": "Specifies how each file's POSIX group ID (GID) attribute should be handled by the transfer. By default, GID is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers.", "enum": [ "GID_UNSPECIFIED", "GID_SKIP", @@ -1025,7 +1105,7 @@ "type": "string" }, "mode": { - "description": "Specifies how each file's mode attribute should be handled by the transfer. By default, mode is not preserved.", + "description": "Specifies how each file's mode attribute should be handled by the transfer. By default, mode is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers.", "enum": [ "MODE_UNSPECIFIED", "MODE_SKIP", @@ -1061,7 +1141,7 @@ "type": "string" }, "symlink": { - "description": "Specifies how symlinks should be handled by the transfer. By default, symlinks are not preserved.", + "description": "Specifies how symlinks should be handled by the transfer. By default, symlinks are not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers.", "enum": [ "SYMLINK_UNSPECIFIED", "SYMLINK_SKIP", @@ -1103,7 +1183,7 @@ "type": "string" }, "uid": { - "description": "Specifies how each file's POSIX user ID (UID) attribute should be handled by the transfer. By default, UID is not preserved.", + "description": "Specifies how each file's POSIX user ID (UID) attribute should be handled by the transfer. By default, UID is not preserved. Only applicable to transfers involving POSIX file systems, and ignored for other transfers.", "enum": [ "UID_UNSPECIFIED", "UID_SKIP", @@ -1273,6 +1353,69 @@ }, "type": "object" }, + "S3CompatibleMetadata": { + "description": "S3CompatibleMetadata contains the metadata fields that apply to the basic types of S3-compatible data providers.", + "id": "S3CompatibleMetadata", + "properties": { + "authMethod": { + "description": "Specifies the authentication and authorization method used by the storage service. When not specified, Transfer Service will attempt to determine right auth method to use.", + "enum": [ + "AUTH_METHOD_UNSPECIFIED", + "AUTH_METHOD_AWS_SIGNATURE_V4", + "AUTH_METHOD_AWS_SIGNATURE_V2" + ], + "enumDescriptions": [ + "AuthMethod is not specified.", + "Auth requests with AWS SigV4.", + "Auth requests with AWS SigV2." + ], + "type": "string" + }, + "listApi": { + "description": "The Listing API to use for discovering objects. When not specified, Transfer Service will attempt to determine the right API to use.", + "enum": [ + "LIST_API_UNSPECIFIED", + "LIST_OBJECTS_V2", + "LIST_OBJECTS" + ], + "enumDescriptions": [ + "ListApi is not specified.", + "Perform listing using ListObjectsV2 API.", + "Legacy ListObjects API." + ], + "type": "string" + }, + "protocol": { + "description": "Specifies the network protocol of the agent. When not specified, the default value of NetworkProtocol NETWORK_PROTOCOL_HTTPS is used.", + "enum": [ + "NETWORK_PROTOCOL_UNSPECIFIED", + "NETWORK_PROTOCOL_HTTPS", + "NETWORK_PROTOCOL_HTTP" + ], + "enumDescriptions": [ + "NetworkProtocol is not specified.", + "Perform requests using HTTPS.", + "Not recommended: This sends data in clear-text. This is only appropriate within a closed network or for publicly available data. Perform requests using HTTP." + ], + "type": "string" + }, + "requestModel": { + "description": "Specifies the API request model used to call the storage service. When not specified, the default value of RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE is used.", + "enum": [ + "REQUEST_MODEL_UNSPECIFIED", + "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE", + "REQUEST_MODEL_PATH_STYLE" + ], + "enumDescriptions": [ + "RequestModel is not specified.", + "Perform requests using Virtual Hosted Style. Example: https://bucket-name.s3.region.amazonaws.com/key-name", + "Perform requests using Path Style. Example: https://s3.region.amazonaws.com/bucket-name/key-name" + ], + "type": "string" + } + }, + "type": "object" + }, "Schedule": { "description": "Transfers can be scheduled to recur or to run just once.", "id": "Schedule", @@ -1487,6 +1630,10 @@ "description": "A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.", "type": "string" }, + "eventStream": { + "$ref": "EventStream", + "description": "Specifies the event stream for the transfer job for event-driven transfers. When EventStream is specified, the Schedule fields are ignored." + }, "lastModificationTime": { "description": "Output only. The time that the transfer job was last modified.", "format": "google-datetime", @@ -1597,7 +1744,8 @@ "SUCCESS", "FAILED", "ABORTED", - "QUEUED" + "QUEUED", + "SUSPENDING" ], "enumDescriptions": [ "Zero is an illegal value.", @@ -1606,7 +1754,8 @@ "Completed successfully.", "Terminated due to an unrecoverable failure.", "Aborted by the user.", - "Temporarily delayed by the system. No user action is required." + "Temporarily delayed by the system. No user action is required.", + "The operation is suspending and draining the ongoing work to completion." ], "type": "string" }, @@ -1635,11 +1784,27 @@ }, "metadataOptions": { "$ref": "MetadataOptions", - "description": "Represents the selected metadata options for a transfer job. This feature is in Preview." + "description": "Represents the selected metadata options for a transfer job." }, "overwriteObjectsAlreadyExistingInSink": { "description": "When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.", "type": "boolean" + }, + "overwriteWhen": { + "description": "When to overwrite objects that already exist in the sink. If not set, overwrite behavior is determined by overwrite_objects_already_existing_in_sink.", + "enum": [ + "OVERWRITE_WHEN_UNSPECIFIED", + "DIFFERENT", + "NEVER", + "ALWAYS" + ], + "enumDescriptions": [ + "Overwrite behavior is unspecified.", + "Overwrites destination objects with the source objects, only if the objects have the same name but different HTTP ETags or checksum values.", + "Never overwrites a destination object if a source object has the same name. In this case, the source object is not transferred.", + "Always overwrite the destination object with the source object, even if the HTTP Etags or checksum values are the same." + ], + "type": "string" } }, "type": "object" @@ -1648,6 +1813,10 @@ "description": "Configuration for running a transfer.", "id": "TransferSpec", "properties": { + "awsS3CompatibleDataSource": { + "$ref": "AwsS3CompatibleData", + "description": "An AWS S3 compatible data source." + }, "awsS3DataSource": { "$ref": "AwsS3Data", "description": "An AWS S3 data source." @@ -1713,7 +1882,7 @@ }, "transferJob": { "$ref": "TransferJob", - "description": "Required. The job to update. `transferJob` is expected to specify one or more of five fields: description, transfer_spec, notification_config, logging_config, and status. An `UpdateTransferJobRequest` that specifies other fields are rejected with the error INVALID_ARGUMENT. Updating a job status to DELETED requires `storagetransfer.jobs.delete` permissions." + "description": "Required. The job to update. `transferJob` is expected to specify one or more of five fields: description, transfer_spec, notification_config, logging_config, and status. An `UpdateTransferJobRequest` that specifies other fields are rejected with the error INVALID_ARGUMENT. Updating a job status to DELETED requires `storagetransfer.jobs.delete` permission." }, "updateTransferJobFieldMask": { "description": "The field mask of the fields in `transferJob` that are to be updated in this request. Fields in `transferJob` that can be updated are: description, transfer_spec, notification_config, logging_config, and status. To update the `transfer_spec` of the job, a complete transfer specification must be provided. An incomplete specification missing any required fields is rejected with the error INVALID_ARGUMENT.", diff --git a/etc/api/streetviewpublish/v1/streetviewpublish-api.json b/etc/api/streetviewpublish/v1/streetviewpublish-api.json index 65773410b3..3f3a39a209 100644 --- a/etc/api/streetviewpublish/v1/streetviewpublish-api.json +++ b/etc/api/streetviewpublish/v1/streetviewpublish-api.json @@ -244,6 +244,164 @@ } } }, + "photoSequence": { + "methods": { + "create": { + "description": "After the client finishes uploading the PhotoSequence with the returned UploadRef, CreatePhotoSequence extracts a sequence of 360 photos from a video or Extensible Device Metadata (XDM, http://www.xdm.org/) to be published to Street View on Google Maps. `CreatePhotoSequence` returns an Operation, with the PhotoSequence Id set in the `Operation.name` field. This method returns the following error codes: * google.rpc.Code.INVALID_ARGUMENT if the request is malformed. * google.rpc.Code.NOT_FOUND if the upload reference does not exist.", + "flatPath": "v1/photoSequence", + "httpMethod": "POST", + "id": "streetviewpublish.photoSequence.create", + "parameterOrder": [], + "parameters": { + "inputType": { + "description": "Required. The input form of PhotoSequence.", + "enum": [ + "INPUT_TYPE_UNSPECIFIED", + "VIDEO", + "XDM" + ], + "enumDescriptions": [ + "Not specified. Server will return google.rpc.Code.INVALID_ARGUMENT.", + "360 Video.", + "Extensible Device Metadata, http://www.xdm.org" + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/photoSequence", + "request": { + "$ref": "PhotoSequence" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + }, + "delete": { + "description": "Deletes a PhotoSequence and its metadata. This method returns the following error codes: * google.rpc.Code.PERMISSION_DENIED if the requesting user did not create the requested photo sequence. * google.rpc.Code.NOT_FOUND if the photo sequence ID does not exist. * google.rpc.Code.FAILED_PRECONDITION if the photo sequence ID is not yet finished processing.", + "flatPath": "v1/photoSequence/{sequenceId}", + "httpMethod": "DELETE", + "id": "streetviewpublish.photoSequence.delete", + "parameterOrder": [ + "sequenceId" + ], + "parameters": { + "sequenceId": { + "description": "Required. ID of the PhotoSequence.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/photoSequence/{sequenceId}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + }, + "get": { + "description": "Gets the metadata of the specified PhotoSequence via the Operation interface. This method returns the following three types of responses: * `Operation.done` = false, if the processing of PhotoSequence is not finished yet. * `Operation.done` = true and `Operation.error` is populated, if there was an error in processing. * `Operation.done` = true and `Operation.response` is poulated, which contains a PhotoSequence message. This method returns the following error codes: * google.rpc.Code.PERMISSION_DENIED if the requesting user did not create the requested PhotoSequence. * google.rpc.Code.NOT_FOUND if the requested PhotoSequence does not exist.", + "flatPath": "v1/photoSequence/{sequenceId}", + "httpMethod": "GET", + "id": "streetviewpublish.photoSequence.get", + "parameterOrder": [ + "sequenceId" + ], + "parameters": { + "filter": { + "description": "Optional. The filter expression. For example: `published_status=PUBLISHED`. The filters supported are: `published_status`. See https://google.aip.dev/160 for more information.", + "location": "query", + "type": "string" + }, + "sequenceId": { + "description": "Required. ID of the photo sequence.", + "location": "path", + "required": true, + "type": "string" + }, + "view": { + "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", + "INCLUDE_DOWNLOAD_URL" + ], + "enumDescriptions": [ + "Server responses do not include the download URL for the photo bytes. The default value.", + "Server responses include the download URL for the photo bytes." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/photoSequence/{sequenceId}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + }, + "startUpload": { + "description": "Creates an upload session to start uploading photo sequence data. The upload URL of the returned UploadRef is used to upload the data for the `photoSequence`. After the upload is complete, the UploadRef is used with CreatePhotoSequence to create the PhotoSequence object entry.", + "flatPath": "v1/photoSequence:startUpload", + "httpMethod": "POST", + "id": "streetviewpublish.photoSequence.startUpload", + "parameterOrder": [], + "parameters": {}, + "path": "v1/photoSequence:startUpload", + "request": { + "$ref": "Empty" + }, + "response": { + "$ref": "UploadRef" + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + } + } + }, + "photoSequences": { + "methods": { + "list": { + "description": "Lists all the PhotoSequences that belong to the user, in descending CreatePhotoSequence timestamp order.", + "flatPath": "v1/photoSequences", + "httpMethod": "GET", + "id": "streetviewpublish.photoSequences.list", + "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\"", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of photo sequences to return. `pageSize` must be non-negative. If `pageSize` is zero or is not provided, the default page size of 100 is used. The number of photo sequences returned in the response may be less than `pageSize` if the number of matches is less than `pageSize`. This is currently unimplemented but is in process.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The nextPageToken value returned from a previous ListPhotoSequences request, if any.", + "location": "query", + "type": "string" + } + }, + "path": "v1/photoSequences", + "response": { + "$ref": "ListPhotoSequencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/streetviewpublish" + ] + } + } + }, "photos": { "methods": { "batchDelete": { @@ -375,7 +533,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://streetviewpublish.googleapis.com/", "schemas": { "BatchDeletePhotosRequest": { @@ -460,11 +618,85 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "GpsDataGapFailureDetails": { + "description": "Details related to ProcessingFailureReason#GPS_DATA_GAP. If there are multiple GPS data gaps, only the one with the largest duration is reported here.", + "id": "GpsDataGapFailureDetails", + "properties": { + "gapDuration": { + "description": "The duration of the gap in GPS data that was found.", + "format": "google-duration", + "type": "string" + }, + "gapStartTime": { + "description": "Relative time (from the start of the video stream) when the gap started.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "Imu": { + "description": "IMU data from the device sensors.", + "id": "Imu", + "properties": { + "accelMpsps": { + "description": "The accelerometer measurements in meters/sec^2 with increasing timestamps from devices.", + "items": { + "$ref": "Measurement3d" + }, + "type": "array" + }, + "gyroRps": { + "description": "The gyroscope measurements in radians/sec with increasing timestamps from devices.", + "items": { + "$ref": "Measurement3d" + }, + "type": "array" + }, + "magUt": { + "description": "The magnetometer measurements of the magnetic field in microtesla (uT) with increasing timestamps from devices.", + "items": { + "$ref": "Measurement3d" + }, + "type": "array" + } + }, + "type": "object" + }, + "ImuDataGapFailureDetails": { + "description": "Details related to ProcessingFailureReason#IMU_DATA_GAP. If there are multiple IMU data gaps, only the one with the largest duration is reported here.", + "id": "ImuDataGapFailureDetails", + "properties": { + "gapDuration": { + "description": "The duration of the gap in IMU data that was found.", + "format": "google-duration", + "type": "string" + }, + "gapStartTime": { + "description": "Relative time (from the start of the video stream) when the gap started.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "InsufficientGpsFailureDetails": { + "description": "Details related to ProcessingFailureReason#INSUFFICIENT_GPS.", + "id": "InsufficientGpsFailureDetails", + "properties": { + "gpsPointsFound": { + "description": "The number of GPS points that were found in the video.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "LatLng": { "description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.", "id": "LatLng", @@ -482,6 +714,21 @@ }, "type": "object" }, + "LatLngBounds": { + "description": "A rectangle in geographical coordinates.", + "id": "LatLngBounds", + "properties": { + "northeast": { + "$ref": "LatLng", + "description": "The northeast corner of these bounds." + }, + "southwest": { + "$ref": "LatLng", + "description": "The southwest corner of these bounds." + } + }, + "type": "object" + }, "Level": { "description": "Level information containing level number and its corresponding name.", "id": "Level", @@ -498,6 +745,24 @@ }, "type": "object" }, + "ListPhotoSequencesResponse": { + "description": "Response to list all photo sequences that belong to a user.", + "id": "ListPhotoSequencesResponse", + "properties": { + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + }, + "photoSequences": { + "description": "List of photo sequences via Operation interface. The maximum number of items returned is based on the pageSize field in the request. Each item in the list can have three possible states, * `Operation.done` = false, if the processing of PhotoSequence is not finished yet. * `Operation.done` = true and `Operation.error` is populated, if there was an error in processing. * `Operation.done` = true and `Operation.response` contains a PhotoSequence message, In each sequence, only Id is populated.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListPhotosResponse": { "description": "Response to list all photos that belong to a user.", "id": "ListPhotosResponse", @@ -516,6 +781,72 @@ }, "type": "object" }, + "Measurement3d": { + "description": "A Generic 3d measurement sample.", + "id": "Measurement3d", + "properties": { + "captureTime": { + "description": "The timestamp of the IMU measurement.", + "format": "google-datetime", + "type": "string" + }, + "x": { + "description": "The sensor measurement in the x axis.", + "format": "float", + "type": "number" + }, + "y": { + "description": "The sensor measurement in the y axis.", + "format": "float", + "type": "number" + }, + "z": { + "description": "The sensor measurement in the z axis.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "NoOverlapGpsFailureDetails": { + "description": "Details related to PhotoSequenceProcessingFailureReason#NO_OVERLAP_GPS.", + "id": "NoOverlapGpsFailureDetails", + "properties": { + "gpsEndTime": { + "description": "Time of last recorded GPS point.", + "format": "google-datetime", + "type": "string" + }, + "gpsStartTime": { + "description": "Time of first recorded GPS point.", + "format": "google-datetime", + "type": "string" + }, + "videoEndTime": { + "description": "End time of video.", + "format": "google-datetime", + "type": "string" + }, + "videoStartTime": { + "description": "Start time of video.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "NotOutdoorsFailureDetails": { + "description": "Details related to ProcessingFailureReason#NOT_OUTDOORS. If there are multiple indoor frames found, the first frame is recorded here.", + "id": "NotOutdoorsFailureDetails", + "properties": { + "startTime": { + "description": "Relative time (from the start of the video stream) when an indoor frame was found.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -683,6 +1014,165 @@ }, "type": "object" }, + "PhotoSequence": { + "description": "A sequence of 360 photos along with metadata.", + "id": "PhotoSequence", + "properties": { + "captureTimeOverride": { + "description": "Optional. Absolute time when the photo sequence starts to be captured. If the photo sequence is a video, this is the start time of the video. If this field is populated in input, it overrides the capture time in the video or XDM file.", + "format": "google-datetime", + "type": "string" + }, + "distanceMeters": { + "description": "Output only. The computed distance of the photo sequence in meters.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "failureDetails": { + "$ref": "ProcessingFailureDetails", + "description": "Output only. If this sequence has `failure_reason` set, this may contain additional details about the failure.", + "readOnly": true + }, + "failureReason": { + "description": "Output only. If this sequence has processing_state = FAILED, this will contain the reason why it failed. If the processing_state is any other value, this field will be unset.", + "enum": [ + "PROCESSING_FAILURE_REASON_UNSPECIFIED", + "LOW_RESOLUTION", + "DUPLICATE", + "INSUFFICIENT_GPS", + "NO_OVERLAP_GPS", + "INVALID_GPS", + "FAILED_TO_REFINE_POSITIONS", + "TAKEDOWN", + "CORRUPT_VIDEO", + "INTERNAL", + "INVALID_VIDEO_FORMAT", + "INVALID_VIDEO_DIMENSIONS", + "INVALID_CAPTURE_TIME", + "GPS_DATA_GAP", + "JUMPY_GPS", + "INVALID_IMU", + "INSUFFICIENT_IMU", + "INSUFFICIENT_OVERLAP_TIME_SERIES", + "IMU_DATA_GAP", + "UNSUPPORTED_CAMERA", + "NOT_OUTDOORS", + "INSUFFICIENT_VIDEO_FRAMES", + "INSUFFICIENT_MOVEMENT" + ], + "enumDescriptions": [ + "The failure reason is unspecified, this is the default value.", + "Video frame's resolution is too small.", + "This video has been uploaded before.", + "Too few GPS points.", + "No overlap between the time frame of GPS track and the time frame of video.", + "GPS is invalid (e.x. all GPS points are at (0,0))", + "The sequence of photos could not be accurately located in the world.", + "The sequence was taken down for policy reasons.", + "The video file was corrupt or could not be decoded.", + "A permanent failure in the underlying system occurred.", + "The video format is invalid or unsupported.", + "Invalid image aspect ratio found.", + "Invalid capture time. Timestamps were from the future.", + "GPS data contains a gap greater than 5 seconds in duration.", + "GPS data is too erratic to be processed.", + "IMU (Accelerometer, Gyroscope, etc.) data are not valid. They may be missing required fields (x, y, z or time), may not be formatted correctly, or any other issue that prevents our systems from parsing it.", + "Too few IMU points.", + "Insufficient overlap in the time frame between GPS, IMU, and other time series data.", + "IMU (Accelerometer, Gyroscope, etc.) data contain gaps greater than 0.1 seconds in duration.", + "The camera is not supported.", + "Some frames were indoors, which is unsupported.", + "Not enough video frames.", + "Not enough moving data." + ], + "readOnly": true, + "type": "string" + }, + "filename": { + "description": "Output only. The filename of the upload. Does not include the directory path. Only available if the sequence was uploaded on a platform that provides the filename.", + "readOnly": true, + "type": "string" + }, + "gpsSource": { + "description": "Input only. If both raw_gps_timeline and the Camera Motion Metadata Track (CAMM) contain GPS measurements, indicate which takes precedence.", + "enum": [ + "PHOTO_SEQUENCE", + "CAMERA_MOTION_METADATA_TRACK" + ], + "enumDescriptions": [ + "GPS in raw_gps_timeline takes precedence if it exists.", + "GPS in Camera Motion Metadata Track (CAMM) takes precedence if it exists." + ], + "type": "string" + }, + "id": { + "description": "Output only. Unique identifier for the photo sequence. This also acts as a long running operation ID if uploading is performed asynchronously.", + "readOnly": true, + "type": "string" + }, + "imu": { + "$ref": "Imu", + "description": "Input only. Three axis IMU data for the collection. If this data is too large to put in the request, then it should be put in the CAMM track for the video. This data always takes precedence over the equivalent CAMM data, if it exists." + }, + "photos": { + "description": "Output only. Photos with increasing timestamps.", + "items": { + "$ref": "Photo" + }, + "readOnly": true, + "type": "array" + }, + "processingState": { + "description": "Output only. The processing state of this sequence.", + "enum": [ + "PROCESSING_STATE_UNSPECIFIED", + "PENDING", + "PROCESSING", + "PROCESSED", + "FAILED" + ], + "enumDescriptions": [ + "The state is unspecified, this is the default value.", + "The sequence has not yet started processing.", + "The sequence is currently in processing.", + "The sequence has finished processing including refining position.", + "The sequence failed processing. See FailureReason for more details." + ], + "readOnly": true, + "type": "string" + }, + "rawGpsTimeline": { + "description": "Input only. Raw GPS measurements with increasing timestamps from the device that aren't time synced with each photo. These raw measurements will be used to infer the pose of each frame. Required in input when InputType is VIDEO and raw GPS measurements are not in Camera Motion Metadata Track (CAMM). User can indicate which takes precedence using gps_source if raw GPS measurements are provided in both raw_gps_timeline and Camera Motion Metadata Track (CAMM).", + "items": { + "$ref": "Pose" + }, + "type": "array" + }, + "sequenceBounds": { + "$ref": "LatLngBounds", + "description": "Output only. A rectangular box that encapsulates every image in this photo sequence.", + "readOnly": true + }, + "uploadReference": { + "$ref": "UploadRef", + "description": "Input only. Required when creating photo sequence. The resource name where the bytes of the photo sequence (in the form of video) are uploaded." + }, + "uploadTime": { + "description": "Output only. The time this photo sequence was created in uSV Store service.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "viewCount": { + "description": "Output only. The total number of views that all the published images in this PhotoSequence have received.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Place": { "description": "Place metadata for an entity.", "id": "Place", @@ -718,6 +1208,11 @@ "format": "double", "type": "number" }, + "gpsRecordTimestampUnixEpoch": { + "description": "Time of the GPS record since UTC epoch.", + "format": "google-datetime", + "type": "string" + }, "heading": { "description": "The following pose parameters pertain to the center of the photo. They match https://developers.google.com/streetview/spherical-metadata. Compass heading, measured at the center of the photo in degrees clockwise from North. Value must be >=0 and <360. NaN indicates an unmeasured quantity.", "format": "double", @@ -744,6 +1239,33 @@ }, "type": "object" }, + "ProcessingFailureDetails": { + "description": "Additional details to accompany the ProcessingFailureReason enum. This message is always expected to be used in conjunction with ProcessingFailureReason, and the oneof value set in this message should match the FailureReason.", + "id": "ProcessingFailureDetails", + "properties": { + "gpsDataGapDetails": { + "$ref": "GpsDataGapFailureDetails", + "description": "See GpsDataGapFailureDetails." + }, + "imuDataGapDetails": { + "$ref": "ImuDataGapFailureDetails", + "description": "See ImuDataGapFailureDetails." + }, + "insufficientGpsDetails": { + "$ref": "InsufficientGpsFailureDetails", + "description": "See InsufficientGpsFailureDetails." + }, + "noOverlapGpsDetails": { + "$ref": "NoOverlapGpsFailureDetails", + "description": "See NoOverlapGpsFailureDetails." + }, + "notOutdoorsDetails": { + "$ref": "NotOutdoorsFailureDetails", + "description": "See NotOutdoorsFailureDetails." + } + }, + "type": "object" + }, "Status": { "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "id": "Status", diff --git a/etc/api/sts/v1/sts-api.json b/etc/api/sts/v1/sts-api.json index 06a3640127..e1dc13a522 100644 --- a/etc/api/sts/v1/sts-api.json +++ b/etc/api/sts/v1/sts-api.json @@ -113,8 +113,23 @@ "$ref": "GoogleIdentityStsV1IntrospectTokenResponse" } }, + "oauthtoken": { + "description": "Exchanges a credential that represents the resource owner's authorization for a Google-generated [OAuth 2.0 access token] (https://www.rfc-editor.org/rfc/rfc6749#section-5) or [refreshes an accesstoken] (https://www.rfc-editor.org/rfc/rfc6749#section-6) following [the OAuth 2.0 authorization framework] (https://tools.ietf.org/html/rfc8693) The credential can be one of the following: - An authorization code issued by the workforce identity federation authorization endpoint - A [refresh token](https://www.rfc-editor.org/rfc/rfc6749#section-10.4) issued by this endpoint This endpoint is only meant to be called by the Google Cloud CLI. Also note that this API only accepts the authorization code issued for workforce pools.", + "flatPath": "v1/oauthtoken", + "httpMethod": "POST", + "id": "sts.oauthtoken", + "parameterOrder": [], + "parameters": {}, + "path": "v1/oauthtoken", + "request": { + "$ref": "GoogleIdentityStsV1ExchangeOauthTokenRequest" + }, + "response": { + "$ref": "GoogleIdentityStsV1ExchangeOauthTokenResponse" + } + }, "token": { - "description": "Exchanges a credential for a Google OAuth 2.0 access token. The token asserts an external identity within an identity pool, or it applies a Credential Access Boundary to a Google access token. When you call this method, do not send the `Authorization` HTTP header in the request. This method does not require the `Authorization` header, and using the header can cause the request to fail.", + "description": "Exchanges a credential for a Google OAuth 2.0 access token. The token asserts an external identity within an identity pool, or it applies a Credential Access Boundary to a Google access token. Note that workforce pools do not support Credential Access Boundaries. When you call this method, do not send the `Authorization` HTTP header in the request. This method does not require the `Authorization` header, and using the header can cause the request to fail.", "flatPath": "v1/token", "httpMethod": "POST", "id": "sts.token", @@ -131,7 +146,7 @@ } } }, - "revision": "20220227", + "revision": "20230114", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { @@ -143,7 +158,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -192,12 +207,75 @@ }, "type": "object" }, + "GoogleIdentityStsV1ExchangeOauthTokenRequest": { + "description": "Request message for ExchangeOauthToken", + "id": "GoogleIdentityStsV1ExchangeOauthTokenRequest", + "properties": { + "clientId": { + "description": "Optional. The client identifier for the OAuth 2.0 client that requested the provided token. It is REQUIRED when the [client] (https://www.rfc-editor.org/rfc/rfc6749#section-1.1) is not authenticating with the authorization server, i.e. when authentication method is [client authentication] (https://www.rfc-editor.org/rfc/rfc6749#section-3.2.1).", + "type": "string" + }, + "code": { + "description": "Optional. The authorization code that was previously from workforce identity federation's `authorize` endpoint. Required if the flow is authorization code flow, i.e. if grant_type is 'authorization_code'", + "type": "string" + }, + "codeVerifier": { + "description": "Optional. The code verifier for the PKCE request, Google Cloud CLI originally generates it before the authorization request. PKCE is used to protect authorization code from interception attacks. See https://www.rfc-editor.org/rfc/rfc7636#section-1.1 and https://www.rfc-editor.org/rfc/rfc7636#section-3. It is required when the flow is authorization code flow, i.e. if grant_type is 'authorization_code'", + "type": "string" + }, + "grantType": { + "description": "Required. The grant types are as follows: - 'authorization_code' : an authorization code flow, i.e. exchange of authorization code for the Oauth access token - 'refresh_token' : a refresh token flow, i.e. obtain a new access token by providing the refresh token. See https://www.rfc-editor.org/rfc/rfc6749#section-6", + "type": "string" + }, + "redirectUri": { + "description": "Optional. redirect_url is required when the flow is authorization code flow i.e. if grant_type is `authorization_code` See https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3", + "type": "string" + }, + "refreshToken": { + "description": "Optional. The Refresh token is the credential that is used to obtain a new access token when the current access token becomes invalid or expires. Required when using refresh token flow, i.e. if `grant_type` is 'refresh_token' See https://www.rfc-editor.org/rfc/rfc6749#section-1.5 and https://www.rfc-editor.org/rfc/rfc6749#section-6", + "type": "string" + }, + "scope": { + "description": "Optional. An optional list of scopes that are requested for the token to be returned. See https://www.rfc-editor.org/rfc/rfc6749#section-3.3 Must be a list of space-delimited, case-sensitive strings. Note: Currently, the scopes in the request are not supported", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIdentityStsV1ExchangeOauthTokenResponse": { + "description": "Response message for ExchangeOauthToken. see https://www.rfc-editor.org/rfc/rfc6749#section-5.1", + "id": "GoogleIdentityStsV1ExchangeOauthTokenResponse", + "properties": { + "access_token": { + "description": "An OAuth 2.0 security token, issued by Google, in response to the Oauth token exchange request for the authorization code and refresh token flows. The returned [access token](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.4). Tokens can vary in size, depending, in part, on the size of mapped claims, up to a maximum of 12288 bytes (12 KB). Google reserves the right to change the token size and the maximum length at any time.", + "type": "string" + }, + "expires_in": { + "description": "The amount of time, in seconds, between the time when the access token was issued and the time when the access token will expires.", + "format": "int32", + "type": "integer" + }, + "refresh_token": { + "description": "A refresh token, issued by Google, in response to the OAuth token exchange request for refresh token flow", + "type": "string" + }, + "scope": { + "description": "A list of scopes associated with the returned token.", + "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", + "type": "string" + } + }, + "type": "object" + }, "GoogleIdentityStsV1ExchangeTokenRequest": { "description": "Request message for ExchangeToken.", "id": "GoogleIdentityStsV1ExchangeTokenRequest", "properties": { "audience": { - "description": "The full resource name of the identity provider; for example: `//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/`. Required when exchanging an external credential for a Google access token.", + "description": "The full resource name of the identity provider; for example: `//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/` for workload identity pool providers, or `//iam.googleapis.com/locations/global/workforcePools//providers/` for workforce pool providers. Required when exchanging an external credential for a Google access token.", "type": "string" }, "grantType": { @@ -205,7 +283,7 @@ "type": "string" }, "options": { - "description": "A set of features that Security Token Service supports, in addition to the standard OAuth 2.0 token exchange, formatted as a serialized JSON object of Options.", + "description": "A set of features that Security Token Service supports, in addition to the standard OAuth 2.0 token exchange, formatted as a serialized JSON object of Options. The size of the parameter value must not exceed 4096 characters.", "type": "string" }, "requestedTokenType": { @@ -217,11 +295,11 @@ "type": "string" }, "subjectToken": { - "description": "Required. The input token. This token is either an external credential issued by a workload identity pool provider, or a short-lived access token issued by Google. If the token is an OIDC JWT, it must use the JWT format defined in [RFC 7523](https://tools.ietf.org/html/rfc7523), and the `subject_token_type` must be either `urn:ietf:params:oauth:token-type:jwt` or `urn:ietf:params:oauth:token-type:id_token`. The following headers are required: - `kid`: The identifier of the signing key securing the JWT. - `alg`: The cryptographic algorithm securing the JWT. Must be `RS256` or `ES256`. The following payload fields are required. For more information, see [RFC 7523, Section 3](https://tools.ietf.org/html/rfc7523#section-3): - `iss`: The issuer of the token. The issuer must provide a discovery document at the URL `/.well-known/openid-configuration`, where `` is the value of this field. The document must be formatted according to section 4.2 of the [OIDC 1.0 Discovery specification](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse). - `iat`: The issue time, in seconds, since the Unix epoch. Must be in the past. - `exp`: The expiration time, in seconds, since the Unix epoch. Must be less than 48 hours after `iat`. Shorter expiration times are more secure. If possible, we recommend setting an expiration time less than 6 hours. - `sub`: The identity asserted in the JWT. - `aud`: For workload identity pools, this must be a value specified in the allowed audiences for the workload identity pool provider, or one of the audiences allowed by default if no audiences were specified. See https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools.providers#oidc Example header: ``` { \"alg\": \"RS256\", \"kid\": \"us-east-11\" } ``` Example payload: ``` { \"iss\": \"https://accounts.google.com\", \"iat\": 1517963104, \"exp\": 1517966704, \"aud\": \"//iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/my-pool/providers/my-provider\", \"sub\": \"113475438248934895348\", \"my_claims\": { \"additional_claim\": \"value\" } } ``` If `subject_token` is for AWS, it must be a serialized `GetCallerIdentity` token. This token contains the same information as a request to the AWS [`GetCallerIdentity()`](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity) method, as well as the AWS [signature](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) for the request information. Use Signature Version 4. Format the request as URL-encoded JSON, and set the `subject_token_type` parameter to `urn:ietf:params:aws:token-type:aws4_request`. The following parameters are required: - `url`: The URL of the AWS STS endpoint for `GetCallerIdentity()`, such as `https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15`. Regional endpoints are also supported. - `method`: The HTTP request method: `POST`. - `headers`: The HTTP request headers, which must include: - `Authorization`: The request signature. - `x-amz-date`: The time you will send the request, formatted as an [ISO8601 Basic](https://docs.aws.amazon.com/general/latest/gr/sigv4_elements.html#sigv4_elements_date) string. This value is typically set to the current time and is used to help prevent replay attacks. - `host`: The hostname of the `url` field; for example, `sts.amazonaws.com`. - `x-goog-cloud-target-resource`: The full, canonical resource name of the workload identity pool provider, with or without an `https:` prefix. To help ensure data integrity, we recommend including this header in the `SignedHeaders` field of the signed request. For example: //iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ If you are using temporary security credentials provided by AWS, you must also include the header `x-amz-security-token`, with the value set to the session token. The following example shows a `GetCallerIdentity` token: ``` { \"headers\": [ {\"key\": \"x-amz-date\", \"value\": \"20200815T015049Z\"}, {\"key\": \"Authorization\", \"value\": \"AWS4-HMAC-SHA256+Credential=$credential,+SignedHeaders=host;x-amz-date;x-goog-cloud-target-resource,+Signature=$signature\"}, {\"key\": \"x-goog-cloud-target-resource\", \"value\": \"//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/\"}, {\"key\": \"host\", \"value\": \"sts.amazonaws.com\"} . ], \"method\": \"POST\", \"url\": \"https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15\" } ``` You can also use a Google-issued OAuth 2.0 access token with this field to obtain an access token with new security attributes applied, such as a Credential Access Boundary. In this case, set `subject_token_type` to `urn:ietf:params:oauth:token-type:access_token`. If an access token already contains security attributes, you cannot apply additional security attributes.", + "description": "Required. The input token. This token is either an external credential issued by a workload identity pool provider, or a short-lived access token issued by Google. If the token is an OIDC JWT, it must use the JWT format defined in [RFC 7523](https://tools.ietf.org/html/rfc7523), and the `subject_token_type` must be either `urn:ietf:params:oauth:token-type:jwt` or `urn:ietf:params:oauth:token-type:id_token`. The following headers are required: - `kid`: The identifier of the signing key securing the JWT. - `alg`: The cryptographic algorithm securing the JWT. Must be `RS256` or `ES256`. The following payload fields are required. For more information, see [RFC 7523, Section 3](https://tools.ietf.org/html/rfc7523#section-3): - `iss`: The issuer of the token. The issuer must provide a discovery document at the URL `/.well-known/openid-configuration`, where `` is the value of this field. The document must be formatted according to section 4.2 of the [OIDC 1.0 Discovery specification](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse). - `iat`: The issue time, in seconds, since the Unix epoch. Must be in the past. - `exp`: The expiration time, in seconds, since the Unix epoch. Must be less than 48 hours after `iat`. Shorter expiration times are more secure. If possible, we recommend setting an expiration time less than 6 hours. - `sub`: The identity asserted in the JWT. - `aud`: For workload identity pools, this must be a value specified in the allowed audiences for the workload identity pool provider, or one of the audiences allowed by default if no audiences were specified. See https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools.providers#oidc. For workforce pools, this must match the client ID specified in the provider configuration. See https://cloud.google.com/iam/docs/reference/rest/v1/locations.workforcePools.providers#oidc. Example header: ``` { \"alg\": \"RS256\", \"kid\": \"us-east-11\" } ``` Example payload: ``` { \"iss\": \"https://accounts.google.com\", \"iat\": 1517963104, \"exp\": 1517966704, \"aud\": \"//iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/my-pool/providers/my-provider\", \"sub\": \"113475438248934895348\", \"my_claims\": { \"additional_claim\": \"value\" } } ``` If `subject_token` is for AWS, it must be a serialized `GetCallerIdentity` token. This token contains the same information as a request to the AWS [`GetCallerIdentity()`](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity) method, as well as the AWS [signature](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) for the request information. Use Signature Version 4. Format the request as URL-encoded JSON, and set the `subject_token_type` parameter to `urn:ietf:params:aws:token-type:aws4_request`. The following parameters are required: - `url`: The URL of the AWS STS endpoint for `GetCallerIdentity()`, such as `https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15`. Regional endpoints are also supported. - `method`: The HTTP request method: `POST`. - `headers`: The HTTP request headers, which must include: - `Authorization`: The request signature. - `x-amz-date`: The time you will send the request, formatted as an [ISO8601 Basic](https://docs.aws.amazon.com/general/latest/gr/sigv4_elements.html#sigv4_elements_date) string. This value is typically set to the current time and is used to help prevent replay attacks. - `host`: The hostname of the `url` field; for example, `sts.amazonaws.com`. - `x-goog-cloud-target-resource`: The full, canonical resource name of the workload identity pool provider, with or without an `https:` prefix. To help ensure data integrity, we recommend including this header in the `SignedHeaders` field of the signed request. For example: //iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ If you are using temporary security credentials provided by AWS, you must also include the header `x-amz-security-token`, with the value set to the session token. The following example shows a `GetCallerIdentity` token: ``` { \"headers\": [ {\"key\": \"x-amz-date\", \"value\": \"20200815T015049Z\"}, {\"key\": \"Authorization\", \"value\": \"AWS4-HMAC-SHA256+Credential=$credential,+SignedHeaders=host;x-amz-date;x-goog-cloud-target-resource,+Signature=$signature\"}, {\"key\": \"x-goog-cloud-target-resource\", \"value\": \"//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/\"}, {\"key\": \"host\", \"value\": \"sts.amazonaws.com\"} . ], \"method\": \"POST\", \"url\": \"https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15\" } ``` If the token is a SAML 2.0 assertion, it must use the format defined in [the SAML 2.0 spec](https://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf), and the `subject_token_type` must be `urn:ietf:params:oauth:token-type:saml2`. See [Verification of external credentials](https://cloud.google.com/iam/docs/using-workload-identity-federation#verification_of_external_credentials) for details on how SAML 2.0 assertions are validated during token exchanges. You can also use a Google-issued OAuth 2.0 access token with this field to obtain an access token with new security attributes applied, such as a Credential Access Boundary. In this case, set `subject_token_type` to `urn:ietf:params:oauth:token-type:access_token`. If an access token already contains security attributes, you cannot apply additional security attributes.", "type": "string" }, "subjectTokenType": { - "description": "Required. An identifier that indicates the type of the security token in the `subject_token` parameter. Supported values are `urn:ietf:params:oauth:token-type:jwt`, `urn:ietf:params:oauth:token-type:id_token`, `urn:ietf:params:aws:token-type:aws4_request`, and `urn:ietf:params:oauth:token-type:access_token`.", + "description": "Required. An identifier that indicates the type of the security token in the `subject_token` parameter. Supported values are `urn:ietf:params:oauth:token-type:jwt`, `urn:ietf:params:oauth:token-type:id_token`, `urn:ietf:params:aws:token-type:aws4_request`, `urn:ietf:params:oauth:token-type:access_token`, and `urn:ietf:params:oauth:token-type:saml2`.", "type": "string" } }, @@ -301,7 +379,7 @@ "type": "string" }, "username": { - "description": "The human-readable identifier for the token principal subject. For example, if the provided token is associated with a workload identity pool, this field contains a value in the following format: `principal://iam.googleapis.com/projects//locations/global/workloadIdentityPools//subject/`", + "description": "The human-readable identifier for the token principal subject. For example, if the provided token is associated with a workload identity pool, this field contains a value in the following format: `principal://iam.googleapis.com/projects//locations/global/workloadIdentityPools//subject/`. If the provided token is associated with a workforce pool, this field contains a value in the following format: `principal://iam.googleapis.com/locations/global/workforcePools//subject/`.", "type": "string" } }, diff --git a/etc/api/sts/v1beta/sts-api.json b/etc/api/sts/v1beta/sts-api.json index dc2b74017c..f99d369ea8 100644 --- a/etc/api/sts/v1beta/sts-api.json +++ b/etc/api/sts/v1beta/sts-api.json @@ -116,7 +116,7 @@ } } }, - "revision": "20220227", + "revision": "20230114", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { @@ -128,7 +128,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 Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-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`. ", "items": { "type": "string" }, @@ -248,7 +248,7 @@ "type": "string" }, "options": { - "description": "A set of features that Security Token Service supports, in addition to the standard OAuth 2.0 token exchange, formatted as a serialized JSON object of Options.", + "description": "A set of features that Security Token Service supports, in addition to the standard OAuth 2.0 token exchange, formatted as a serialized JSON object of Options. The size of the parameter value must not exceed 4096 characters.", "type": "string" }, "requestedTokenType": { diff --git a/etc/api/tagmanager/v1/tagmanager-api.json b/etc/api/tagmanager/v1/tagmanager-api.json index ba45d77c9b..92d45464f1 100644 --- a/etc/api/tagmanager/v1/tagmanager-api.json +++ b/etc/api/tagmanager/v1/tagmanager-api.json @@ -1932,7 +1932,7 @@ } } }, - "revision": "20220301", + "revision": "20230123", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { diff --git a/etc/api/tagmanager/v2/tagmanager-api.json b/etc/api/tagmanager/v2/tagmanager-api.json index 5e8ecb5b29..e344ae36b7 100644 --- a/etc/api/tagmanager/v2/tagmanager-api.json +++ b/etc/api/tagmanager/v2/tagmanager-api.json @@ -134,7 +134,7 @@ ], "parameters": { "path": { - "description": "GTM Accounts's API relative path. Example: accounts/{account_id}", + "description": "GTM Account's API relative path. Example: accounts/{account_id}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, @@ -158,6 +158,11 @@ "id": "tagmanager.accounts.list", "parameterOrder": [], "parameters": { + "includeGoogleTags": { + "description": "Also retrieve accounts associated with Google Tag when true.", + "location": "query", + "type": "boolean" + }, "pageToken": { "description": "Continuation token for fetching the next page of results.", "location": "query", @@ -189,7 +194,7 @@ "type": "string" }, "path": { - "description": "GTM Accounts's API relative path. Example: accounts/{account_id}", + "description": "GTM Account's API relative path. Example: accounts/{account_id}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, @@ -211,6 +216,56 @@ "resources": { "containers": { "methods": { + "combine": { + "description": "Combines Containers.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}:combine", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.combine", + "parameterOrder": [ + "path" + ], + "parameters": { + "allowUserPermissionFeatureUpdate": { + "description": "Must be set to true to allow features.user_permissions to change from false to true. If this operation causes an update but this bit is false, the operation will fail.", + "location": "query", + "type": "boolean" + }, + "containerId": { + "description": "ID of container that will be merged into the current container.", + "location": "query", + "type": "string" + }, + "path": { + "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+$", + "required": true, + "type": "string" + }, + "settingSource": { + "description": "Specify the source of config setting after combine", + "enum": [ + "settingSourceUnspecified", + "current", + "other" + ], + "enumDescriptions": [ + "", + "Keep the current container config setting after combine", + "Use config setting from the other tag after combine" + ], + "location": "query", + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}:combine", + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, "create": { "description": "Creates a Container.", "flatPath": "tagmanager/v2/accounts/{accountsId}/containers", @@ -302,7 +357,7 @@ "type": "string" }, "parent": { - "description": "GTM Accounts's API relative path. Example: accounts/{account_id}.", + "description": "GTM Account's API relative path. Example: accounts/{account_id}.", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, @@ -318,6 +373,109 @@ "https://www.googleapis.com/auth/tagmanager.readonly" ] }, + "lookup": { + "description": "Looks up a Container by destination ID.", + "flatPath": "tagmanager/v2/accounts/containers:lookup", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.lookup", + "parameterOrder": [], + "parameters": { + "destinationId": { + "description": "Destination ID linked to a GTM Container, e.g. AW-123456789. Example: accounts/containers:lookup?destination_id={destination_id}.", + "location": "query", + "type": "string" + } + }, + "path": "tagmanager/v2/accounts/containers:lookup", + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "move_tag_id": { + "description": "Move Tag ID out of a Container.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}:move_tag_id", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.move_tag_id", + "parameterOrder": [ + "path" + ], + "parameters": { + "allowUserPermissionFeatureUpdate": { + "description": "Must be set to true to allow features.user_permissions to change from false to true. If this operation causes an update but this bit is false, the operation will fail.", + "location": "query", + "type": "boolean" + }, + "copySettings": { + "description": "Whether or not to copy tag settings from this tag to the new tag.", + "location": "query", + "type": "boolean" + }, + "copyTermsOfService": { + "description": "Must be set to true to accept all terms of service agreements copied from the current tag to the newly created tag. If this bit is false, the operation will fail.", + "location": "query", + "type": "boolean" + }, + "copyUsers": { + "description": "Whether or not to copy users from this tag to the new tag.", + "location": "query", + "type": "boolean" + }, + "path": { + "description": "GTM Container's API relative path. Example: accounts/{account_id}/containers/{container_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+$", + "required": true, + "type": "string" + }, + "tagId": { + "description": "Tag ID to be removed from the current Container.", + "location": "query", + "type": "string" + }, + "tagName": { + "description": "The name for the newly created tag.", + "location": "query", + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}:move_tag_id", + "response": { + "$ref": "Container" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "snippet": { + "description": "Gets the tagging snippet for a Container.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}:snippet", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.snippet", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "Container snippet's API relative path. Example: accounts/{account_id}/containers/{container_id}:snippet", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}:snippet", + "response": { + "$ref": "GetContainerSnippetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, "update": { "description": "Updates a Container.", "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}", @@ -353,6 +511,97 @@ } }, "resources": { + "destinations": { + "methods": { + "get": { + "description": "Gets a Destination.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/destinations/{destinationsId}", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.destinations.get", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "Google Tag Destination's API relative path. Example: accounts/{account_id}/containers/{container_id}/destinations/{destination_link_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/destinations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "response": { + "$ref": "Destination" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "link": { + "description": "Adds a Destination to this Container and removes it from the Container to which it is currently linked.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/destinations:link", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.destinations.link", + "parameterOrder": [ + "parent" + ], + "parameters": { + "allowUserPermissionFeatureUpdate": { + "description": "Must be set to true to allow features.user_permissions to change from false to true. If this operation causes an update but this bit is false, the operation will fail.", + "location": "query", + "type": "boolean" + }, + "destinationId": { + "description": "Destination ID to be linked to the current container.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+parent}/destinations:link", + "response": { + "$ref": "Destination" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "list": { + "description": "Lists all Destinations linked to a GTM Container.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/destinations", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.destinations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "GTM parent Container's API relative path. Example: accounts/{account_id}/containers/{container_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+parent}/destinations", + "response": { + "$ref": "ListDestinationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + } + } + }, "environments": { "methods": { "create": { @@ -1200,7 +1449,8 @@ "queryString", "serverPageLocationUrl", "serverPageLocationPath", - "serverPageLocationHostname" + "serverPageLocationHostname", + "visitorRegion" ], "enumDescriptions": [ "", @@ -1315,6 +1565,7 @@ "", "", "", + "", "" ], "location": "query", @@ -1461,7 +1712,8 @@ "queryString", "serverPageLocationUrl", "serverPageLocationPath", - "serverPageLocationHostname" + "serverPageLocationHostname", + "visitorRegion" ], "enumDescriptions": [ "", @@ -1576,6 +1828,7 @@ "", "", "", + "", "" ], "location": "query", @@ -1750,7 +2003,8 @@ "queryString", "serverPageLocationUrl", "serverPageLocationPath", - "serverPageLocationHostname" + "serverPageLocationHostname", + "visitorRegion" ], "enumDescriptions": [ "", @@ -1865,6 +2119,7 @@ "", "", "", + "", "" ], "location": "query", @@ -2303,6 +2558,150 @@ } } }, + "gtag_config": { + "methods": { + "create": { + "description": "Creates a Google tag config.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/gtag_config", + "httpMethod": "POST", + "id": "tagmanager.accounts.containers.workspaces.gtag_config.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "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}/gtag_config", + "request": { + "$ref": "GtagConfig" + }, + "response": { + "$ref": "GtagConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "delete": { + "description": "Deletes a Google tag config.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/gtag_config/{gtag_configId}", + "httpMethod": "DELETE", + "id": "tagmanager.accounts.containers.workspaces.gtag_config.delete", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "Google tag config's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/gtag_config/{gtag_config_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/gtag_config/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + }, + "get": { + "description": "Gets a Google tag config.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/gtag_config/{gtag_configId}", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.workspaces.gtag_config.get", + "parameterOrder": [ + "path" + ], + "parameters": { + "path": { + "description": "Google tag config's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/gtag_config/{gtag_config_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/gtag_config/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "response": { + "$ref": "GtagConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "list": { + "description": "Lists all Google tag configs in a Container.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/gtag_config", + "httpMethod": "GET", + "id": "tagmanager.accounts.containers.workspaces.gtag_config.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageToken": { + "description": "Continuation token for fetching the next page of results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "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}/gtag_config", + "response": { + "$ref": "ListGtagConfigResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers", + "https://www.googleapis.com/auth/tagmanager.readonly" + ] + }, + "update": { + "description": "Updates a Google tag config.", + "flatPath": "tagmanager/v2/accounts/{accountsId}/containers/{containersId}/workspaces/{workspacesId}/gtag_config/{gtag_configId}", + "httpMethod": "PUT", + "id": "tagmanager.accounts.containers.workspaces.gtag_config.update", + "parameterOrder": [ + "path" + ], + "parameters": { + "fingerprint": { + "description": "When provided, this fingerprint must match the fingerprint of the config in storage.", + "location": "query", + "type": "string" + }, + "path": { + "description": "Google tag config's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}/gtag_config/{gtag_config_id}", + "location": "path", + "pattern": "^accounts/[^/]+/containers/[^/]+/workspaces/[^/]+/gtag_config/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "tagmanager/v2/{+path}", + "request": { + "$ref": "GtagConfig" + }, + "response": { + "$ref": "GtagConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/tagmanager.edit.containers" + ] + } + } + }, "tags": { "methods": { "create": { @@ -2663,7 +3062,7 @@ ], "parameters": { "parent": { - "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}", + "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, @@ -2744,7 +3143,7 @@ "type": "string" }, "parent": { - "description": "GTM Workspaces's API relative path. Example: accounts/{account_id}/containers/{container_id}/workspaces/{workspace_id}", + "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, @@ -3269,7 +3668,7 @@ "type": "string" }, "parent": { - "description": "GTM Accounts's API relative path. Example: accounts/{account_id}", + "description": "GTM Account's API relative path. Example: accounts/{account_id}", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, @@ -3317,7 +3716,7 @@ } } }, - "revision": "20220301", + "revision": "20230123", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { @@ -3328,6 +3727,10 @@ "description": "The Account ID uniquely identifies the GTM Account.", "type": "string" }, + "features": { + "$ref": "AccountFeatures", + "description": "Read-only Account feature set" + }, "fingerprint": { "description": "The fingerprint of the GTM Account as computed at storage time. This value is recomputed whenever the account is modified.", "type": "string" @@ -3374,8 +3777,22 @@ }, "type": "object" }, + "AccountFeatures": { + "id": "AccountFeatures", + "properties": { + "supportMultipleContainers": { + "description": "Whether this Account supports multiple Containers.", + "type": "boolean" + }, + "supportUserPermissions": { + "description": "Whether this Account supports user permissions managed by GTM.", + "type": "boolean" + } + }, + "type": "object" + }, "BuiltInVariable": { - "description": "Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing propeties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.", + "description": "Built-in variables are a special category of variables that are pre-created and non-customizable. They provide common functionality like accessing properties of the gtm data layer, monitoring clicks, or accessing elements of a page URL.", "id": "BuiltInVariable", "properties": { "accountId": { @@ -3509,7 +3926,8 @@ "queryString", "serverPageLocationUrl", "serverPageLocationPath", - "serverPageLocationHostname" + "serverPageLocationHostname", + "visitorRegion" ], "enumDescriptions": [ "", @@ -3624,6 +4042,7 @@ "", "", "", + "", "" ], "type": "string" @@ -3786,6 +4205,10 @@ }, "type": "array" }, + "features": { + "$ref": "ContainerFeatures", + "description": "Read-only Container feature set." + }, "fingerprint": { "description": "The fingerprint of the GTM Container as computed at storage time. This value is recomputed whenever the account is modified.", "type": "string" @@ -3793,7 +4216,8 @@ "name": { "annotations": { "required": [ - "tagmanager.accounts.containers.create" + "tagmanager.accounts.containers.create", + "tagmanager.accounts.containers.update" ] }, "description": "Container display name. @mutable tagmanager.accounts.containers.create @mutable tagmanager.accounts.containers.update", @@ -3811,10 +4235,24 @@ "description": "Container Public ID.", "type": "string" }, + "tagIds": { + "description": "All Tag IDs that refer to this Container.", + "items": { + "type": "string" + }, + "type": "array" + }, "tagManagerUrl": { "description": "Auto generated link to the tag manager UI", "type": "string" }, + "taggingServerUrls": { + "description": "List of server-side container URLs for the Container. If multiple URLs are provided, all URL paths must match. @mutable tagmanager.accounts.containers.create @mutable tagmanager.accounts.containers.update", + "items": { + "type": "string" + }, + "type": "array" + }, "usageContext": { "annotations": { "required": [ @@ -3882,6 +4320,64 @@ }, "type": "object" }, + "ContainerFeatures": { + "id": "ContainerFeatures", + "properties": { + "supportBuiltInVariables": { + "description": "Whether this Container supports built-in variables", + "type": "boolean" + }, + "supportClients": { + "description": "Whether this Container supports clients.", + "type": "boolean" + }, + "supportEnvironments": { + "description": "Whether this Container supports environments.", + "type": "boolean" + }, + "supportFolders": { + "description": "Whether this Container supports folders.", + "type": "boolean" + }, + "supportGtagConfigs": { + "description": "Whether this Container supports Google tag config.", + "type": "boolean" + }, + "supportTags": { + "description": "Whether this Container supports tags.", + "type": "boolean" + }, + "supportTemplates": { + "description": "Whether this Container supports templates.", + "type": "boolean" + }, + "supportTriggers": { + "description": "Whether this Container supports triggers.", + "type": "boolean" + }, + "supportUserPermissions": { + "description": "Whether this Container supports user permissions managed by GTM.", + "type": "boolean" + }, + "supportVariables": { + "description": "Whether this Container supports variables.", + "type": "boolean" + }, + "supportVersions": { + "description": "Whether this Container supports Container versions.", + "type": "boolean" + }, + "supportWorkspaces": { + "description": "Whether this Container supports workspaces.", + "type": "boolean" + }, + "supportZones": { + "description": "Whether this Container supports zones.", + "type": "boolean" + } + }, + "type": "object" + }, "ContainerVersion": { "description": "Represents a Google Tag Manager Container Version.", "id": "ContainerVersion", @@ -3942,12 +4438,19 @@ }, "type": "array" }, + "gtagConfig": { + "description": "The Google tag configs in the container that this version was taken from.", + "items": { + "$ref": "GtagConfig" + }, + "type": "array" + }, "name": { "description": "Container version display name. @mutable tagmanager.accounts.containers.versions.update", "type": "string" }, "path": { - "description": "GTM ContainerVersions's API relative path.", + "description": "GTM Container Version's API relative path.", "type": "string" }, "tag": { @@ -4017,6 +4520,10 @@ "description": "Number of custom templates in the container version.", "type": "string" }, + "numGtagConfigs": { + "description": "Number of Google tag configs in the container version.", + "type": "string" + }, "numMacros": { "description": "Number of macros in the container version.", "type": "string" @@ -4042,7 +4549,7 @@ "type": "string" }, "path": { - "description": "GTM Container Versions's API relative path.", + "description": "GTM Container Version's API relative path.", "type": "string" } }, @@ -4146,6 +4653,45 @@ }, "type": "object" }, + "Destination": { + "description": "Represents a Google Tag Destination.", + "id": "Destination", + "properties": { + "accountId": { + "description": "GTM Account ID.", + "type": "string" + }, + "containerId": { + "description": "GTM Container ID.", + "type": "string" + }, + "destinationId": { + "description": "Destination ID.", + "type": "string" + }, + "destinationLinkId": { + "description": "The Destination link ID uniquely identifies the Destination.", + "type": "string" + }, + "fingerprint": { + "description": "The fingerprint of the Google Tag Destination as computed at storage time. This value is recomputed whenever the destination is modified.", + "type": "string" + }, + "name": { + "description": "Destination display name.", + "type": "string" + }, + "path": { + "description": "Destination's API relative path.", + "type": "string" + }, + "tagManagerUrl": { + "description": "Auto generated link to the tag manager UI.", + "type": "string" + } + }, + "type": "object" + }, "Entity": { "description": "A workspace entity that may represent a tag, trigger, variable, or folder in addition to its status in the workspace.", "id": "Entity", @@ -4389,6 +4935,16 @@ }, "type": "object" }, + "GetContainerSnippetResponse": { + "id": "GetContainerSnippetResponse", + "properties": { + "snippet": { + "description": "Tagging snippet for a Container.", + "type": "string" + } + }, + "type": "object" + }, "GetWorkspaceStatusResponse": { "description": "The changes that have occurred in the workspace since the base container version.", "id": "GetWorkspaceStatusResponse", @@ -4410,6 +4966,52 @@ }, "type": "object" }, + "GtagConfig": { + "description": "Represents a Google tag configuration.", + "id": "GtagConfig", + "properties": { + "accountId": { + "description": "Google tag account ID.", + "type": "string" + }, + "containerId": { + "description": "Google tag container ID.", + "type": "string" + }, + "fingerprint": { + "description": "The fingerprint of the Google tag config as computed at storage time. This value is recomputed whenever the config is modified.", + "type": "string" + }, + "gtagConfigId": { + "description": "The ID uniquely identifies the Google tag config.", + "type": "string" + }, + "parameter": { + "description": "The Google tag config's parameters. @mutable tagmanager.accounts.containers.workspaces.gtag_config.create @mutable tagmanager.accounts.containers.workspaces.gtag_config.update", + "items": { + "$ref": "Parameter" + }, + "type": "array" + }, + "path": { + "description": "Google tag config's API relative path.", + "type": "string" + }, + "tagManagerUrl": { + "description": "Auto generated link to the tag manager UI", + "type": "string" + }, + "type": { + "description": "Google tag config type. @required tagmanager.accounts.containers.workspaces.gtag_config.create @required tagmanager.accounts.containers.workspaces.gtag_config.update @mutable tagmanager.accounts.containers.workspaces.gtag_config.create @mutable tagmanager.accounts.containers.workspaces.gtag_config.update", + "type": "string" + }, + "workspaceId": { + "description": "Google tag workspace ID. Only used by GTM containers. Set to 0 otherwise.", + "type": "string" + } + }, + "type": "object" + }, "ListAccountsResponse": { "description": "List Accounts Response.", "id": "ListAccountsResponse", @@ -4481,6 +5083,23 @@ }, "type": "object" }, + "ListDestinationsResponse": { + "id": "ListDestinationsResponse", + "properties": { + "destination": { + "description": "All Destinations linked to a GTM Container.", + "items": { + "$ref": "Destination" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListEnabledBuiltInVariablesResponse": { "description": "A list of enabled built-in variables.", "id": "ListEnabledBuiltInVariablesResponse", @@ -4535,6 +5154,23 @@ }, "type": "object" }, + "ListGtagConfigResponse": { + "id": "ListGtagConfigResponse", + "properties": { + "gtagConfig": { + "description": "All Google tag configs in a Container.", + "items": { + "$ref": "GtagConfig" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Continuation token for fetching the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListTagsResponse": { "description": "List Tags Response.", "id": "ListTagsResponse", @@ -5584,13 +6220,6 @@ "description": "User notes on how to apply this zone in the container.", "type": "string" }, - "parameter": { - "description": "Additional parameters.", - "items": { - "$ref": "Parameter" - }, - "type": "array" - }, "path": { "description": "GTM Zone's API relative path.", "type": "string" diff --git a/etc/api/tasks/v1/tasks-api.json b/etc/api/tasks/v1/tasks-api.json index 9ff6ea40a6..fa239074f6 100644 --- a/etc/api/tasks/v1/tasks-api.json +++ b/etc/api/tasks/v1/tasks-api.json @@ -566,7 +566,7 @@ } } }, - "revision": "20220305", + "revision": "20230122", "rootUrl": "https://tasks.googleapis.com/", "schemas": { "Task": { diff --git a/etc/api/testing/v1/testing-api.json b/etc/api/testing/v1/testing-api.json index e68ff5c896..bfc080dbf9 100644 --- a/etc/api/testing/v1/testing-api.json +++ b/etc/api/testing/v1/testing-api.json @@ -282,7 +282,7 @@ } } }, - "revision": "20220301", + "revision": "20230119", "rootUrl": "https://testing.googleapis.com/", "schemas": { "Account": { @@ -546,7 +546,7 @@ "type": "array" }, "thumbnailUrl": { - "description": "URL of a thumbnail image (photo) of the device. e.g. https://lh3.googleusercontent.com/90WcauuJiCYABEl8U0lcZeuS5STUbf2yW...", + "description": "URL of a thumbnail image (photo) of the device.", "type": "string" } }, @@ -572,6 +572,16 @@ "description": "The java package for the application under test. The default value is determined by examining the application's manifest.", "type": "string" }, + "maxDepth": { + "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": { + "description": "The max number of steps Robo can execute. Default is no limit.", + "format": "int32", + "type": "integer" + }, "roboDirectives": { "description": "A set of directives Robo should apply during the crawl. This allows users to customize the crawl. For example, the username and password for a test account can be provided.", "items": { @@ -745,6 +755,13 @@ "format": "int32", "type": "integer" }, + "metadata": { + "description": "Meta-data tags defined in the manifest.", + "items": { + "$ref": "Metadata" + }, + "type": "array" + }, "minSdkVersion": { "description": "Minimum API level required for the application to run.", "format": "int32", @@ -759,12 +776,28 @@ "format": "int32", "type": "integer" }, + "usesFeature": { + "description": "Feature usage tags defined in the manifest.", + "items": { + "$ref": "UsesFeature" + }, + "type": "array" + }, "usesPermission": { "description": "Permissions declared to be used by the application", "items": { "type": "string" }, "type": "array" + }, + "versionCode": { + "description": "Version number used internally by the app.", + "format": "int64", + "type": "string" + }, + "versionName": { + "description": "Version number shown to users.", + "type": "string" } }, "type": "object" @@ -851,7 +884,7 @@ "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 (e.g., an anniversary) * A year on its own, with a zero month and a zero day * A year and month, with a zero day (e.g., a credit card expiration date) Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "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": { @@ -1392,7 +1425,7 @@ "id": "ManualSharding", "properties": { "testTargetsForShard": { - "description": "Required. Group of packages, classes, and/or test methods to be run for each shard. When any physical devices are selected, the number of test_targets_for_shard must be >= 1 and <= 50. When no physical devices are selected, the number must be >= 1 and <= 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 <= 100. When you select only x86 virtual devices, it must be <= 500.", "items": { "$ref": "TestTargetsForShard" }, @@ -1401,6 +1434,21 @@ }, "type": "object" }, + "Metadata": { + "description": "A tag within a manifest. https://developer.android.com/guide/topics/manifest/meta-data-element.html", + "id": "Metadata", + "properties": { + "name": { + "description": "The android:name value", + "type": "string" + }, + "value": { + "description": "The android:value value", + "type": "string" + } + }, + "type": "object" + }, "NetworkConfiguration": { "id": "NetworkConfiguration", "properties": { @@ -1588,7 +1636,7 @@ }, "testTargetsForShard": { "$ref": "TestTargetsForShard", - "description": "Output only. Test targets for each shard." + "description": "Output only. Test targets for each shard. Only set for manual sharding." } }, "type": "object" @@ -1818,7 +1866,11 @@ "MALFORMED_APP_BUNDLE", "NO_CODE_APK", "INVALID_INPUT_APK", - "INVALID_APK_PREVIEW_SDK" + "INVALID_APK_PREVIEW_SDK", + "MATRIX_TOO_LARGE", + "TEST_QUOTA_EXCEEDED", + "SERVICE_NOT_ACTIVATED", + "UNKNOWN_PERMISSION_ERROR" ], "enumDescriptions": [ "Do not use. For proto versioning only.", @@ -1855,7 +1907,11 @@ "The iOS application bundle (.app) couldn't be processed.", "APK contains no code. See also https://developer.android.com/guide/topics/manifest/application-element.html#code", "Either the provided input APK path was malformed, the APK file does not exist, or the user does not have permission to access the APK file.", - "APK is built for a preview SDK which is unsupported" + "APK is built for a preview SDK which is unsupported", + "The matrix expanded to contain too many executions.", + "Not enough test quota to run the executions in this matrix.", + "A required cloud service api is not activated. See: https://firebase.google.com/docs/test-lab/android/continuous#requirements", + "There was an unknown permission issue running this test." ], "type": "string" }, @@ -2042,7 +2098,7 @@ "id": "TestTargetsForShard", "properties": { "testTargets": { - "description": "Group of packages, classes, and/or test methods to be run for each shard. The targets need to be specified in AndroidJUnitRunner argument format. For example, \"package com.my.packages\" \"class com.my.package.MyClass\". The number of shard_test_targets must be greater than 0.", + "description": "Group of packages, classes, and/or test methods to be run for each shard. The targets need to be specified in AndroidJUnitRunner argument format. For example, \"package com.my.packages\" \"class com.my.package.MyClass\". The number of test_targets must be greater than 0.", "items": { "type": "string" }, @@ -2141,17 +2197,32 @@ "type": "object" }, "UniformSharding": { - "description": "Uniformly shards test cases given a total number of shards. For Instrumentation test, it will be translated to \"-e numShard\" \"-e shardIndex\" AndroidJUnitRunner arguments. Based on the sharding mechanism AndroidJUnitRunner uses, there is no guarantee that test cases will be distributed uniformly across all shards. With uniform sharding enabled, specifying these sharding arguments via environment_variables is invalid.", + "description": "Uniformly shards test cases given a total number of shards. For instrumentation tests, it will be translated to \"-e numShard\" and \"-e shardIndex\" AndroidJUnitRunner arguments. With uniform sharding enabled, specifying either of these sharding arguments via `environment_variables` is invalid. Based on the sharding mechanism AndroidJUnitRunner uses, there is no guarantee that test cases will be distributed uniformly across all shards.", "id": "UniformSharding", "properties": { "numShards": { - "description": "Required. Total number of shards. When any physical devices are selected, the number must be >= 1 and <= 50. When no physical devices are selected, the number must be >= 1 and <= 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 <= 100. When you select only x86 virtual devices, it must be <= 500.", "format": "int32", "type": "integer" } }, "type": "object" }, + "UsesFeature": { + "description": "A tag within a manifest. https://developer.android.com/guide/topics/manifest/uses-feature-element.html", + "id": "UsesFeature", + "properties": { + "isRequired": { + "description": "The android:required value", + "type": "boolean" + }, + "name": { + "description": "The android:name value", + "type": "string" + } + }, + "type": "object" + }, "XcodeVersion": { "description": "An Xcode version that an iOS version is compatible with.", "id": "XcodeVersion", diff --git a/etc/api/texttospeech/v1/texttospeech-api.json b/etc/api/texttospeech/v1/texttospeech-api.json index 07efa07ea1..1079828add 100644 --- a/etc/api/texttospeech/v1/texttospeech-api.json +++ b/etc/api/texttospeech/v1/texttospeech-api.json @@ -105,6 +105,171 @@ }, "protocol": "rest", "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/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "texttospeech.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": "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/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "texttospeech.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": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "projects": { + "resources": { + "locations": { + "methods": { + "synthesizeLongAudio": { + "description": "Synthesizes long form text asynchronously.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:synthesizeLongAudio", + "httpMethod": "POST", + "id": "texttospeech.projects.locations.synthesizeLongAudio", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The resource states of the request in the form of `projects/*/locations/*/voices/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:synthesizeLongAudio", + "request": { + "$ref": "SynthesizeLongAudioRequest" + }, + "response": { + "$ref": "Operation" + }, + "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/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "texttospeech.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. 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.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "texttospeech.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "text": { "methods": { "synthesize": { @@ -153,7 +318,7 @@ } } }, - "revision": "20220228", + "revision": "20230118", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { @@ -210,6 +375,78 @@ }, "type": "object" }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "id": "CancelOperationRequest", + "properties": {}, + "type": "object" + }, + "CustomVoiceParams": { + "description": "Description of the custom voice to be synthesized.", + "id": "CustomVoiceParams", + "properties": { + "model": { + "description": "Required. The name of the AutoML model that synthesizes the custom voice.", + "type": "string" + }, + "reportedUsage": { + "description": "Optional. The usage of the synthesized audio to be reported.", + "enum": [ + "REPORTED_USAGE_UNSPECIFIED", + "REALTIME", + "OFFLINE" + ], + "enumDescriptions": [ + "Request with reported usage unspecified will be rejected.", + "For scenarios where the synthesized audio is not downloadable and can only be used once. For example, real-time request in IVR system.", + "For scenarios where the synthesized audio is downloadable and can be reused. For example, the synthesized audio is downloaded, stored in customer service system and played repeatedly." + ], + "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" + }, + "GoogleCloudTexttospeechV1SynthesizeLongAudioMetadata": { + "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", + "id": "GoogleCloudTexttospeechV1SynthesizeLongAudioMetadata", + "properties": { + "progressPercentage": { + "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", + "format": "double", + "type": "number" + }, + "startTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "id": "ListOperationsResponse", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListVoicesResponse": { "description": "The message returned to the client by the `ListVoices` method.", "id": "ListVoicesResponse", @@ -224,8 +461,70 @@ }, "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 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" + }, + "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" + }, "SynthesisInput": { - "description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 characters.", + "description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 bytes.", "id": "SynthesisInput", "properties": { "ssml": { @@ -239,6 +538,46 @@ }, "type": "object" }, + "SynthesizeLongAudioMetadata": { + "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", + "id": "SynthesizeLongAudioMetadata", + "properties": { + "progressPercentage": { + "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", + "format": "double", + "type": "number" + }, + "startTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "SynthesizeLongAudioRequest": { + "description": "The top-level message sent by the client for the `SynthesizeLongAudio` method.", + "id": "SynthesizeLongAudioRequest", + "properties": { + "audioConfig": { + "$ref": "AudioConfig", + "description": "Required. The configuration of the synthesized audio." + }, + "input": { + "$ref": "SynthesisInput", + "description": "Required. The Synthesizer requires either plain text or SSML as input." + }, + "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.", + "type": "string" + }, + "voice": { + "$ref": "VoiceSelectionParams", + "description": "The desired voice of the synthesized audio." + } + }, + "type": "object" + }, "SynthesizeSpeechRequest": { "description": "The top-level message sent by the client for the `SynthesizeSpeech` method.", "id": "SynthesizeSpeechRequest", @@ -313,6 +652,10 @@ "description": "Description of which voice to use for a synthesis request.", "id": "VoiceSelectionParams", "properties": { + "customVoice": { + "$ref": "CustomVoiceParams", + "description": "The configuration for a custom voice. If [CustomVoiceParams.model] is set, the service will choose the custom voice matching the specified configuration." + }, "languageCode": { "description": "Required. The language (and potentially also the region) of the voice expressed as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag, e.g. \"en-US\". This should not include a script tag (e.g. use \"cmn-cn\" rather than \"cmn-Hant-cn\"), because the script will be inferred from the input provided in the SynthesisInput. The TTS service will use this parameter to help choose an appropriate voice. Note that the TTS service may choose a voice with a slightly different language code than the one selected; it may substitute a different region (e.g. using en-US rather than en-CA if there isn't a Canadian voice available), or even a different language, e.g. using \"nb\" (Norwegian Bokmal) instead of \"no\" (Norwegian)\".", "type": "string" diff --git a/etc/api/texttospeech/v1beta1/texttospeech-api.json b/etc/api/texttospeech/v1beta1/texttospeech-api.json index 1daa3c2fb3..9e211f5ac7 100644 --- a/etc/api/texttospeech/v1beta1/texttospeech-api.json +++ b/etc/api/texttospeech/v1beta1/texttospeech-api.json @@ -105,6 +105,114 @@ }, "protocol": "rest", "resources": { + "projects": { + "resources": { + "locations": { + "methods": { + "synthesizeLongAudio": { + "description": "Synthesizes long form text asynchronously.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}:synthesizeLongAudio", + "httpMethod": "POST", + "id": "texttospeech.projects.locations.synthesizeLongAudio", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "The resource states of the request in the form of `projects/*/locations/*/voices/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}:synthesizeLongAudio", + "request": { + "$ref": "SynthesizeLongAudioRequest" + }, + "response": { + "$ref": "Operation" + }, + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "texttospeech.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": "v1beta1/{+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`. 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.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "texttospeech.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + }, "text": { "methods": { "synthesize": { @@ -153,7 +261,7 @@ } } }, - "revision": "20220228", + "revision": "20230118", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { @@ -237,6 +345,41 @@ }, "type": "object" }, + "GoogleCloudTexttospeechV1beta1SynthesizeLongAudioMetadata": { + "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", + "id": "GoogleCloudTexttospeechV1beta1SynthesizeLongAudioMetadata", + "properties": { + "progressPercentage": { + "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", + "format": "double", + "type": "number" + }, + "startTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "id": "ListOperationsResponse", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, "ListVoicesResponse": { "description": "The message returned to the client by the `ListVoices` method.", "id": "ListVoicesResponse", @@ -251,8 +394,70 @@ }, "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 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" + }, + "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" + }, "SynthesisInput": { - "description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 characters.", + "description": "Contains text input to be synthesized. Either `text` or `ssml` must be supplied. Supplying both or neither returns google.rpc.Code.INVALID_ARGUMENT. The input size is limited to 5000 bytes.", "id": "SynthesisInput", "properties": { "ssml": { @@ -266,6 +471,46 @@ }, "type": "object" }, + "SynthesizeLongAudioMetadata": { + "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", + "id": "SynthesizeLongAudioMetadata", + "properties": { + "progressPercentage": { + "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", + "format": "double", + "type": "number" + }, + "startTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "SynthesizeLongAudioRequest": { + "description": "The top-level message sent by the client for the `SynthesizeLongAudio` method.", + "id": "SynthesizeLongAudioRequest", + "properties": { + "audioConfig": { + "$ref": "AudioConfig", + "description": "Required. The configuration of the synthesized audio." + }, + "input": { + "$ref": "SynthesisInput", + "description": "Required. The Synthesizer requires either plain text or SSML as input." + }, + "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.", + "type": "string" + }, + "voice": { + "$ref": "VoiceSelectionParams", + "description": "The desired voice of the synthesized audio." + } + }, + "type": "object" + }, "SynthesizeSpeechRequest": { "description": "The top-level message sent by the client for the `SynthesizeSpeech` method.", "id": "SynthesizeSpeechRequest", diff --git a/etc/api/toolresults/v1beta3/toolresults-api.json b/etc/api/toolresults/v1beta3/toolresults-api.json index 3375b499f4..f77a0bdfc5 100644 --- a/etc/api/toolresults/v1beta3/toolresults-api.json +++ b/etc/api/toolresults/v1beta3/toolresults-api.json @@ -1463,7 +1463,7 @@ } } }, - "revision": "20220307", + "revision": "20230124", "rootUrl": "https://toolresults.googleapis.com/", "schemas": { "ANR": { @@ -1768,6 +1768,12 @@ }, "type": "object" }, + "DetectedAppSplashScreen": { + "description": "A notification that Robo detected a splash screen provided by app (vs. Android OS splash screen).", + "id": "DetectedAppSplashScreen", + "properties": {}, + "type": "object" + }, "DeviceOutOfMemory": { "description": "A warning that device ran out of memory", "id": "DeviceOutOfMemory", @@ -1899,7 +1905,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.", + "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", "id": "Execution", "properties": { "completionTime": { @@ -3616,7 +3622,8 @@ "overlappingUiElements", "unityException", "deviceOutOfMemory", - "logcatCollectionError" + "logcatCollectionError", + "detectedAppSplashScreen" ], "enumDescriptions": [ "Default unspecified type. Do not use. For versioning only.", @@ -3649,7 +3656,8 @@ "Overlapping UI elements are found in the Robo crawl", "An uncaught Unity exception was detected (these don't crash apps).", "Device running out of memory was detected", - "Problems detected while collecting logcat" + "Problems detected while collecting logcat", + "Robo detected a splash screen provided by app (vs. Android OS splash screen)." ], "type": "string" }, diff --git a/etc/api/tpu/v1/tpu-api.json b/etc/api/tpu/v1/tpu-api.json index 737257f7ea..71db0837e0 100644 --- a/etc/api/tpu/v1/tpu-api.json +++ b/etc/api/tpu/v1/tpu-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -659,7 +659,7 @@ } } }, - "revision": "20220301", + "revision": "20230105", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -678,7 +678,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/tpu/v1alpha1/tpu-api.json b/etc/api/tpu/v1alpha1/tpu-api.json index 283ff60565..cb4acc1242 100644 --- a/etc/api/tpu/v1alpha1/tpu-api.json +++ b/etc/api/tpu/v1alpha1/tpu-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -669,7 +669,7 @@ } } }, - "revision": "20220301", + "revision": "20230105", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -688,7 +688,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/tpu/v2alpha1/tpu-api.json b/etc/api/tpu/v2alpha1/tpu-api.json index 2734c9237f..1bbc76f53c 100644 --- a/etc/api/tpu/v2alpha1/tpu-api.json +++ b/etc/api/tpu/v2alpha1/tpu-api.json @@ -172,7 +172,7 @@ ], "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).", + "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" }, @@ -473,6 +473,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "simulateMaintenanceEvent": { + "description": "Simulates a maintenance event.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}:simulateMaintenanceEvent", + "httpMethod": "POST", + "id": "tpu.projects.locations.nodes.simulateMaintenanceEvent", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha1/{+name}:simulateMaintenanceEvent", + "request": { + "$ref": "SimulateMaintenanceEventRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "start": { "description": "Starts a node.", "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}:start", @@ -483,7 +511,7 @@ ], "parameters": { "name": { - "description": "The resource name.", + "description": "Required. The resource name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", "required": true, @@ -511,7 +539,7 @@ ], "parameters": { "name": { - "description": "The resource name.", + "description": "Required. The resource name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", "required": true, @@ -651,6 +679,139 @@ } } }, + "queuedResources": { + "methods": { + "create": { + "description": "Creates a QueuedResource TPU instance.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/queuedResources", + "httpMethod": "POST", + "id": "tpu.projects.locations.queuedResources.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "queuedResourceId": { + "description": "The unqualified resource name. Should follow the ^[A-Za-z0-9_.~+%-]+$ regex format.", + "location": "query", + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha1/{+parent}/queuedResources", + "request": { + "$ref": "QueuedResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a QueuedResource TPU instance.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/queuedResources/{queuedResourcesId}", + "httpMethod": "DELETE", + "id": "tpu.projects.locations.queuedResources.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queuedResources/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a queued resource.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/queuedResources/{queuedResourcesId}", + "httpMethod": "GET", + "id": "tpu.projects.locations.queuedResources.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queuedResources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha1/{+name}", + "response": { + "$ref": "QueuedResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists queued resources.", + "flatPath": "v2alpha1/projects/{projectsId}/locations/{locationsId}/queuedResources", + "httpMethod": "GET", + "id": "tpu.projects.locations.queuedResources.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 resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha1/{+parent}/queuedResources", + "response": { + "$ref": "ListQueuedResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "runtimeVersions": { "methods": { "get": { @@ -731,7 +892,7 @@ } } }, - "revision": "20220301", + "revision": "20230105", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { @@ -743,12 +904,18 @@ "type": "string" }, "type": { - "description": "the accelerator type.", + "description": "The accelerator type.", "type": "string" } }, "type": "object" }, + "AcceptedData": { + "description": "Further data for the accepted state.", + "id": "AcceptedData", + "properties": {}, + "type": "object" + }, "AccessConfig": { "description": "An access config attached to the TPU worker.", "id": "AccessConfig", @@ -761,6 +928,12 @@ }, "type": "object" }, + "ActiveData": { + "description": "Further data for the active state.", + "id": "ActiveData", + "properties": {}, + "type": "object" + }, "AttachedDisk": { "description": "A node-attached disk resource. Next ID: 8;", "id": "AttachedDisk", @@ -786,12 +959,41 @@ }, "type": "object" }, + "BestEffort": { + "description": "BestEffort tier definition.", + "id": "BestEffort", + "properties": {}, + "type": "object" + }, + "CreatingData": { + "description": "Further data for the creating state.", + "id": "CreatingData", + "properties": {}, + "type": "object" + }, + "DeletingData": { + "description": "Further data for the deleting state.", + "id": "DeletingData", + "properties": {}, + "type": "object" + }, "Empty": { - "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } 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": "Empty", "properties": {}, "type": "object" }, + "FailedData": { + "description": "Further data for the failed state.", + "id": "FailedData", + "properties": { + "error": { + "$ref": "Status", + "description": "The error that caused the queued resource to enter the FAILED state." + } + }, + "type": "object" + }, "GenerateServiceIdentityRequest": { "description": "Request for GenerateServiceIdentity.", "id": "GenerateServiceIdentityRequest", @@ -841,6 +1043,22 @@ }, "type": "object" }, + "Guaranteed": { + "description": "Guaranteed tier definition.", + "id": "Guaranteed", + "properties": { + "minDuration": { + "description": "Optional. Defines the minimum duration of the guarantee. If specified, the requested resources will only be provisioned if they can be allocated for at least the given duration.", + "format": "google-duration", + "type": "string" + }, + "reserved": { + "description": "Optional. Specifies the request should be scheduled on reserved capacity.", + "type": "boolean" + } + }, + "type": "object" + }, "GuestAttributes": { "description": "A guest attributes.", "id": "GuestAttributes", @@ -889,6 +1107,23 @@ }, "type": "object" }, + "Interval": { + "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", + "id": "Interval", + "properties": { + "endTime": { + "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "ListAcceleratorTypesResponse": { "description": "Response for ListAcceleratorTypes.", "id": "ListAcceleratorTypesResponse", @@ -975,6 +1210,31 @@ }, "type": "object" }, + "ListQueuedResourcesResponse": { + "description": "Response for ListQueuedResources.", + "id": "ListQueuedResourcesResponse", + "properties": { + "nextPageToken": { + "description": "The next page token or empty if none.", + "type": "string" + }, + "queuedResources": { + "description": "The listed queued resources.", + "items": { + "$ref": "QueuedResource" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRuntimeVersionsResponse": { "description": "Response for ListRuntimeVersions.", "id": "ListRuntimeVersionsResponse", @@ -1082,7 +1342,7 @@ "id": "Node", "properties": { "acceleratorType": { - "description": "Required. The type of hardware accelerators associated with this node.", + "description": "The type of hardware accelerators associated with this node.", "type": "string" }, "apiVersion": { @@ -1183,6 +1443,11 @@ "readOnly": true, "type": "array" }, + "queuedResource": { + "description": "Output only. The qualified name of the QueuedResource that requested this Node.", + "readOnly": true, + "type": "string" + }, "runtimeVersion": { "description": "Required. The runtime version running in the Node.", "type": "string" @@ -1195,6 +1460,10 @@ "$ref": "ServiceAccount", "description": "The Google Cloud Platform Service Account to be used by the TPU node VMs. If None is specified, the default compute service account will be used." }, + "shieldedInstanceConfig": { + "$ref": "ShieldedInstanceConfig", + "description": "Shielded Instance options." + }, "state": { "description": "Output only. The current state for the TPU Node.", "enum": [ @@ -1221,7 +1490,7 @@ "TPU node is restarting.", "TPU node is undergoing reimaging.", "TPU node is being deleted.", - "TPU node is being repaired and may be unusable. Details can be found in the `help_description` field.", + "TPU node is being repaired and may be unusable. Details can be found in the 'help_description' field.", "TPU node is stopped.", "TPU node is currently stopping.", "TPU node is currently starting.", @@ -1252,6 +1521,25 @@ }, "type": "object" }, + "NodeSpec": { + "description": "Details of the TPU node(s) being requested. Users can request either a single node or multiple nodes. NodeSpec provides the specification for node(s) to be created.", + "id": "NodeSpec", + "properties": { + "node": { + "$ref": "Node", + "description": "Required. The node." + }, + "nodeId": { + "description": "The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. This is only specified when requesting a single node. In case of multi-node requests, multi_node_params must be populated instead. It's an error to specify both node_id and multi_node_params.", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1324,6 +1612,141 @@ }, "type": "object" }, + "ProvisioningData": { + "description": "Further data for the provisioning state.", + "id": "ProvisioningData", + "properties": {}, + "type": "object" + }, + "QueuedResource": { + "description": "A QueuedResource represents a request for resources that will be placed in a queue and fulfilled when the necessary resources are available.", + "id": "QueuedResource", + "properties": { + "bestEffort": { + "$ref": "BestEffort", + "description": "The BestEffort tier." + }, + "guaranteed": { + "$ref": "Guaranteed", + "description": "The Guaranteed tier" + }, + "name": { + "description": "Output only. Immutable. The name of the QueuedResource.", + "readOnly": true, + "type": "string" + }, + "queueingPolicy": { + "$ref": "QueueingPolicy", + "description": "The queueing policy of the QueuedRequest." + }, + "state": { + "$ref": "QueuedResourceState", + "description": "Output only. State of the QueuedResource request", + "readOnly": true + }, + "tpu": { + "$ref": "Tpu", + "description": "Defines a TPU resource." + } + }, + "type": "object" + }, + "QueuedResourceState": { + "description": "QueuedResourceState defines the details of the QueuedResource request.", + "id": "QueuedResourceState", + "properties": { + "acceptedData": { + "$ref": "AcceptedData", + "description": "Further data for the accepted state." + }, + "activeData": { + "$ref": "ActiveData", + "description": "Further data for the active state." + }, + "creatingData": { + "$ref": "CreatingData", + "description": "Further data for the creating state." + }, + "deletingData": { + "$ref": "DeletingData", + "description": "Further data for the deleting state." + }, + "failedData": { + "$ref": "FailedData", + "description": "Further data for the failed state." + }, + "provisioningData": { + "$ref": "ProvisioningData", + "description": "Further data for the provisioning state." + }, + "state": { + "description": "State of the QueuedResource request.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACCEPTED", + "PROVISIONING", + "FAILED", + "DELETING", + "ACTIVE", + "SUSPENDING", + "SUSPENDED" + ], + "enumDescriptions": [ + "State of the QueuedResource request is not known/set.", + "The QueuedResource request has been received. We're still working on determining if we will be able to honor this request.", + "The QueuedResource request has passed initial validation/admission control and has been persisted in the queue.", + "The QueuedResource request has been selected. The associated resources are currently being provisioned (or very soon will begin provisioning).", + "The request could not be completed. This may be due to some late-discovered problem with the request itself, or due to unavailability of resources within the constraints of the request (e.g., the 'valid until' start timing constraint expired).", + "The QueuedResource is being deleted.", + "The resources specified in the QueuedResource request have been provisioned and are ready for use by the end-user/consumer.", + "The resources specified in the QueuedResource request are being deleted. This may have been initiated by the user, or the Cloud TPU service. Inspect the state data for more details.", + "The resources specified in the QueuedResource request have been deleted." + ], + "type": "string" + }, + "suspendedData": { + "$ref": "SuspendedData", + "description": "Further data for the suspended state." + }, + "suspendingData": { + "$ref": "SuspendingData", + "description": "Further data for the suspending state." + } + }, + "type": "object" + }, + "QueueingPolicy": { + "description": "Defines the policy of the QueuedRequest.", + "id": "QueueingPolicy", + "properties": { + "validAfterDuration": { + "description": "A relative time after which resources may be created.", + "format": "google-duration", + "type": "string" + }, + "validAfterTime": { + "description": "An absolute time at which resources may be created.", + "format": "google-datetime", + "type": "string" + }, + "validInterval": { + "$ref": "Interval", + "description": "An absolute time interval within which resources may be created." + }, + "validUntilDuration": { + "description": "A relative time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.", + "format": "google-duration", + "type": "string" + }, + "validUntilTime": { + "description": "An absolute time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "RuntimeVersion": { "description": "A runtime version that a Node can be configured with.", "id": "RuntimeVersion", @@ -1383,6 +1806,31 @@ }, "type": "object" }, + "ShieldedInstanceConfig": { + "description": "A set of Shielded Instance options.", + "id": "ShieldedInstanceConfig", + "properties": { + "enableSecureBoot": { + "description": "Defines whether the instance has Secure Boot enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "SimulateMaintenanceEventRequest": { + "description": "Request for SimulateMaintenanceEvent.", + "id": "SimulateMaintenanceEventRequest", + "properties": { + "workerIds": { + "description": "The 0-based worker ID. If it is empty, worker ID 0 will be selected for maintenance event simulation. A maintenance event will only be fired on the first specified worker ID. Future implementations may support firing on multiple workers.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "StartNodeRequest": { "description": "Request for StartNode.", "id": "StartNodeRequest", @@ -1422,6 +1870,18 @@ "properties": {}, "type": "object" }, + "SuspendedData": { + "description": "Further data for the suspended state.", + "id": "SuspendedData", + "properties": {}, + "type": "object" + }, + "SuspendingData": { + "description": "Further data for the suspending state.", + "id": "SuspendingData", + "properties": {}, + "type": "object" + }, "Symptom": { "description": "A Symptom instance.", "id": "Symptom", @@ -1463,6 +1923,20 @@ } }, "type": "object" + }, + "Tpu": { + "description": "Details of the TPU resource(s) being requested.", + "id": "Tpu", + "properties": { + "nodeSpec": { + "description": "The TPU node(s) being requested.", + "items": { + "$ref": "NodeSpec" + }, + "type": "array" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/trafficdirector/v2/trafficdirector-api.json b/etc/api/trafficdirector/v2/trafficdirector-api.json index 9ab65b3d8c..f38432140e 100644 --- a/etc/api/trafficdirector/v2/trafficdirector-api.json +++ b/etc/api/trafficdirector/v2/trafficdirector-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220201", + "revision": "20221216", "rootUrl": "https://trafficdirector.googleapis.com/", "schemas": { "Address": { @@ -427,7 +427,7 @@ "type": "object" }, "GoogleRE2": { - "description": "Google's `RE2 `_ regex engine. The regex string must adhere to the documented `syntax `_. The engine is designed to complete execution in linear time as well as limit the amount of memory used. Envoy supports program size checking via runtime. The runtime keys `re2.max_program_size.error_level` and `re2.max_program_size.warn_level` can be set to integers as the maximum program size or complexity that a compiled regex can have before an exception is thrown or a warning is logged, respectively. `re2.max_program_size.error_level` defaults to 100, and `re2.max_program_size.warn_level` has no default if unset (will not check/log a warning). Envoy emits two stats for tracking the program size of regexes: the histogram `re2.program_size`, which records the program size, and the counter `re2.exceeded_warn_level`, which is incremented each time the program size exceeds the warn level threshold.", + "description": "Google's `RE2 `_ regex engine. The regex string must adhere to the documented `syntax `_. The engine is designed to complete execution in linear time as well as limit the amount of memory used. Envoy supports program size checking via runtime. The runtime keys ``re2.max_program_size.error_level`` and ``re2.max_program_size.warn_level`` can be set to integers as the maximum program size or complexity that a compiled regex can have before an exception is thrown or a warning is logged, respectively. ``re2.max_program_size.error_level`` defaults to 100, and ``re2.max_program_size.warn_level`` has no default if unset (will not check/log a warning). Envoy emits two stats for tracking the program size of regexes: the histogram `re2.program_size`, which records the program size, and the counter `re2.exceeded_warn_level`, which is incremented each time the program size exceeds the warn level threshold.", "id": "GoogleRE2", "properties": { "maxProgramSize": { diff --git a/etc/api/transcoder/v1/transcoder-api.json b/etc/api/transcoder/v1/transcoder-api.json index 366a7a5854..918d8f6d2e 100644 --- a/etc/api/transcoder/v1/transcoder-api.json +++ b/etc/api/transcoder/v1/transcoder-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://transcoder.googleapis.com/", "batchPath": "batch", "canonicalName": "Transcoder", - "description": "This API converts video files into formats suitable for consumer distribution. ", + "description": "This API converts video files into formats suitable for consumer distribution. For more information, see the Transcoder API overview. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/transcoder/docs/", "fullyEncodeReservedExpansion": true, @@ -385,7 +385,7 @@ } } }, - "revision": "20220201", + "revision": "20230105", "rootUrl": "https://transcoder.googleapis.com/", "schemas": { "AdBreak": { @@ -487,11 +487,11 @@ "id": "Audio", "properties": { "highBoost": { - "description": "Enable boosting high frequency components. The default is `false`.", + "description": "Enable boosting high frequency components. The default is `false`. **Note:** This field is not supported.", "type": "boolean" }, "lowBoost": { - "description": "Enable boosting low frequency components. The default is `false`.", + "description": "Enable boosting low frequency components. The default is `false`. **Note:** This field is not supported.", "type": "boolean" }, "lufs": { @@ -577,8 +577,27 @@ }, "type": "object" }, + "BwdifConfig": { + "description": "Bob Weaver Deinterlacing Filter Configuration.", + "id": "BwdifConfig", + "properties": { + "deinterlaceAllFrames": { + "description": "Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`.", + "type": "boolean" + }, + "mode": { + "description": "Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field", + "type": "string" + }, + "parity": { + "description": "The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity", + "type": "string" + } + }, + "type": "object" + }, "Color": { - "description": "Color preprocessing configuration.", + "description": "Color preprocessing configuration. **Note:** This configuration is not supported.", "id": "Color", "properties": { "brightness": { @@ -627,7 +646,7 @@ "type": "object" }, "Deblock": { - "description": "Deblock preprocessing configuration.", + "description": "Deblock preprocessing configuration. **Note:** This configuration is not supported.", "id": "Deblock", "properties": { "enabled": { @@ -642,8 +661,23 @@ }, "type": "object" }, + "Deinterlace": { + "description": "Deinterlace configuration for input video.", + "id": "Deinterlace", + "properties": { + "bwdif": { + "$ref": "BwdifConfig", + "description": "Specifies the Bob Weaver Deinterlacing Filter Configuration." + }, + "yadif": { + "$ref": "YadifConfig", + "description": "Specifies the Yet Another Deinterlacing Filter Configuration." + } + }, + "type": "object" + }, "Denoise": { - "description": "Denoise preprocessing configuration.", + "description": "Denoise preprocessing configuration. **Note:** This configuration is not supported.", "id": "Denoise", "properties": { "strength": { @@ -710,7 +744,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -771,7 +805,7 @@ "type": "integer" }, "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.", + "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" }, @@ -806,7 +840,7 @@ "type": "integer" }, "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.", + "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", "type": "integer" } @@ -865,7 +899,7 @@ "type": "integer" }, "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.", + "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" }, @@ -900,7 +934,7 @@ "type": "integer" }, "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.", + "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", "type": "integer" } @@ -940,7 +974,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 will be populated from `Job.input_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).", "type": "string" } }, @@ -972,15 +1006,22 @@ "readOnly": true }, "inputUri": { - "description": "Input only. Specify the `input_uri` to populate empty `uri` fields in each element of `Job.config.inputs` or `JobTemplate.config.inputs` when using template. URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).", + "description": "Input only. Specify the `input_uri` to populate empty `uri` fields in each element of `Job.config.inputs` or `JobTemplate.config.inputs` when using template. URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", "type": "string" }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels associated with this job. You can use these to organize and group your jobs.", + "type": "object" + }, "name": { "description": "The resource name of the job. Format: `projects/{project_number}/locations/{location}/jobs/{job}`", "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/`.", + "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" }, "startTime": { @@ -1082,7 +1123,7 @@ "description": "Destination on Pub/Sub." }, "spriteSheets": { - "description": "List of output sprite sheets.", + "description": "List of output sprite sheets. Spritesheets require at least one VideoStream in the Jobconfig.", "items": { "$ref": "SpriteSheet" }, @@ -1099,6 +1140,13 @@ "$ref": "JobConfig", "description": "The configuration for this template." }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels associated with this job template. You can use these to organize and group your job templates.", + "type": "object" + }, "name": { "description": "The resource name of the job template. Format: `projects/{project_number}/locations/{location}/jobTemplates/{job_template}`", "type": "string" @@ -1193,7 +1241,7 @@ "id": "MuxStream", "properties": { "container": { - "description": "The container format. The default is `mp4` Supported container formats: - `ts` - `fmp4`- the corresponding file extension is `.m4s` - `mp4` - `vtt`", + "description": "The container format. The default is `mp4` Supported container formats: - `ts` - `fmp4`- the corresponding file extension is `.m4s` - `mp4` - `vtt` See also: [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats)", "type": "string" }, "elementaryStreams": { @@ -1240,7 +1288,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`.", + "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" } }, @@ -1311,6 +1359,10 @@ "$ref": "Deblock", "description": "Deblock preprocessing configuration." }, + "deinterlace": { + "$ref": "Deinterlace", + "description": "Specify the video deinterlace configuration." + }, "denoise": { "$ref": "Denoise", "description": "Denoise preprocessing configuration." @@ -1387,12 +1439,12 @@ "type": "integer" }, "spriteHeightPixels": { - "description": "Required. The height of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_height_pixels field or the SpriteSheet.sprite_width_pixels field, but not both (the API will automatically calculate the missing field).", + "description": "Required. The height of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_height_pixels field or the SpriteSheet.sprite_width_pixels field, but not both (the API will automatically calculate the missing field). 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" }, "spriteWidthPixels": { - "description": "Required. The width of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_width_pixels field or the SpriteSheet.sprite_height_pixels field, but not both (the API will automatically calculate the missing field).", + "description": "Required. The width of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_width_pixels field or the SpriteSheet.sprite_height_pixels field, but not both (the API will automatically calculate the missing field). 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", "type": "integer" }, @@ -1503,7 +1555,7 @@ "type": "integer" }, "crfLevel": { - "description": "Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. *Note*: This field is not supported. ", + "description": "Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. **Note:** This field is not supported.", "format": "int32", "type": "integer" }, @@ -1523,7 +1575,7 @@ "type": "integer" }, "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.", + "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" }, @@ -1540,12 +1592,35 @@ "type": "string" }, "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.", + "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", "type": "integer" } }, "type": "object" + }, + "YadifConfig": { + "description": "Yet Another Deinterlacing Filter Configuration.", + "id": "YadifConfig", + "properties": { + "deinterlaceAllFrames": { + "description": "Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`.", + "type": "boolean" + }, + "disableSpatialInterlacing": { + "description": "Disable spacial interlacing. The default is `false`.", + "type": "boolean" + }, + "mode": { + "description": "Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field", + "type": "string" + }, + "parity": { + "description": "The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/translate/v3/translate-api.json b/etc/api/translate/v3/translate-api.json index b53a4e19e6..744c135398 100644 --- a/etc/api/translate/v3/translate-api.json +++ b/etc/api/translate/v3/translate-api.json @@ -365,7 +365,7 @@ ], "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).", + "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" }, @@ -457,6 +457,234 @@ } }, "resources": { + "datasets": { + "methods": { + "create": { + "description": "Creates a Dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets", + "httpMethod": "POST", + "id": "translate.projects.locations.datasets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The project name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/datasets", + "request": { + "$ref": "Dataset" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "delete": { + "description": "Deletes a dataset and all of its contents.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", + "httpMethod": "DELETE", + "id": "translate.projects.locations.datasets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the dataset to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "exportData": { + "description": "Exports dataset's data to the provided output location.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:exportData", + "httpMethod": "POST", + "id": "translate.projects.locations.datasets.exportData", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. Name of the dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+dataset}:exportData", + "request": { + "$ref": "ExportDataRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "get": { + "description": "Gets a Dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", + "httpMethod": "GET", + "id": "translate.projects.locations.datasets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the dataset to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "importData": { + "description": "Import sentence pairs into translation Dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:importData", + "httpMethod": "POST", + "id": "translate.projects.locations.datasets.importData", + "parameterOrder": [ + "dataset" + ], + "parameters": { + "dataset": { + "description": "Required. Name of the dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+dataset}:importData", + "request": { + "$ref": "ImportDataRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "list": { + "description": "Lists datasets.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets", + "httpMethod": "GET", + "id": "translate.projects.locations.datasets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Requested page size. The server can return fewer results than requested.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListDatasets call.", + "location": "query", + "type": "string" + }, + "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}/datasets", + "response": { + "$ref": "ListDatasetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + }, + "resources": { + "examples": { + "methods": { + "list": { + "description": "Lists sentence pairs in the dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/examples", + "httpMethod": "GET", + "id": "translate.projects.locations.datasets.examples.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. An expression for filtering the examples that will be returned. Example filter: * `usage=TRAIN`", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server can return fewer results than requested.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListExamples call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/examples", + "response": { + "$ref": "ListExamplesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + } + } + } + }, "glossaries": { "methods": { "create": { @@ -580,6 +808,320 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-translation" ] + }, + "patch": { + "description": "Updates a glossary. A LRO is used since the update can be async if the glossary's entry file is updated.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}", + "httpMethod": "PATCH", + "id": "translate.projects.locations.glossaries.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the glossary. Glossary names have the form `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated. Currently only `display_name` and 'input_config'", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v3/{+name}", + "request": { + "$ref": "Glossary" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "glossaryEntries": { + "methods": { + "create": { + "description": "Creates a glossary entry.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries", + "httpMethod": "POST", + "id": "translate.projects.locations.glossaries.glossaryEntries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the glossary to create the entry under.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/glossaryEntries", + "request": { + "$ref": "GlossaryEntry" + }, + "response": { + "$ref": "GlossaryEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "delete": { + "description": "Deletes a single entry from the glossary", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", + "httpMethod": "DELETE", + "id": "translate.projects.locations.glossaries.glossaryEntries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the glossary entry to delete", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", + "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 a single glossary entry by the given id.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", + "httpMethod": "GET", + "id": "translate.projects.locations.glossaries.glossaryEntries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the glossary entry to get", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "GlossaryEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "list": { + "description": "List the entries for the glossary.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries", + "httpMethod": "GET", + "id": "translate.projects.locations.glossaries.glossaryEntries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Requested page size. The server may return fewer glossary entries 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 [ListGlossaryEntriesResponse.next_page_token] returned from the previous call. The first page is returned if `page_token`is empty or missing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent glossary resource name for listing the glossary's entries.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/glossaryEntries", + "response": { + "$ref": "ListGlossaryEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "patch": { + "description": "Updates a glossary entry.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", + "httpMethod": "PATCH", + "id": "translate.projects.locations.glossaries.glossaryEntries.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the entry. Format: \"projects/*/locations/*/glossaries/*/glossaryEntries/*\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "request": { + "$ref": "GlossaryEntry" + }, + "response": { + "$ref": "GlossaryEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + } + } + } + }, + "models": { + "methods": { + "create": { + "description": "Creates a Model.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models", + "httpMethod": "POST", + "id": "translate.projects.locations.models.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The project name, in form of `projects/{project}/locations/{location}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/models", + "request": { + "$ref": "Model" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "delete": { + "description": "Deletes a model.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models/{modelsId}", + "httpMethod": "DELETE", + "id": "translate.projects.locations.models.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the model to delete.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "get": { + "description": "Gets a model.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models/{modelsId}", + "httpMethod": "GET", + "id": "translate.projects.locations.models.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the model to retrieve.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Model" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "list": { + "description": "Lists models.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models", + "httpMethod": "GET", + "id": "translate.projects.locations.models.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. An expression for filtering the models that will be returned. Supported filter: `dataset_id=${dataset_id}`", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server can return fewer results than requested.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListModels call.", + "location": "query", + "type": "string" + }, + "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}/models", + "response": { + "$ref": "ListModelsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] } } }, @@ -744,7 +1286,7 @@ } } }, - "revision": "20220121", + "revision": "20230106", "rootUrl": "https://translation.googleapis.com/", "schemas": { "BatchDocumentInputConfig": { @@ -764,7 +1306,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?hl=en#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" @@ -773,6 +1315,10 @@ "description": "The BatchTranslateDocument request.", "id": "BatchTranslateDocumentRequest", "properties": { + "customizedAttribution": { + "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" + }, "formatConversions": { "additionalProperties": { "type": "string" @@ -806,7 +1352,7 @@ "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 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).", "type": "string" }, "targetLanguageCodes": { @@ -875,6 +1421,90 @@ "properties": {}, "type": "object" }, + "Dataset": { + "description": "A dataset that hosts the examples (sentence pairs) used for translation models.", + "id": "Dataset", + "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": "Output only. The number of examples in the dataset.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "name": { + "description": "The resource name of the dataset, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{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" + }, + "testExampleCount": { + "description": "Output only. Number of test examples (sentence pairs).", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "trainExampleCount": { + "description": "Output only. Number of training examples (sentence pairs).", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "updateTime": { + "description": "Output only. Timestamp when this dataset was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "validateExampleCount": { + "description": "Output only. Number of validation examples (sentence pairs).", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "DatasetInputConfig": { + "description": "Input configuration for datasets.", + "id": "DatasetInputConfig", + "properties": { + "inputFiles": { + "description": "Files containing the sentence pairs to be imported to the dataset.", + "items": { + "$ref": "InputFile" + }, + "type": "array" + } + }, + "type": "object" + }, + "DatasetOutputConfig": { + "description": "Output configuration for datasets.", + "id": "DatasetOutputConfig", + "properties": { + "gcsDestination": { + "$ref": "GcsOutputDestination", + "description": "Google Cloud Storage destination to write the output." + } + }, + "type": "object" + }, "DetectLanguageRequest": { "description": "The request message for language detection.", "id": "DetectLanguageRequest", @@ -925,7 +1555,7 @@ "type": "number" }, "languageCode": { - "description": "The BCP-47 language code of source content in the request, detected automatically.", + "description": "The BCP-47 language code of the source content in the request, detected automatically.", "type": "string" } }, @@ -990,11 +1620,47 @@ "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); } 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": "Empty", "properties": {}, "type": "object" }, + "Example": { + "description": "A sentence pair.", + "id": "Example", + "properties": { + "name": { + "description": "Output only. The resource name of the example, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}/examples/{example_id}'", + "readOnly": true, + "type": "string" + }, + "sourceText": { + "description": "Sentence in source language.", + "type": "string" + }, + "targetText": { + "description": "Sentence in target language.", + "type": "string" + }, + "usage": { + "description": "Output only. Usage of the sentence pair. Options are TRAIN|VALIDATION|TEST.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ExportDataRequest": { + "description": "Request message for ExportData.", + "id": "ExportDataRequest", + "properties": { + "outputConfig": { + "$ref": "DatasetOutputConfig", + "description": "Required. The config for the output content." + } + }, + "type": "object" + }, "GcsDestination": { "description": "The Google Cloud Storage location for the output content.", "id": "GcsDestination", @@ -1006,6 +1672,28 @@ }, "type": "object" }, + "GcsInputSource": { + "description": "The Google Cloud Storage location for the input content.", + "id": "GcsInputSource", + "properties": { + "inputUri": { + "description": "Required. Source data URI. For example, `gs://my_bucket/my_object`.", + "type": "string" + } + }, + "type": "object" + }, + "GcsOutputDestination": { + "description": "The Google Cloud Storage location for the output content.", + "id": "GcsOutputDestination", + "properties": { + "outputUriPrefix": { + "description": "Required. Google Cloud Storage URI to output directory. For example, `gs://bucket/directory`. The requesting user must have write permission to the bucket. The directory will be created if it doesn't exist.", + "type": "string" + } + }, + "type": "object" + }, "GcsSource": { "description": "The Google Cloud Storage location for the input content.", "id": "GcsSource", @@ -1018,9 +1706,13 @@ "type": "object" }, "Glossary": { - "description": "Represents a glossary built from user provided data.", + "description": "Represents a glossary built from user-provided data.", "id": "Glossary", "properties": { + "displayName": { + "description": "Optional. The display name of the glossary.", + "type": "string" + }, "endTime": { "description": "Output only. When the glossary creation was finished.", "format": "google-datetime", @@ -1058,13 +1750,91 @@ }, "type": "object" }, + "GlossaryEntry": { + "description": "Represents a single entry in a glossary.", + "id": "GlossaryEntry", + "properties": { + "description": { + "description": "Describes the glossary entry.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the entry. Format: \"projects/*/locations/*/glossaries/*/glossaryEntries/*\"", + "type": "string" + }, + "termsPair": { + "$ref": "GlossaryTermsPair", + "description": "Used for an unidirectional glossary." + }, + "termsSet": { + "$ref": "GlossaryTermsSet", + "description": "Used for an equivalent term sets glossary." + } + }, + "type": "object" + }, "GlossaryInputConfig": { "description": "Input configuration for glossaries.", "id": "GlossaryInputConfig", "properties": { "gcsSource": { "$ref": "GcsSource", - "description": "Required. Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. The first column is source text. The second column is target text. The file must not contain headers. That is, the first row is data, not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary)." + "description": "Required. Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): Two column file, tab- or comma-separated. The first column is source text. The second column is target text. No headers in this file. The first row contains data and not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary)." + } + }, + "type": "object" + }, + "GlossaryTerm": { + "description": "Represents a single glossary term", + "id": "GlossaryTerm", + "properties": { + "languageCode": { + "description": "The language for this glossary term.", + "type": "string" + }, + "text": { + "description": "The text for the glossary term.", + "type": "string" + } + }, + "type": "object" + }, + "GlossaryTermsPair": { + "description": "Represents a single entry for an unidirectional glossary.", + "id": "GlossaryTermsPair", + "properties": { + "sourceTerm": { + "$ref": "GlossaryTerm", + "description": "The source term is the term that will get match in the text," + }, + "targetTerm": { + "$ref": "GlossaryTerm", + "description": "The term that will replace the match source term." + } + }, + "type": "object" + }, + "GlossaryTermsSet": { + "description": "Represents a single entry for an equivalent term set glossary. This is used for equivalent term sets where each term can be replaced by the other terms in the set.", + "id": "GlossaryTermsSet", + "properties": { + "terms": { + "description": "Each term in the set represents a term that can be replaced by the other terms.", + "items": { + "$ref": "GlossaryTerm" + }, + "type": "array" + } + }, + "type": "object" + }, + "ImportDataRequest": { + "description": "Request message for ImportData.", + "id": "ImportDataRequest", + "properties": { + "inputConfig": { + "$ref": "DatasetInputConfig", + "description": "Required. The config for the input content." } }, "type": "object" @@ -1084,6 +1854,21 @@ }, "type": "object" }, + "InputFile": { + "description": "An input file.", + "id": "InputFile", + "properties": { + "gcsSource": { + "$ref": "GcsInputSource", + "description": "Google Cloud Storage file source." + }, + "usage": { + "description": "Optional. Usage of the file contents. Options are TRAIN|VALIDATION|TEST, or UNASSIGNED (by default) for auto split.", + "type": "string" + } + }, + "type": "object" + }, "LanguageCodePair": { "description": "Used with unidirectional glossaries.", "id": "LanguageCodePair", @@ -1113,6 +1898,42 @@ }, "type": "object" }, + "ListDatasetsResponse": { + "description": "Response message for ListDatasets.", + "id": "ListDatasetsResponse", + "properties": { + "datasets": { + "description": "The datasets read.", + "items": { + "$ref": "Dataset" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListDatasetsRequest to obtain the corresponding page.", + "type": "string" + } + }, + "type": "object" + }, + "ListExamplesResponse": { + "description": "Response message for ListExamples.", + "id": "ListExamplesResponse", + "properties": { + "examples": { + "description": "The sentence pairs.", + "items": { + "$ref": "Example" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListExamplesRequest to obtain the corresponding page.", + "type": "string" + } + }, + "type": "object" + }, "ListGlossariesResponse": { "description": "Response message for ListGlossaries.", "id": "ListGlossariesResponse", @@ -1131,6 +1952,24 @@ }, "type": "object" }, + "ListGlossaryEntriesResponse": { + "description": "Response message for ListGlossaryEntries", + "id": "ListGlossaryEntriesResponse", + "properties": { + "glossaryEntries": { + "description": "Optional. The Glossary Entries", + "items": { + "$ref": "GlossaryEntry" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. A token to retrieve a page of results. Pass this value in the [ListGLossaryEntriesRequest.page_token] field in the subsequent calls.", + "type": "string" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -1149,6 +1988,24 @@ }, "type": "object" }, + "ListModelsResponse": { + "description": "Response message for ListModels.", + "id": "ListModelsResponse", + "properties": { + "models": { + "description": "The models read.", + "items": { + "$ref": "Model" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListModelsRequest to obtain the corresponding page.", + "type": "string" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -1201,6 +2058,71 @@ }, "type": "object" }, + "Model": { + "description": "A trained translation model.", + "id": "Model", + "properties": { + "createTime": { + "description": "Output only. Timestamp when the model resource was created, which is also when the training started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataset": { + "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" + }, + "name": { + "description": "The resource name of the model, in form of `projects/{project-number-or-id}/locations/{location_id}/models/{model_id}`", + "type": "string" + }, + "sourceLanguageCode": { + "description": "Output only. The BCP-47 language code of the source language.", + "readOnly": true, + "type": "string" + }, + "targetLanguageCode": { + "description": "Output only. The BCP-47 language code of the target language.", + "readOnly": true, + "type": "string" + }, + "testExampleCount": { + "description": "Output only. Number of examples (sentence pairs) used to test the model.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "trainExampleCount": { + "description": "Output only. Number of examples (sentence pairs) used to train the model.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "updateTime": { + "description": "Output only. Timestamp when this model was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "validateExampleCount": { + "description": "Output only. Number of examples (sentence pairs) used to validate the model.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1242,7 +2164,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?hl=en#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" @@ -1279,19 +2201,19 @@ "id": "SupportedLanguage", "properties": { "displayName": { - "description": "Human readable name of the language localized in the display language specified in the request.", + "description": "Human-readable name of the language localized in the display language specified in the request.", "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, BCP-47 codes including language and region identifiers are returned (for example, 'zh-TW' and 'zh-CN').", "type": "string" }, "supportSource": { - "description": "Can be used as source language.", + "description": "Can be used as a source language.", "type": "boolean" }, "supportTarget": { - "description": "Can be used as target language.", + "description": "Can be used as a target language.", "type": "boolean" } }, @@ -1315,6 +2237,10 @@ "description": "A document translation request.", "id": "TranslateDocumentRequest", "properties": { + "customizedAttribution": { + "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" + }, "documentInputConfig": { "$ref": "DocumentInputConfig", "description": "Required. Input configurations." @@ -1323,10 +2249,18 @@ "$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." }, + "enableShadowRemovalNativePdf": { + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation.", + "type": "boolean" + }, "glossaryConfig": { "$ref": "TranslateTextGlossaryConfig", "description": "Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned." }, + "isTranslateNativePdfOnly": { + "description": "Optional. is_translate_native_pdf_only field for external customers. If true, the page limit of online native pdf translation is 300 and only native pdf pages will be translated.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" @@ -1373,15 +2307,15 @@ "type": "object" }, "TranslateTextGlossaryConfig": { - "description": "Configures which glossary should be used for a specific target language, and defines options for applying that glossary.", + "description": "Configures which glossary is used for a specific target language and defines options for applying that glossary.", "id": "TranslateTextGlossaryConfig", "properties": { "glossary": { - "description": "Required. The `glossary` to be applied for this translation. The format depends on glossary: - User provided custom glossary: `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`", + "description": "Required. The `glossary` to be applied for this translation. The format depends on the glossary: - User-provided custom glossary: `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`", "type": "string" }, "ignoreCase": { - "description": "Optional. Indicates match is case-insensitive. Default value is false if missing.", + "description": "Optional. Indicates match is case insensitive. The default value is `false` if missing.", "type": "boolean" } }, @@ -1392,7 +2326,7 @@ "id": "TranslateTextRequest", "properties": { "contents": { - "description": "Required. The content of the input in string format. We recommend the total content be less than 30k codepoints. The max length of this field is 1024. Use BatchTranslateText for larger text.", + "description": "Required. The content of the input in string format. We recommend the total content be less than 30,000 codepoints. The max length of this field is 1024. Use BatchTranslateText for larger text.", "items": { "type": "string" }, diff --git a/etc/api/translate/v3beta1/translate-api.json b/etc/api/translate/v3beta1/translate-api.json index 5a83ce5b37..7bf2bcf54e 100644 --- a/etc/api/translate/v3beta1/translate-api.json +++ b/etc/api/translate/v3beta1/translate-api.json @@ -365,7 +365,7 @@ ], "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).", + "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" }, @@ -744,7 +744,7 @@ } } }, - "revision": "20220121", + "revision": "20230106", "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?hl=en#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" @@ -773,6 +773,10 @@ "description": "The BatchTranslateDocument request.", "id": "BatchTranslateDocumentRequest", "properties": { + "customizedAttribution": { + "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" + }, "formatConversions": { "additionalProperties": { "type": "string" @@ -806,7 +810,7 @@ "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 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).", "type": "string" }, "targetLanguageCodes": { @@ -990,7 +994,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1064,7 +1068,7 @@ "properties": { "gcsSource": { "$ref": "GcsSource", - "description": "Required. Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. The first column is source text. The second column is target text. The file must not contain headers. That is, the first row is data, not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. The format is defined for Google Translation Toolkit and documented in [Use a glossary](https://support.google.com/translatortoolkit/answer/6306379?hl=en)." + "description": "Required. Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): 2 column file, tab- or comma-separated. The first column is source text. The second column is target text. The file must not contain headers. That is, the first row is data, not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary)." } }, "type": "object" @@ -1242,7 +1246,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?hl=en#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" @@ -1315,6 +1319,10 @@ "description": "A document translation request.", "id": "TranslateDocumentRequest", "properties": { + "customizedAttribution": { + "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" + }, "documentInputConfig": { "$ref": "DocumentInputConfig", "description": "Required. Input configurations." @@ -1323,10 +1331,18 @@ "$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." }, + "enableShadowRemovalNativePdf": { + "description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation.", + "type": "boolean" + }, "glossaryConfig": { "$ref": "TranslateTextGlossaryConfig", "description": "Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned." }, + "isTranslateNativePdfOnly": { + "description": "Optional. is_translate_native_pdf_only field for external customers. If true, the page limit of online native pdf translation is 300 and only native pdf pages will be translated.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" diff --git a/etc/api/vault/v1/vault-api.json b/etc/api/vault/v1/vault-api.json index acf7396877..0b6de9acdb 100644 --- a/etc/api/vault/v1/vault-api.json +++ b/etc/api/vault/v1/vault-api.json @@ -1193,7 +1193,7 @@ } } }, - "revision": "20220222", + "revision": "20230123", "rootUrl": "https://vault.googleapis.com/", "schemas": { "AccountCount": { @@ -1499,6 +1499,22 @@ "description": "Additional options for Drive search", "id": "DriveOptions", "properties": { + "clientSideEncryptedOption": { + "description": "Set whether the results include only content encrypted with [Google Workspace Client-side encryption](https://support.google.com/a?p=cse_ov) content, only unencrypted content, or both. Defaults to both. Currently supported for Drive.", + "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" + }, "includeSharedDrives": { "description": "Set to **true** to include shared drives.", "type": "boolean" @@ -1516,7 +1532,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1547,7 +1563,7 @@ "type": "string" }, "name": { - "description": "The export name.", + "description": "The export name. Don't use special characters (~!$'(),;@:/?) in the name, they can prevent you from downloading exports.", "type": "string" }, "query": { @@ -1697,8 +1713,8 @@ ], "enumDescriptions": [ "No export format specified.", - "Export as MBOX.", - "Export as PST." + "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." ], "type": "string" } @@ -1718,8 +1734,8 @@ ], "enumDescriptions": [ "No export format specified.", - "Export as MBOX.", - "Export as PST." + "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." ], "type": "string" } @@ -1915,7 +1931,7 @@ "Drive, including Meet and Sites.", "For search, Gmail and classic Hangouts. For holds, Gmail only.", "Groups.", - "For search, Google Chat only. For holds, Google Chat and classic Hangouts.", + "For export, Google Chat only. For holds, Google Chat and classic Hangouts.", "Google Voice." ], "type": "string" @@ -2099,8 +2115,8 @@ ], "enumDescriptions": [ "No export format specified.", - "Export as MBOX.", - "Export as PST." + "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." ], "type": "string" }, @@ -2262,7 +2278,7 @@ "Drive, including Meet and Sites.", "For search, Gmail and classic Hangouts. For holds, Gmail only.", "Groups.", - "For search, Google Chat only. For holds, Google Chat and classic Hangouts.", + "For export, Google Chat only. For holds, Google Chat and classic Hangouts.", "Google Voice." ], "type": "string" @@ -2313,6 +2329,7 @@ "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", + "SITES_URL", "SHARED_DRIVE" ], "enumDescriptions": [ @@ -2322,6 +2339,7 @@ "Search the data in the Team Drive specified in **team_drive_info**.", "Search the data of all accounts in the organization. Supported only for Gmail. When specified, you don't need to specify **AccountInfo** or **OrgUnitInfo**.", "Search messages in the Chat spaces specified in [HangoutsChatInfo](https://developers.google.com/vault/reference/rest/v1/Query#hangoutschatinfo).", + "Search for sites by the published site URLs specified in [SitesUrlInfo](https://developers.google.com/vault/reference/rest/v1/Query#sitesurlinfo).", "Search the files in the shared drives specified in [SharedDriveInfo](https://developers.google.com/vault/reference/rest/v1/Query#shareddriveinfo)." ], "type": "string" @@ -2339,6 +2357,7 @@ "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", + "SITES_URL", "SHARED_DRIVE" ], "enumDescriptions": [ @@ -2348,6 +2367,7 @@ "Search the data in the Team Drive specified in **team_drive_info**.", "Search the data of all accounts in the organization. Supported only for Gmail. When specified, you don't need to specify **AccountInfo** or **OrgUnitInfo**.", "Search messages in the Chat spaces specified in [HangoutsChatInfo](https://developers.google.com/vault/reference/rest/v1/Query#hangoutschatinfo).", + "Search for sites by the published site URLs specified in [SitesUrlInfo](https://developers.google.com/vault/reference/rest/v1/Query#sitesurlinfo).", "Search the files in the shared drives specified in [SharedDriveInfo](https://developers.google.com/vault/reference/rest/v1/Query#shareddriveinfo)." ], "type": "string" @@ -2356,6 +2376,10 @@ "$ref": "SharedDriveInfo", "description": "Required when **SearchMethod** is **SHARED_DRIVE**." }, + "sitesUrlInfo": { + "$ref": "SitesUrlInfo", + "description": "Required when **SearchMethod** is **SITES_URL**." + }, "startTime": { "description": "The start time for the search query. Specify in GMT. The value is rounded to 12 AM on the specified date.", "format": "google-datetime", @@ -2478,6 +2502,20 @@ }, "type": "object" }, + "SitesUrlInfo": { + "description": "The published site URLs of new Google Sites to search", + "id": "SitesUrlInfo", + "properties": { + "urls": { + "description": "A list of published site URLs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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", @@ -2553,8 +2591,8 @@ ], "enumDescriptions": [ "No export format specified.", - "Export as MBOX.", - "Export as PST." + "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." ], "type": "string" } diff --git a/etc/api/verifiedaccess/v1/verifiedaccess-api.json b/etc/api/verifiedaccess/v1/verifiedaccess-api.json index b29d44c08e..9e8b876597 100644 --- a/etc/api/verifiedaccess/v1/verifiedaccess-api.json +++ b/etc/api/verifiedaccess/v1/verifiedaccess-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20220215", + "revision": "20230117", "rootUrl": "https://verifiedaccess.googleapis.com/", "schemas": { "Challenge": { @@ -165,7 +165,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/versionhistory/v1/versionhistory-api.json b/etc/api/versionhistory/v1/versionhistory-api.json index bc2a99732d..8ae2d34675 100644 --- a/etc/api/versionhistory/v1/versionhistory-api.json +++ b/etc/api/versionhistory/v1/versionhistory-api.json @@ -271,7 +271,7 @@ } } }, - "revision": "20220307", + "revision": "20230123", "rootUrl": "https://versionhistory.googleapis.com/", "schemas": { "Channel": { @@ -421,7 +421,9 @@ "MAC_ARM64", "LACROS", "LACROS_ARM32", - "CHROMEOS" + "CHROMEOS", + "LACROS_ARM64", + "FUCHSIA" ], "enumDescriptions": [ "", @@ -436,6 +438,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -452,6 +456,11 @@ "format": "double", "type": "number" }, + "fractionGroup": { + "description": "Rollout fraction group. Only fractions with the same fraction_group are statistically comparable: there may be non-fractional differences between different fraction groups.", + "format": "int64", + "type": "string" + }, "name": { "description": "Release name. Format is \"{product}/platforms/{platform}/channels/{channel}/versions/{version}/releases/{release}\"", "type": "string" @@ -484,7 +493,7 @@ } }, "servicePath": "", - "title": "Version History API", + "title": "versionhistory.googleapis.com API", "version": "v1", "version_module": true } \ No newline at end of file diff --git a/etc/api/videointelligence/v1/videointelligence-api.json b/etc/api/videointelligence/v1/videointelligence-api.json index 4931b0f55a..200db499cf 100644 --- a/etc/api/videointelligence/v1/videointelligence-api.json +++ b/etc/api/videointelligence/v1/videointelligence-api.json @@ -350,7 +350,7 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { @@ -4972,7 +4972,7 @@ "type": "object" }, "GoogleProtobuf_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); } 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": "GoogleProtobuf_Empty", "properties": {}, "type": "object" diff --git a/etc/api/videointelligence/v1beta2/videointelligence-api.json b/etc/api/videointelligence/v1beta2/videointelligence-api.json index b6d7516a74..5aeb6f73b4 100644 --- a/etc/api/videointelligence/v1beta2/videointelligence-api.json +++ b/etc/api/videointelligence/v1beta2/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p1beta1/videointelligence-api.json b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json index 6da226242f..cd68bdc9b3 100644 --- a/etc/api/videointelligence/v1p1beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p2beta1/videointelligence-api.json b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json index 9f99987ff8..103c4b8216 100644 --- a/etc/api/videointelligence/v1p2beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p3beta1/videointelligence-api.json b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json index 5c7e2a8c76..ac08b21daf 100644 --- a/etc/api/videointelligence/v1p3beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/vision/v1/vision-api.json b/etc/api/vision/v1/vision-api.json index 9c917169dc..4f087a1931 100644 --- a/etc/api/vision/v1/vision-api.json +++ b/etc/api/vision/v1/vision-api.json @@ -1282,7 +1282,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AddProductToProductSetRequest": { @@ -1891,7 +1891,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2145,7 +2145,7 @@ "type": "integer" }, "model": { - "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", + "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also support \"builtin/weekly\" for the bleeding edge release updated weekly.", "type": "string" }, "type": { @@ -9147,6 +9147,13 @@ "description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", "id": "TextDetectionParams", "properties": { + "advancedOcrOptions": { + "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "items": { + "type": "string" + }, + "type": "array" + }, "enableTextDetectionConfidenceScore": { "description": "By default, Cloud Vision API only includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence score for TEXT_DETECTION as well.", "type": "boolean" diff --git a/etc/api/vision/v1p1beta1/vision-api.json b/etc/api/vision/v1p1beta1/vision-api.json index af6a9e8efb..f1690b91d6 100644 --- a/etc/api/vision/v1p1beta1/vision-api.json +++ b/etc/api/vision/v1p1beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { @@ -1928,7 +1928,7 @@ "type": "integer" }, "model": { - "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", + "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also support \"builtin/weekly\" for the bleeding edge release updated weekly.", "type": "string" }, "type": { @@ -2710,6 +2710,13 @@ "description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", "id": "GoogleCloudVisionV1p1beta1TextDetectionParams", "properties": { + "advancedOcrOptions": { + "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "items": { + "type": "string" + }, + "type": "array" + }, "enableTextDetectionConfidenceScore": { "description": "By default, Cloud Vision API only includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence score for TEXT_DETECTION as well.", "type": "boolean" diff --git a/etc/api/vision/v1p2beta1/vision-api.json b/etc/api/vision/v1p2beta1/vision-api.json index cb33fcdea4..296409f9b8 100644 --- a/etc/api/vision/v1p2beta1/vision-api.json +++ b/etc/api/vision/v1p2beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20220225", + "revision": "20230113", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { @@ -3341,7 +3341,7 @@ "type": "integer" }, "model": { - "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", + "description": "Model to use for the feature. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\". `DOCUMENT_TEXT_DETECTION` and `TEXT_DETECTION` also support \"builtin/weekly\" for the bleeding edge release updated weekly.", "type": "string" }, "type": { @@ -4123,6 +4123,13 @@ "description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", "id": "GoogleCloudVisionV1p2beta1TextDetectionParams", "properties": { + "advancedOcrOptions": { + "description": "A list of advanced OCR options to fine-tune OCR behavior.", + "items": { + "type": "string" + }, + "type": "array" + }, "enableTextDetectionConfidenceScore": { "description": "By default, Cloud Vision API only includes confidence score for DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence score for TEXT_DETECTION as well.", "type": "boolean" diff --git a/etc/api/vmmigration/v1/vmmigration-api.json b/etc/api/vmmigration/v1/vmmigration-api.json index c292a7db7c..ba482e1948 100644 --- a/etc/api/vmmigration/v1/vmmigration-api.json +++ b/etc/api/vmmigration/v1/vmmigration-api.json @@ -12,9 +12,9 @@ "baseUrl": "https://vmmigration.googleapis.com/", "batchPath": "batch", "canonicalName": "VM Migration Service", - "description": "Use the Migrate for Compute Engine API to programmatically migrate workloads. ", + "description": "Use the Migrate to Virtual Machines API to programmatically migrate workloads. ", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com/migrate/compute-engine", + "documentationLink": "https://cloud.google.com/migrate/virtual-machines", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -622,6 +622,17 @@ "location": "query", "type": "boolean" }, + "pageSize": { + "description": "The maximum number of VMs to return. The service may return fewer than this value. For AWS source: If unspecified, at most 500 VMs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. For VMWare source: If unspecified, all VMs will be returned. There is no limit for maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `FetchInventory` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `FetchInventory` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, "source": { "description": "Required. The name of the Source.", "location": "path", @@ -1521,6 +1532,81 @@ ] } } + }, + "replicationCycles": { + "methods": { + "get": { + "description": "Gets details of a single ReplicationCycle.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/replicationCycles/{replicationCyclesId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.sources.migratingVms.replicationCycles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the ReplicationCycle.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/migratingVms/[^/]+/replicationCycles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ReplicationCycle" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ReplicationCycles in a given MigratingVM.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/replicationCycles", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.sources.migratingVms.replicationCycles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. the order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of replication cycles to return. The service may return fewer than this value. If unspecified, at most 100 migrating VMs will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Required. A page token, received from a previous `ListReplicationCycles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReplicationCycles` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of ReplicationCycles.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/migratingVms/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/replicationCycles", + "response": { + "$ref": "ListReplicationCyclesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -1886,9 +1972,30 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { + "AccessKeyCredentials": { + "description": "Message describing AWS Credentials using access key id and secret.", + "id": "AccessKeyCredentials", + "properties": { + "accessKeyId": { + "description": "AWS access key ID.", + "type": "string" + }, + "secretAccessKey": { + "description": "Input only. AWS secret access key.", + "type": "string" + } + }, + "type": "object" + }, + "AdaptingOSStep": { + "description": "AdaptingOSStep contains specific step details.", + "id": "AdaptingOSStep", + "properties": {}, + "type": "object" + }, "AddGroupMigrationRequest": { "description": "Request message for 'AddGroupMigration' request.", "id": "AddGroupMigrationRequest", @@ -1943,7 +2050,7 @@ "Unspecified license for the OS.", "No license available for the OS.", "The license type is Pay As You Go license type.", - "The license type is is Bring Your Own License type." + "The license type is Bring Your Own License type." ], "type": "string" } @@ -1965,6 +2072,262 @@ }, "type": "object" }, + "AwsSecurityGroup": { + "description": "AwsSecurityGroup describes a security group of an AWS VM.", + "id": "AwsSecurityGroup", + "properties": { + "id": { + "description": "The AWS security group id.", + "type": "string" + }, + "name": { + "description": "The AWS security group name.", + "type": "string" + } + }, + "type": "object" + }, + "AwsSourceDetails": { + "description": "AwsSourceDetails message describes a specific source details for the AWS source type.", + "id": "AwsSourceDetails", + "properties": { + "accessKeyCreds": { + "$ref": "AccessKeyCredentials", + "description": "AWS Credentials using access key id and secret." + }, + "awsRegion": { + "description": "Immutable. The AWS region that the source VMs will be migrated from.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "Output only. Provides details on the state of the Source in case of an error.", + "readOnly": true + }, + "inventorySecurityGroupNames": { + "description": "AWS security group names to limit the scope of the source inventory.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inventoryTagList": { + "description": "AWS resource tags to limit the scope of the source inventory.", + "items": { + "$ref": "Tag" + }, + "type": "array" + }, + "migrationResourcesUserTags": { + "additionalProperties": { + "type": "string" + }, + "description": "User specified tags to add to every M2VM generated resource in AWS. 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 `m2vm`.", + "type": "object" + }, + "publicIp": { + "description": "Output only. The source's public IP. All communication initiated by this source will originate from this IP.", + "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" + } + }, + "type": "object" + }, + "AwsSourceVmDetails": { + "description": "Represent the source AWS VM details.", + "id": "AwsSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "AwsVmDetails": { + "description": "AwsVmDetails describes a VM in AWS.", + "id": "AwsVmDetails", + "properties": { + "architecture": { + "description": "The CPU architecture.", + "enum": [ + "VM_ARCHITECTURE_UNSPECIFIED", + "I386", + "X86_64", + "ARM64", + "X86_64_MAC" + ], + "enumDescriptions": [ + "The architecture is unknown.", + "The architecture is I386.", + "The architecture is X86_64.", + "The architecture is ARM64.", + "The architecture is X86_64_MAC." + ], + "type": "string" + }, + "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 LEGACY-BIOS." + ], + "type": "string" + }, + "committedStorageMb": { + "description": "The total size of the storage allocated to the VM in MB.", + "format": "int64", + "type": "string" + }, + "cpuCount": { + "description": "The number of cpus the VM has.", + "format": "int32", + "type": "integer" + }, + "diskCount": { + "description": "The number of disks the VM has.", + "format": "int32", + "type": "integer" + }, + "displayName": { + "description": "The display name of the VM. Note that this value is not necessarily unique.", + "type": "string" + }, + "instanceType": { + "description": "The instance type of the VM.", + "type": "string" + }, + "memoryMb": { + "description": "The memory size of the VM in MB.", + "format": "int32", + "type": "integer" + }, + "osDescription": { + "description": "The VM's OS.", + "type": "string" + }, + "powerState": { + "description": "Output only. The power state of the VM at the moment list was taken.", + "enum": [ + "POWER_STATE_UNSPECIFIED", + "ON", + "OFF", + "SUSPENDED", + "PENDING" + ], + "enumDescriptions": [ + "Power state is not specified.", + "The VM is turned on.", + "The VM is turned off.", + "The VM is suspended. This is similar to hibernation or sleep mode.", + "The VM is starting." + ], + "readOnly": true, + "type": "string" + }, + "securityGroups": { + "description": "The security groups the VM belongs to.", + "items": { + "$ref": "AwsSecurityGroup" + }, + "type": "array" + }, + "sourceDescription": { + "description": "The descriptive name of the AWS's source this VM is connected to.", + "type": "string" + }, + "sourceId": { + "description": "The id of the AWS's source this VM is connected to.", + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the VM.", + "type": "object" + }, + "virtualizationType": { + "description": "The virtualization type.", + "enum": [ + "VM_VIRTUALIZATION_TYPE_UNSPECIFIED", + "HVM", + "PARAVIRTUAL" + ], + "enumDescriptions": [ + "The virtualization type is unknown.", + "The virtualziation type is HVM.", + "The virtualziation type is PARAVIRTUAL." + ], + "type": "string" + }, + "vmId": { + "description": "The VM ID in AWS.", + "type": "string" + }, + "vpcId": { + "description": "The VPC ID the VM belongs to.", + "type": "string" + }, + "zone": { + "description": "The AWS zone of the VM.", + "type": "string" + } + }, + "type": "object" + }, + "AwsVmsDetails": { + "description": "AWSVmsDetails describes VMs in AWS.", + "id": "AwsVmsDetails", + "properties": { + "details": { + "description": "The details of the AWS VMs.", + "items": { + "$ref": "AwsVmDetails" + }, + "type": "array" + } + }, + "type": "object" + }, "CancelCloneJobRequest": { "description": "Request message for 'CancelCloneJob' request.", "id": "CancelCloneJobRequest", @@ -1998,6 +2361,12 @@ "readOnly": true, "type": "string" }, + "endTime": { + "description": "Output only. The time the clone job was ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "error": { "$ref": "Status", "description": "Output only. Provides details for the errors that led to the Clone Job's state.", @@ -2038,6 +2407,43 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "steps": { + "description": "Output only. The clone steps list representing its progress.", + "items": { + "$ref": "CloneStep" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "CloneStep": { + "description": "CloneStep holds information about the clone step progress.", + "id": "CloneStep", + "properties": { + "adaptingOs": { + "$ref": "AdaptingOSStep", + "description": "Adapting OS step." + }, + "endTime": { + "description": "The time the step has ended.", + "format": "google-datetime", + "type": "string" + }, + "instantiatingMigratedVm": { + "$ref": "InstantiatingMigratedVMStep", + "description": "Instantiating migrated VM step." + }, + "preparingVmDisks": { + "$ref": "PreparingVMDisksStep", + "description": "Preparing VM disks step." + }, + "startTime": { + "description": "The time the step has started.", + "format": "google-datetime", + "type": "string" } }, "type": "object" @@ -2093,6 +2499,10 @@ ], "type": "string" }, + "hostname": { + "description": "The hostname to assign to the VM.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2215,6 +2625,10 @@ ], "type": "string" }, + "hostname": { + "description": "The hostname to assign to the VM.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2266,7 +2680,7 @@ "type": "array" }, "project": { - "description": "The GCP target project ID or project name.", + "description": "The Google Cloud target project ID or project name.", "type": "string" }, "secureBoot": { @@ -2350,6 +2764,12 @@ "readOnly": true, "type": "string" }, + "endTime": { + "description": "Output only. The time the cutover job had finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "error": { "$ref": "Status", "description": "Output only. Provides details for the errors that led to the Cutover Job's state.", @@ -2401,12 +2821,86 @@ "format": "google-datetime", "readOnly": true, "type": "string" + }, + "steps": { + "description": "Output only. The cutover steps list representing its progress.", + "items": { + "$ref": "CutoverStep" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "CutoverStep": { + "description": "CutoverStep holds information about the cutover step progress.", + "id": "CutoverStep", + "properties": { + "endTime": { + "description": "The time the step has ended.", + "format": "google-datetime", + "type": "string" + }, + "finalSync": { + "$ref": "ReplicationCycle", + "description": "Final sync step." + }, + "instantiatingMigratedVm": { + "$ref": "InstantiatingMigratedVMStep", + "description": "Instantiating migrated VM step." + }, + "preparingVmDisks": { + "$ref": "PreparingVMDisksStep", + "description": "Preparing VM disks step." + }, + "previousReplicationCycle": { + "$ref": "ReplicationCycle", + "description": "A replication cycle prior cutover step." + }, + "shuttingDownSourceVm": { + "$ref": "ShuttingDownSourceVMStep", + "description": "Shutting down VM step." + }, + "startTime": { + "description": "The time the step has started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CycleStep": { + "description": "CycleStep holds information about a step progress.", + "id": "CycleStep", + "properties": { + "endTime": { + "description": "The time the cycle step has ended.", + "format": "google-datetime", + "type": "string" + }, + "initializingReplication": { + "$ref": "InitializingReplicationStep", + "description": "Initializing replication step." + }, + "postProcessing": { + "$ref": "PostProcessingStep", + "description": "Post processing step." + }, + "replicating": { + "$ref": "ReplicatingStep", + "description": "Replicating step." + }, + "startTime": { + "description": "The time the cycle step has started.", + "format": "google-datetime", + "type": "string" } }, "type": "object" }, "DatacenterConnector": { - "description": "DatacenterConnector message describes a connector between the Source and GCP, which is installed on a vmware datacenter (an OVA vm installed by the user) to connect the Datacenter to GCP and support vm migration data transfer.", + "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", "properties": { "applianceInfrastructureVersion": { @@ -2425,7 +2919,7 @@ "readOnly": true }, "bucket": { - "description": "Output only. The communication channel between the datacenter connector and GCP.", + "description": "Output only. The communication channel between the datacenter connector and Google Cloud.", "readOnly": true, "type": "string" }, @@ -2497,7 +2991,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2506,6 +3000,15 @@ "description": "Response message for fetchInventory.", "id": "FetchInventoryResponse", "properties": { + "awsVms": { + "$ref": "AwsVmsDetails", + "description": "The description of the VMs in a Source of type AWS." + }, + "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" + }, "updateTime": { "description": "Output only. The timestamp when the source was last queried (if the result is from the cache).", "format": "google-datetime", @@ -2557,6 +3060,18 @@ }, "type": "object" }, + "InitializingReplicationStep": { + "description": "InitializingReplicationStep contains specific step details.", + "id": "InitializingReplicationStep", + "properties": {}, + "type": "object" + }, + "InstantiatingMigratedVMStep": { + "description": "InstantiatingMigratedVMStep contains specific step details.", + "id": "InstantiatingMigratedVMStep", + "properties": {}, + "type": "object" + }, "Link": { "description": "Describes a URL link.", "id": "Link", @@ -2748,6 +3263,34 @@ }, "type": "object" }, + "ListReplicationCyclesResponse": { + "description": "Response message for 'ListReplicationCycles' request.", + "id": "ListReplicationCyclesResponse", + "properties": { + "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" + }, + "replicationCycles": { + "description": "Output only. The list of replication cycles response.", + "items": { + "$ref": "ReplicationCycle" + }, + "readOnly": true, + "type": "array" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListSourcesResponse": { "description": "Response message for 'ListSources' request.", "id": "ListSourcesResponse", @@ -2837,7 +3380,7 @@ "id": "LocalizedMessage", "properties": { "locale": { - "description": "The locale used following the specification defined at http://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", "type": "string" }, "message": { @@ -2885,6 +3428,11 @@ "description": "MigratingVm describes the VM that will be migrated from a Source environment and its replication state.", "id": "MigratingVm", "properties": { + "awsSourceVmDetails": { + "$ref": "AwsSourceVmDetails", + "description": "Output only. Details of the VM from an AWS source.", + "readOnly": true + }, "computeEngineTargetDefaults": { "$ref": "ComputeEngineTargetDefaults", "description": "Details of the target VM in Compute Engine." @@ -2897,7 +3445,7 @@ }, "currentSyncInfo": { "$ref": "ReplicationCycle", - "description": "Output only. The percentage progress of the current running replication cycle.", + "description": "Output only. Details of the current running replication cycle.", "readOnly": true }, "description": { @@ -3175,6 +3723,18 @@ "properties": {}, "type": "object" }, + "PostProcessingStep": { + "description": "PostProcessingStep contains specific step details.", + "id": "PostProcessingStep", + "properties": {}, + "type": "object" + }, + "PreparingVMDisksStep": { + "description": "PreparingVMDisksStep contains specific step details.", + "id": "PreparingVMDisksStep", + "properties": {}, + "type": "object" + }, "RemoveGroupMigrationRequest": { "description": "Request message for 'RemoveMigration' request.", "id": "RemoveGroupMigrationRequest", @@ -3186,12 +3746,57 @@ }, "type": "object" }, + "ReplicatingStep": { + "description": "ReplicatingStep contains specific step details.", + "id": "ReplicatingStep", + "properties": { + "lastThirtyMinutesAverageBytesPerSecond": { + "description": "The source disks replication rate for the last 30 minutes in bytes per second.", + "format": "int64", + "type": "string" + }, + "lastTwoMinutesAverageBytesPerSecond": { + "description": "The source disks replication rate for the last 2 minutes in bytes per second.", + "format": "int64", + "type": "string" + }, + "replicatedBytes": { + "description": "Replicated bytes in the step.", + "format": "int64", + "type": "string" + }, + "totalBytes": { + "description": "Total bytes to be handled in the step.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ReplicationCycle": { "description": "ReplicationCycle contains information about the current replication cycle status.", "id": "ReplicationCycle", "properties": { + "cycleNumber": { + "description": "The cycle's ordinal number.", + "format": "int32", + "type": "integer" + }, + "endTime": { + "description": "The time the replication cycle has ended.", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "Provides details on the state of the cycle in case of an error." + }, + "name": { + "description": "The identifier of the ReplicationCycle.", + "type": "string" + }, "progressPercent": { - "description": "The current progress in percentage of this cycle.", + "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" }, @@ -3199,6 +3804,36 @@ "description": "The time the replication cycle has started.", "format": "google-datetime", "type": "string" + }, + "state": { + "description": "State of the ReplicationCycle.", + "enum": [ + "STATE_UNSPECIFIED", + "RUNNING", + "PAUSED", + "FAILED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The state is unknown. This is used for API compatibility only and is not used by the system.", + "The replication cycle is running.", + "The replication cycle is paused.", + "The replication cycle finished with errors.", + "The replication cycle finished successfully." + ], + "type": "string" + }, + "steps": { + "description": "The cycle's steps list representing its progress.", + "items": { + "$ref": "CycleStep" + }, + "type": "array" + }, + "totalPauseDuration": { + "description": "The accumulated duration the replication cycle was paused.", + "format": "google-duration", + "type": "string" } }, "type": "object" @@ -3269,10 +3904,20 @@ }, "type": "object" }, + "ShuttingDownSourceVMStep": { + "description": "ShuttingDownSourceVMStep contains specific step details.", + "id": "ShuttingDownSourceVMStep", + "properties": {}, + "type": "object" + }, "Source": { "description": "Source message describes a specific vm migration Source resource. It contains the source environment information.", "id": "Source", "properties": { + "aws": { + "$ref": "AwsSourceDetails", + "description": "AWS type source details." + }, "createTime": { "description": "Output only. The create time timestamp.", "format": "google-datetime", @@ -3341,6 +3986,21 @@ }, "type": "object" }, + "Tag": { + "description": "Tag is an AWS tag representation.", + "id": "Tag", + "properties": { + "key": { + "description": "Key of tag.", + "type": "string" + }, + "value": { + "description": "Value of tag.", + "type": "string" + } + }, + "type": "object" + }, "TargetProject": { "description": "TargetProject message represents a target Compute Engine project for a migration or a clone.", "id": "TargetProject", diff --git a/etc/api/vmmigration/v1alpha1/vmmigration-api.json b/etc/api/vmmigration/v1alpha1/vmmigration-api.json index f03abbd93f..4d9200905b 100644 --- a/etc/api/vmmigration/v1alpha1/vmmigration-api.json +++ b/etc/api/vmmigration/v1alpha1/vmmigration-api.json @@ -12,9 +12,9 @@ "baseUrl": "https://vmmigration.googleapis.com/", "batchPath": "batch", "canonicalName": "VM Migration Service", - "description": "Use the Migrate for Compute Engine API to programmatically migrate workloads. ", + "description": "Use the Migrate to Virtual Machines API to programmatically migrate workloads. ", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com/migrate/compute-engine", + "documentationLink": "https://cloud.google.com/migrate/virtual-machines", "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -622,6 +622,17 @@ "location": "query", "type": "boolean" }, + "pageSize": { + "description": "The maximum number of VMs to return. The service may return fewer than this value. For AWS source: If unspecified, at most 500 VMs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000. For VMWare source: If unspecified, all VMs will be returned. There is no limit for maximum value.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `FetchInventory` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `FetchInventory` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, "source": { "description": "Required. The name of the Source.", "location": "path", @@ -1521,6 +1532,81 @@ ] } } + }, + "replicationCycles": { + "methods": { + "get": { + "description": "Gets details of a single ReplicationCycle.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/replicationCycles/{replicationCyclesId}", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.sources.migratingVms.replicationCycles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the ReplicationCycle.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/migratingVms/[^/]+/replicationCycles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+name}", + "response": { + "$ref": "ReplicationCycle" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists ReplicationCycles in a given MigratingVM.", + "flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/replicationCycles", + "httpMethod": "GET", + "id": "vmmigration.projects.locations.sources.migratingVms.replicationCycles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. the order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of replication cycles to return. The service may return fewer than this value. If unspecified, at most 100 migrating VMs will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Required. A page token, received from a previous `ListReplicationCycles` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReplicationCycles` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of ReplicationCycles.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/sources/[^/]+/migratingVms/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha1/{+parent}/replicationCycles", + "response": { + "$ref": "ListReplicationCyclesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -1886,9 +1972,30 @@ } } }, - "revision": "20220225", + "revision": "20230119", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { + "AccessKeyCredentials": { + "description": "Message describing AWS Credentials using access key id and secret.", + "id": "AccessKeyCredentials", + "properties": { + "accessKeyId": { + "description": "AWS access key ID.", + "type": "string" + }, + "secretAccessKey": { + "description": "Input only. AWS secret access key.", + "type": "string" + } + }, + "type": "object" + }, + "AdaptingOSStep": { + "description": "AdaptingOSStep contains specific step details.", + "id": "AdaptingOSStep", + "properties": {}, + "type": "object" + }, "AddGroupMigrationRequest": { "description": "Request message for 'AddGroupMigration' request.", "id": "AddGroupMigrationRequest", @@ -1943,7 +2050,7 @@ "Unspecified license for the OS.", "No license available for the OS.", "The license type is Pay As You Go license type.", - "The license type is is Bring Your Own License type." + "The license type is Bring Your Own License type." ], "type": "string" } @@ -1965,6 +2072,262 @@ }, "type": "object" }, + "AwsSecurityGroup": { + "description": "AwsSecurityGroup describes a security group of an AWS VM.", + "id": "AwsSecurityGroup", + "properties": { + "id": { + "description": "The AWS security group id.", + "type": "string" + }, + "name": { + "description": "The AWS security group name.", + "type": "string" + } + }, + "type": "object" + }, + "AwsSourceDetails": { + "description": "AwsSourceDetails message describes a specific source details for the AWS source type.", + "id": "AwsSourceDetails", + "properties": { + "accessKeyCreds": { + "$ref": "AccessKeyCredentials", + "description": "AWS Credentials using access key id and secret." + }, + "awsRegion": { + "description": "Immutable. The AWS region that the source VMs will be migrated from.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "Output only. Provides details on the state of the Source in case of an error.", + "readOnly": true + }, + "inventorySecurityGroupNames": { + "description": "AWS security group names to limit the scope of the source inventory.", + "items": { + "type": "string" + }, + "type": "array" + }, + "inventoryTagList": { + "description": "AWS resource tags to limit the scope of the source inventory.", + "items": { + "$ref": "Tag" + }, + "type": "array" + }, + "migrationResourcesUserTags": { + "additionalProperties": { + "type": "string" + }, + "description": "User specified tags to add to every M2VM generated resource in AWS. 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 `m2vm`.", + "type": "object" + }, + "publicIp": { + "description": "Output only. The source's public IP. All communication initiated by this source will originate from this IP.", + "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" + } + }, + "type": "object" + }, + "AwsSourceVmDetails": { + "description": "Represent the source AWS VM details.", + "id": "AwsSourceVmDetails", + "properties": { + "committedStorageBytes": { + "description": "The total size of the disks being migrated in bytes.", + "format": "int64", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "AwsVmDetails": { + "description": "AwsVmDetails describes a VM in AWS.", + "id": "AwsVmDetails", + "properties": { + "architecture": { + "description": "The CPU architecture.", + "enum": [ + "VM_ARCHITECTURE_UNSPECIFIED", + "I386", + "X86_64", + "ARM64", + "X86_64_MAC" + ], + "enumDescriptions": [ + "The architecture is unknown.", + "The architecture is I386.", + "The architecture is X86_64.", + "The architecture is ARM64.", + "The architecture is X86_64_MAC." + ], + "type": "string" + }, + "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 LEGACY-BIOS." + ], + "type": "string" + }, + "committedStorageMb": { + "description": "The total size of the storage allocated to the VM in MB.", + "format": "int64", + "type": "string" + }, + "cpuCount": { + "description": "The number of cpus the VM has.", + "format": "int32", + "type": "integer" + }, + "diskCount": { + "description": "The number of disks the VM has.", + "format": "int32", + "type": "integer" + }, + "displayName": { + "description": "The display name of the VM. Note that this value is not necessarily unique.", + "type": "string" + }, + "instanceType": { + "description": "The instance type of the VM.", + "type": "string" + }, + "memoryMb": { + "description": "The memory size of the VM in MB.", + "format": "int32", + "type": "integer" + }, + "osDescription": { + "description": "The VM's OS.", + "type": "string" + }, + "powerState": { + "description": "Output only. The power state of the VM at the moment list was taken.", + "enum": [ + "POWER_STATE_UNSPECIFIED", + "ON", + "OFF", + "SUSPENDED", + "PENDING" + ], + "enumDescriptions": [ + "Power state is not specified.", + "The VM is turned on.", + "The VM is turned off.", + "The VM is suspended. This is similar to hibernation or sleep mode.", + "The VM is starting." + ], + "readOnly": true, + "type": "string" + }, + "securityGroups": { + "description": "The security groups the VM belongs to.", + "items": { + "$ref": "AwsSecurityGroup" + }, + "type": "array" + }, + "sourceDescription": { + "description": "The descriptive name of the AWS's source this VM is connected to.", + "type": "string" + }, + "sourceId": { + "description": "The id of the AWS's source this VM is connected to.", + "type": "string" + }, + "tags": { + "additionalProperties": { + "type": "string" + }, + "description": "The tags of the VM.", + "type": "object" + }, + "virtualizationType": { + "description": "The virtualization type.", + "enum": [ + "VM_VIRTUALIZATION_TYPE_UNSPECIFIED", + "HVM", + "PARAVIRTUAL" + ], + "enumDescriptions": [ + "The virtualization type is unknown.", + "The virtualziation type is HVM.", + "The virtualziation type is PARAVIRTUAL." + ], + "type": "string" + }, + "vmId": { + "description": "The VM ID in AWS.", + "type": "string" + }, + "vpcId": { + "description": "The VPC ID the VM belongs to.", + "type": "string" + }, + "zone": { + "description": "The AWS zone of the VM.", + "type": "string" + } + }, + "type": "object" + }, + "AwsVmsDetails": { + "description": "AWSVmsDetails describes VMs in AWS.", + "id": "AwsVmsDetails", + "properties": { + "details": { + "description": "The details of the AWS VMs.", + "items": { + "$ref": "AwsVmDetails" + }, + "type": "array" + } + }, + "type": "object" + }, "CancelCloneJobRequest": { "description": "Request message for 'CancelCloneJob' request.", "id": "CancelCloneJobRequest", @@ -2003,6 +2366,12 @@ "readOnly": true, "type": "string" }, + "endTime": { + "description": "Output only. The time the clone job was ended.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "error": { "$ref": "Status", "description": "Output only. Provides details for the errors that led to the Clone Job's state.", @@ -2044,6 +2413,14 @@ "readOnly": true, "type": "string" }, + "steps": { + "description": "Output only. The clone steps list representing its progress.", + "items": { + "$ref": "CloneStep" + }, + "readOnly": true, + "type": "array" + }, "targetDetails": { "$ref": "TargetVMDetails", "description": "Output only. Details of the VM to create as the target of this clone job. Deprecated: Use compute_engine_target_details instead.", @@ -2052,6 +2429,35 @@ }, "type": "object" }, + "CloneStep": { + "description": "CloneStep holds information about the clone step progress.", + "id": "CloneStep", + "properties": { + "adaptingOs": { + "$ref": "AdaptingOSStep", + "description": "Adapting OS step." + }, + "endTime": { + "description": "The time the step has ended.", + "format": "google-datetime", + "type": "string" + }, + "instantiatingMigratedVm": { + "$ref": "InstantiatingMigratedVMStep", + "description": "Instantiating migrated VM step." + }, + "preparingVmDisks": { + "$ref": "PreparingVMDisksStep", + "description": "Preparing VM disks step." + }, + "startTime": { + "description": "The time the step has started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "ComputeEngineTargetDefaults": { "description": "ComputeEngineTargetDefaults is a collection of details for creating a VM in a target Compute Engine project.", "id": "ComputeEngineTargetDefaults", @@ -2103,6 +2509,10 @@ ], "type": "string" }, + "hostname": { + "description": "The hostname to assign to the VM.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2225,6 +2635,10 @@ ], "type": "string" }, + "hostname": { + "description": "The hostname to assign to the VM.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2276,7 +2690,7 @@ "type": "array" }, "project": { - "description": "The GCP target project ID or project name.", + "description": "The Google Cloud target project ID or project name.", "type": "string" }, "secureBoot": { @@ -2368,6 +2782,12 @@ "readOnly": true, "type": "string" }, + "endTime": { + "description": "Output only. The time the cutover job had finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "error": { "$ref": "Status", "description": "Output only. Provides details for the errors that led to the Cutover Job's state.", @@ -2426,6 +2846,14 @@ "readOnly": true, "type": "string" }, + "steps": { + "description": "Output only. The cutover steps list representing its progress.", + "items": { + "$ref": "CutoverStep" + }, + "readOnly": true, + "type": "array" + }, "targetDetails": { "$ref": "TargetVMDetails", "description": "Output only. Details of the VM to create as the target of this cutover job. Deprecated: Use compute_engine_target_details instead.", @@ -2434,8 +2862,74 @@ }, "type": "object" }, + "CutoverStep": { + "description": "CutoverStep holds information about the cutover step progress.", + "id": "CutoverStep", + "properties": { + "endTime": { + "description": "The time the step has ended.", + "format": "google-datetime", + "type": "string" + }, + "finalSync": { + "$ref": "ReplicationCycle", + "description": "Final sync step." + }, + "instantiatingMigratedVm": { + "$ref": "InstantiatingMigratedVMStep", + "description": "Instantiating migrated VM step." + }, + "preparingVmDisks": { + "$ref": "PreparingVMDisksStep", + "description": "Preparing VM disks step." + }, + "previousReplicationCycle": { + "$ref": "ReplicationCycle", + "description": "A replication cycle prior cutover step." + }, + "shuttingDownSourceVm": { + "$ref": "ShuttingDownSourceVMStep", + "description": "Shutting down VM step." + }, + "startTime": { + "description": "The time the step has started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CycleStep": { + "description": "CycleStep holds information about a step progress.", + "id": "CycleStep", + "properties": { + "endTime": { + "description": "The time the cycle step has ended.", + "format": "google-datetime", + "type": "string" + }, + "initializingReplication": { + "$ref": "InitializingReplicationStep", + "description": "Initializing replication step." + }, + "postProcessing": { + "$ref": "PostProcessingStep", + "description": "Post processing step." + }, + "replicating": { + "$ref": "ReplicatingStep", + "description": "Replicating step." + }, + "startTime": { + "description": "The time the cycle step has started.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "DatacenterConnector": { - "description": "DatacenterConnector message describes a connector between the Source and GCP, which is installed on a vmware datacenter (an OVA vm installed by the user) to connect the Datacenter to GCP and support vm migration data transfer.", + "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", "properties": { "applianceInfrastructureVersion": { @@ -2454,7 +2948,7 @@ "readOnly": true }, "bucket": { - "description": "Output only. The communication channel between the datacenter connector and GCP.", + "description": "Output only. The communication channel between the datacenter connector and Google Cloud.", "readOnly": true, "type": "string" }, @@ -2526,7 +3020,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -2535,6 +3029,15 @@ "description": "Response message for fetchInventory.", "id": "FetchInventoryResponse", "properties": { + "awsVms": { + "$ref": "AwsVmsDetails", + "description": "The description of the VMs in a Source of type AWS." + }, + "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" + }, "updateTime": { "description": "Output only. The timestamp when the source was last queried (if the result is from the cache).", "format": "google-datetime", @@ -2586,6 +3089,18 @@ }, "type": "object" }, + "InitializingReplicationStep": { + "description": "InitializingReplicationStep contains specific step details.", + "id": "InitializingReplicationStep", + "properties": {}, + "type": "object" + }, + "InstantiatingMigratedVMStep": { + "description": "InstantiatingMigratedVMStep contains specific step details.", + "id": "InstantiatingMigratedVMStep", + "properties": {}, + "type": "object" + }, "Link": { "description": "Describes a URL link.", "id": "Link", @@ -2777,6 +3292,34 @@ }, "type": "object" }, + "ListReplicationCyclesResponse": { + "description": "Response message for 'ListReplicationCycles' request.", + "id": "ListReplicationCyclesResponse", + "properties": { + "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" + }, + "replicationCycles": { + "description": "Output only. The list of replication cycles response.", + "items": { + "$ref": "ReplicationCycle" + }, + "readOnly": true, + "type": "array" + }, + "unreachable": { + "description": "Output only. Locations that could not be reached.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "ListSourcesResponse": { "description": "Response message for 'ListSources' request.", "id": "ListSourcesResponse", @@ -2866,7 +3409,7 @@ "id": "LocalizedMessage", "properties": { "locale": { - "description": "The locale used following the specification defined at http://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", + "description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", "type": "string" }, "message": { @@ -2914,6 +3457,11 @@ "description": "MigratingVm describes the VM that will be migrated from a Source environment and its replication state.", "id": "MigratingVm", "properties": { + "awsSourceVmDetails": { + "$ref": "AwsSourceVmDetails", + "description": "Output only. Details of the VM from an AWS source.", + "readOnly": true + }, "computeEngineTargetDefaults": { "$ref": "ComputeEngineTargetDefaults", "description": "Details of the target VM in Compute Engine." @@ -2930,7 +3478,7 @@ }, "currentSyncInfo": { "$ref": "ReplicationCycle", - "description": "Output only. The percentage progress of the current running replication cycle.", + "description": "Output only. Details of the current running replication cycle.", "readOnly": true }, "description": { @@ -3033,7 +3581,7 @@ }, "targetDefaults": { "$ref": "TargetVMDetails", - "description": "The default configuration of the target VM that will be created in GCP as a result of the migration. Deprecated: Use compute_engine_target_defaults instead." + "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": { "description": "Output only. The last time the migrating VM resource was updated.", @@ -3212,6 +3760,18 @@ "properties": {}, "type": "object" }, + "PostProcessingStep": { + "description": "PostProcessingStep contains specific step details.", + "id": "PostProcessingStep", + "properties": {}, + "type": "object" + }, + "PreparingVMDisksStep": { + "description": "PreparingVMDisksStep contains specific step details.", + "id": "PreparingVMDisksStep", + "properties": {}, + "type": "object" + }, "RemoveGroupMigrationRequest": { "description": "Request message for 'RemoveMigration' request.", "id": "RemoveGroupMigrationRequest", @@ -3223,17 +3783,62 @@ }, "type": "object" }, + "ReplicatingStep": { + "description": "ReplicatingStep contains specific step details.", + "id": "ReplicatingStep", + "properties": { + "lastThirtyMinutesAverageBytesPerSecond": { + "description": "The source disks replication rate for the last 30 minutes in bytes per second.", + "format": "int64", + "type": "string" + }, + "lastTwoMinutesAverageBytesPerSecond": { + "description": "The source disks replication rate for the last 2 minutes in bytes per second.", + "format": "int64", + "type": "string" + }, + "replicatedBytes": { + "description": "Replicated bytes in the step.", + "format": "int64", + "type": "string" + }, + "totalBytes": { + "description": "Total bytes to be handled in the step.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ReplicationCycle": { "description": "ReplicationCycle contains information about the current replication cycle status.", "id": "ReplicationCycle", "properties": { + "cycleNumber": { + "description": "The cycle's ordinal number.", + "format": "int32", + "type": "integer" + }, + "endTime": { + "description": "The time the replication cycle has ended.", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "Provides details on the state of the cycle in case of an error." + }, + "name": { + "description": "The identifier of the ReplicationCycle.", + "type": "string" + }, "progress": { "description": "The current progress in percentage of this cycle.", "format": "int32", "type": "integer" }, "progressPercent": { - "description": "The current progress in percentage of this cycle.", + "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" }, @@ -3242,6 +3847,31 @@ "format": "google-datetime", "type": "string" }, + "state": { + "description": "State of the ReplicationCycle.", + "enum": [ + "STATE_UNSPECIFIED", + "RUNNING", + "PAUSED", + "FAILED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The state is unknown. This is used for API compatibility only and is not used by the system.", + "The replication cycle is running.", + "The replication cycle is paused.", + "The replication cycle finished with errors.", + "The replication cycle finished successfully." + ], + "type": "string" + }, + "steps": { + "description": "The cycle's steps list representing its progress.", + "items": { + "$ref": "CycleStep" + }, + "type": "array" + }, "totalPauseDuration": { "description": "The accumulated duration the replication cycle was paused.", "format": "google-duration", @@ -3316,10 +3946,20 @@ }, "type": "object" }, + "ShuttingDownSourceVMStep": { + "description": "ShuttingDownSourceVMStep contains specific step details.", + "id": "ShuttingDownSourceVMStep", + "properties": {}, + "type": "object" + }, "Source": { "description": "Source message describes a specific vm migration Source resource. It contains the source environment information.", "id": "Source", "properties": { + "aws": { + "$ref": "AwsSourceDetails", + "description": "AWS type source details." + }, "createTime": { "description": "Output only. The create time timestamp.", "format": "google-datetime", @@ -3393,6 +4033,21 @@ }, "type": "object" }, + "Tag": { + "description": "Tag is an AWS tag representation.", + "id": "Tag", + "properties": { + "key": { + "description": "Key of tag.", + "type": "string" + }, + "value": { + "description": "Value of tag.", + "type": "string" + } + }, + "type": "object" + }, "TargetProject": { "description": "TargetProject message represents a target Compute Engine project for a migration or a clone.", "id": "TargetProject", diff --git a/etc/api/walletobjects/v1/walletobjects-api.json b/etc/api/walletobjects/v1/walletobjects-api.json index 3dc7ce466e..44c14b1cf0 100644 --- a/etc/api/walletobjects/v1/walletobjects-api.json +++ b/etc/api/walletobjects/v1/walletobjects-api.json @@ -1840,6 +1840,50 @@ } } }, + "media": { + "methods": { + "upload": { + "description": "Uploads a private image and returns an Id to be used in its place.", + "flatPath": "walletobjects/v1/privateContent/{issuerId}/uploadPrivateImage", + "httpMethod": "POST", + "id": "walletobjects.media.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/walletobjects/v1/privateContent/{issuerId}/uploadPrivateImage" + } + } + }, + "parameterOrder": [ + "issuerId" + ], + "parameters": { + "issuerId": { + "description": "The ID of the issuer sending the image.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/privateContent/{issuerId}/uploadPrivateImage", + "request": { + "$ref": "UploadPrivateImageRequest" + }, + "response": { + "$ref": "UploadPrivateImageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ], + "supportsMediaUpload": true + } + } + }, "offerclass": { "methods": { "addmessage": { @@ -2556,11 +2600,80 @@ ] } } + }, + "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": "20220928", + "revision": "20230124", "rootUrl": "https://walletobjects.googleapis.com/", "schemas": { + "ActivationOptions": { + "description": "ActivationOptions for the class", + "id": "ActivationOptions", + "properties": { + "activationUrl": { + "description": "HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.", + "type": "string" + }, + "allowReactivation": { + "description": "Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.", + "type": "boolean" + } + }, + "type": "object" + }, + "ActivationStatus": { + "description": "The activation status of the object. This field includes activation status if valuable supports activation.", + "id": "ActivationStatus", + "properties": { + "state": { + "enum": [ + "UNKNOWN_STATE", + "NOT_ACTIVATED", + "not_activated", + "ACTIVATED", + "activated" + ], + "enumDescriptions": [ + "", + "Not-Activated, this is the default status", + "Legacy alias for `NOT_ACTIVATED`. Deprecated.", + "Activated", + "Legacy alias for `ACTIVATED`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, "AddMessageRequest": { "description": "Resource used when the AddMessage endpoints are called.", "id": "AddMessageRequest", @@ -2769,6 +2882,36 @@ }, "type": "object" }, + "Blobstore2Info": { + "description": "Information to read/write to blobstore2.", + "id": "Blobstore2Info", + "properties": { + "blobGeneration": { + "description": "The blob generation id.", + "format": "int64", + "type": "string" + }, + "blobId": { + "description": "The blob id, e.g., /blobstore/prod/playground/scotty", + "type": "string" + }, + "downloadReadHandle": { + "description": "Read handle passed from Bigstore -> Scotty for a GCS download. This is a signed, serialized blobstore2.ReadHandle proto which must never be set outside of Bigstore, and is not applicable to non-GCS media downloads.", + "format": "byte", + "type": "string" + }, + "readToken": { + "description": "The blob read token. Needed to read blobs that have not been replicated. Might not be available until the final call.", + "type": "string" + }, + "uploadMetadataContainer": { + "description": "Metadata passed from Blobstore -> Scotty for a new GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer proto which must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, "BoardingAndSeatingInfo": { "id": "BoardingAndSeatingInfo", "properties": { @@ -3010,6 +3153,105 @@ }, "type": "object" }, + "CompositeMedia": { + "description": "A sequence of media data references representing composite data. Introduced to support Bigstore composite objects. For details, visit http://go/bigstore-composites.", + "id": "CompositeMedia", + "properties": { + "blobRef": { + "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", + "format": "byte", + "type": "string" + }, + "blobstore2Info": { + "$ref": "Blobstore2Info", + "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." + }, + "cosmoBinaryReference": { + "description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", + "format": "byte", + "type": "string" + }, + "crc32cHash": { + "description": "crc32.c hash for the payload.", + "format": "uint32", + "type": "integer" + }, + "inline": { + "description": "Media data, set if reference_type is INLINE", + "format": "byte", + "type": "string" + }, + "length": { + "description": "Size of the data, in bytes", + "format": "int64", + "type": "string" + }, + "md5Hash": { + "description": "MD5 hash for the payload.", + "format": "byte", + "type": "string" + }, + "objectId": { + "$ref": "ObjectId", + "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." + }, + "path": { + "description": "Path to the data, set if reference_type is PATH", + "type": "string" + }, + "referenceType": { + "description": "Describes what the field reference contains.", + "enum": [ + "PATH", + "BLOB_REF", + "INLINE", + "BIGSTORE_REF", + "COSMO_BINARY_REFERENCE" + ], + "enumDescriptions": [ + "Reference contains a GFS path or a local path.", + "Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", + "Data is included into this proto buffer", + "Reference points to a bigstore object", + "Indicates the data is stored in cosmo_binary_reference." + ], + "type": "string" + }, + "sha1Hash": { + "description": "SHA-1 hash for the payload.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "ContentTypeInfo": { + "description": "Detailed Content-Type information from Scotty. The Content-Type of the media will typically be filled in by the header or Scotty's best_guess, but this extended information provides the backend with more information so that it can make a better decision if needed. This is only used on media upload requests from Scotty.", + "id": "ContentTypeInfo", + "properties": { + "bestGuess": { + "description": "Scotty's best guess of what the content type of the file is.", + "type": "string" + }, + "fromBytes": { + "description": "The content type of the file derived by looking at specific bytes (i.e. \"magic bytes\") of the actual file.", + "type": "string" + }, + "fromFileName": { + "description": "The content type of the file derived from the file extension of the original file name used by the client.", + "type": "string" + }, + "fromHeader": { + "description": "The content type of the file as specified in the request headers, multipart headers, or RUPIO start request.", + "type": "string" + }, + "fromUrlPath": { + "description": "The content type of the file derived from the file extension of the URL path. The URL path is assumed to represent a file name (which is typically only true for agents that are providing a REST API).", + "type": "string" + } + }, + "type": "object" + }, "DateTime": { "id": "DateTime", "properties": { @@ -3043,6 +3285,107 @@ }, "type": "object" }, + "DeviceContext": { + "description": "Device context associated with the object.", + "id": "DeviceContext", + "properties": { + "deviceToken": { + "description": "If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user's device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.", + "type": "string" + } + }, + "type": "object" + }, + "DiffChecksumsResponse": { + "description": "Backend response for a Diff get checksums response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffChecksumsResponse", + "properties": { + "checksumsLocation": { + "$ref": "CompositeMedia", + "description": "Exactly one of these fields must be populated. If checksums_location is filled, the server will return the corresponding contents to the user. If object_location is filled, the server will calculate the checksums based on the content there and return that to the user. For details on the format of the checksums, see http://go/scotty-diff-protocol." + }, + "chunkSizeBytes": { + "description": "The chunk size of checksums. Must be a multiple of 256KB.", + "format": "int64", + "type": "string" + }, + "objectLocation": { + "$ref": "CompositeMedia", + "description": "If set, calculate the checksums based on the contents and return them to the caller." + }, + "objectSizeBytes": { + "description": "The total size of the server object.", + "format": "int64", + "type": "string" + }, + "objectVersion": { + "description": "The object version of the object the checksums are being returned for.", + "type": "string" + } + }, + "type": "object" + }, + "DiffDownloadResponse": { + "description": "Backend response for a Diff download response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffDownloadResponse", + "properties": { + "objectLocation": { + "$ref": "CompositeMedia", + "description": "The original object location." + } + }, + "type": "object" + }, + "DiffUploadRequest": { + "description": "A Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffUploadRequest", + "properties": { + "checksumsInfo": { + "$ref": "CompositeMedia", + "description": "The location of the checksums for the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received. For details on the format of the checksums, see http://go/scotty-diff-protocol." + }, + "objectInfo": { + "$ref": "CompositeMedia", + "description": "The location of the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received." + }, + "objectVersion": { + "description": "The object version of the object that is the base version the incoming diff script will be applied to. This field will always be filled in.", + "type": "string" + } + }, + "type": "object" + }, + "DiffUploadResponse": { + "description": "Backend response for a Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffUploadResponse", + "properties": { + "objectVersion": { + "description": "The object version of the object at the server. Must be included in the end notification response. The version in the end notification response must correspond to the new version of the object that is now stored at the server, after the upload.", + "type": "string" + }, + "originalObject": { + "$ref": "CompositeMedia", + "description": "The location of the original file for a diff upload request. Must be filled in if responding to an upload start notification." + } + }, + "type": "object" + }, + "DiffVersionResponse": { + "description": "Backend response for a Diff get version response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffVersionResponse", + "properties": { + "objectSizeBytes": { + "description": "The total size of the server object.", + "format": "int64", + "type": "string" + }, + "objectVersion": { + "description": "The version of the object stored at the server.", + "type": "string" + } + }, + "type": "object" + }, "DiscoverableProgram": { "description": "Information about how a class may be discovered and instantiated from within the Android Pay app. This is done by searching for a loyalty or gift card program and scanning or manually entering.", "id": "DiscoverableProgram", @@ -3139,6 +3482,21 @@ }, "type": "object" }, + "DownloadParameters": { + "description": "Parameters specific to media downloads.", + "id": "DownloadParameters", + "properties": { + "allowGzipCompression": { + "description": "A boolean to be returned in the response to Scotty. Allows/disallows gzip encoding of the payload content when the server thinks it's advantageous (hence, does not guarantee compression) which allows Scotty to GZip the response to the client.", + "type": "boolean" + }, + "ignoreRange": { + "description": "Determining whether or not Apiary should skip the inclusion of any Content-Range header on its response to Scotty.", + "type": "boolean" + } + }, + "type": "object" + }, "EventDateTime": { "id": "EventDateTime", "properties": { @@ -4519,7 +4877,7 @@ "type": "object" }, "GenericObject": { - "description": "Generic Object", + "description": "Generic Object Next ID: 119", "id": "GenericObject", "properties": { "appLinkData": { @@ -4532,7 +4890,7 @@ }, "cardTitle": { "$ref": "LocalizedString", - "description": "Required. The title of the pass. This is usually the Business name such as \"XXX Gym\", \"AAA Insurance\". This field is required." + "description": "Required. The header of the pass. This is usually the Business name such as \"XXX Gym\", \"AAA Insurance\". This field is required and appears in the header row at the very top of the pass." }, "classId": { "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.", @@ -4558,7 +4916,7 @@ }, "header": { "$ref": "LocalizedString", - "description": "Required. The header of the pass, such as \"50% off coupon\" or \"Library card\" or \"Voucher\". This field is required." + "description": "Required. The title of the pass, such as \"50% off coupon\" or \"Library card\" or \"Voucher\". This field is required and appears in the title row of the pass detail view." }, "heroImage": { "$ref": "Image", @@ -4627,7 +4985,7 @@ }, "subheader": { "$ref": "LocalizedString", - "description": "The subheader of the pass, such as location where this pass can be used." + "description": "The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view." }, "textModulesData": { "description": "Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.", @@ -5883,6 +6241,233 @@ }, "type": "object" }, + "Media": { + "description": "A reference to data stored on the filesystem, on GFS or in blobstore.", + "id": "Media", + "properties": { + "algorithm": { + "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": { + "description": "Use object_id instead.", + "format": "byte", + "type": "string" + }, + "blobRef": { + "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", + "format": "byte", + "type": "string" + }, + "blobstore2Info": { + "$ref": "Blobstore2Info", + "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." + }, + "compositeMedia": { + "description": "A composite media composed of one or more media objects, set if reference_type is COMPOSITE_MEDIA. The media length field must be set to the sum of the lengths of all composite media objects. Note: All composite media must have length specified.", + "items": { + "$ref": "CompositeMedia" + }, + "type": "array" + }, + "contentType": { + "description": "MIME type of the data", + "type": "string" + }, + "contentTypeInfo": { + "$ref": "ContentTypeInfo", + "description": "Extended content type information provided for Scotty uploads." + }, + "cosmoBinaryReference": { + "description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", + "format": "byte", + "type": "string" + }, + "crc32cHash": { + "description": "For Scotty Uploads: Scotty-provided hashes for uploads For Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.) A Hash provided by the agent to be used to verify the data being downloaded. Currently only supported for inline payloads. Further, only crc32c_hash is currently supported.", + "format": "uint32", + "type": "integer" + }, + "diffChecksumsResponse": { + "$ref": "DiffChecksumsResponse", + "description": "Set if reference_type is DIFF_CHECKSUMS_RESPONSE." + }, + "diffDownloadResponse": { + "$ref": "DiffDownloadResponse", + "description": "Set if reference_type is DIFF_DOWNLOAD_RESPONSE." + }, + "diffUploadRequest": { + "$ref": "DiffUploadRequest", + "description": "Set if reference_type is DIFF_UPLOAD_REQUEST." + }, + "diffUploadResponse": { + "$ref": "DiffUploadResponse", + "description": "Set if reference_type is DIFF_UPLOAD_RESPONSE." + }, + "diffVersionResponse": { + "$ref": "DiffVersionResponse", + "description": "Set if reference_type is DIFF_VERSION_RESPONSE." + }, + "downloadParameters": { + "$ref": "DownloadParameters", + "description": "Parameters for a media download." + }, + "filename": { + "description": "Original file name", + "type": "string" + }, + "hash": { + "description": "Deprecated, use one of explicit hash type fields instead. These two hash related fields will only be populated on Scotty based media uploads and will contain the content of the hash group in the NotificationRequest: http://cs/#google3/uploader/service/proto/upload_listener.proto&q=class:Hash Hex encoded hash value of the uploaded media.", + "type": "string" + }, + "hashVerified": { + "description": "For Scotty uploads only. If a user sends a hash code and the backend has requested that Scotty verify the upload against the client hash, Scotty will perform the check on behalf of the backend and will reject it if the hashes don't match. This is set to true if Scotty performed this verification.", + "type": "boolean" + }, + "inline": { + "description": "Media data, set if reference_type is INLINE", + "format": "byte", + "type": "string" + }, + "isPotentialRetry": { + "description": "|is_potential_retry| is set false only when Scotty is certain that it has not sent the request before. When a client resumes an upload, this field must be set true in agent calls, because Scotty cannot be certain that it has never sent the request before due to potential failure in the session state persistence.", + "type": "boolean" + }, + "length": { + "description": "Size of the data, in bytes", + "format": "int64", + "type": "string" + }, + "md5Hash": { + "description": "Scotty-provided MD5 hash for an upload.", + "format": "byte", + "type": "string" + }, + "mediaId": { + "description": "Media id to forward to the operation GetMedia. Can be set if reference_type is GET_MEDIA.", + "format": "byte", + "type": "string" + }, + "objectId": { + "$ref": "ObjectId", + "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." + }, + "path": { + "description": "Path to the data, set if reference_type is PATH", + "type": "string" + }, + "referenceType": { + "description": "Describes what the field reference contains.", + "enum": [ + "PATH", + "BLOB_REF", + "INLINE", + "GET_MEDIA", + "COMPOSITE_MEDIA", + "BIGSTORE_REF", + "DIFF_VERSION_RESPONSE", + "DIFF_CHECKSUMS_RESPONSE", + "DIFF_DOWNLOAD_RESPONSE", + "DIFF_UPLOAD_REQUEST", + "DIFF_UPLOAD_RESPONSE", + "COSMO_BINARY_REFERENCE", + "ARBITRARY_BYTES" + ], + "enumDescriptions": [ + "Reference contains a GFS path or a local path.", + "Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", + "Data is included into this proto buffer", + "Data should be accessed from the current service using the operation GetMedia.", + "The content for this media object is stored across multiple partial media objects under the composite_media field.", + "Reference points to a bigstore object", + "Indicates the data is stored in diff_version_response.", + "Indicates the data is stored in diff_checksums_response.", + "Indicates the data is stored in diff_download_response.", + "Indicates the data is stored in diff_upload_request.", + "Indicates the data is stored in diff_upload_response.", + "Indicates the data is stored in cosmo_binary_reference.", + "Informs Scotty to generate a response payload with the size specified in the length field. The contents of the payload are generated by Scotty and are undefined. This is useful for testing download speeds between the user and Scotty without involving a real payload source. Note: range is not supported when using arbitrary_bytes." + ], + "type": "string" + }, + "sha1Hash": { + "description": "Scotty-provided SHA1 hash for an upload.", + "format": "byte", + "type": "string" + }, + "sha256Hash": { + "description": "Scotty-provided SHA256 hash for an upload.", + "format": "byte", + "type": "string" + }, + "timestamp": { + "description": "Time at which the media data was last updated, in milliseconds since UNIX epoch", + "format": "uint64", + "type": "string" + }, + "token": { + "description": "A unique fingerprint/version id for the media data", + "type": "string" + } + }, + "type": "object" + }, + "MediaRequestInfo": { + "description": "Extra information added to operations that support Scotty media requests.", + "id": "MediaRequestInfo", + "properties": { + "currentBytes": { + "description": "The number of current bytes uploaded or downloaded.", + "format": "int64", + "type": "string" + }, + "customData": { + "description": "Data to be copied to backend requests. Custom data is returned to Scotty in the agent_state field, which Scotty will then provide in subsequent upload notifications.", + "type": "string" + }, + "diffObjectVersion": { + "description": "Set if the http request info is diff encoded. The value of this field is the version number of the base revision. This is corresponding to Apiary's mediaDiffObjectVersion (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionVariable.java). See go/esf-scotty-diff-upload for more information.", + "type": "string" + }, + "finalStatus": { + "description": "The existence of the final_status field indicates that this is the last call to the agent for this request_id. http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929", + "format": "int32", + "type": "integer" + }, + "notificationType": { + "description": "The type of notification received from Scotty.", + "enum": [ + "START", + "PROGRESS", + "END", + "RESPONSE_SENT", + "ERROR" + ], + "enumDescriptions": [ + "Such requests signals the start of a request containing media upload. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", + "Such requests signals that the upload has progressed and that the backend might want to access the media file specified in relevant fields in the resource. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", + "Such requests signals the end of a request containing media upload. END should be handled just like normal Insert/Upload requests, that is, they should process the request and return a complete resource in the response. Pointers to media data (a GFS path usually) appear in the relevant fields in the inserted/updated resource. See gdata.Media in data.proto.", + "Such requests occur after an END and signal that the response has been sent back to the client. RESPONSE_SENT is only sent to the backend if it is configured to receive them. The response does not need to contain anything.", + "Such requests indicate that an error occurred while processing the request. ERROR is only sent to the backend if it is configured to receive them. It is not guaranteed that all errors will result in this notification to the backend, even if the backend requests them. Since these requests are just for informational purposes, the response does not need to contain anything." + ], + "type": "string" + }, + "requestId": { + "description": "The Scotty request ID.", + "type": "string" + }, + "totalBytes": { + "description": "The total size of the file.", + "format": "int64", + "type": "string" + }, + "totalBytesIsEstimated": { + "description": "Whether the total bytes field contains an estimated data.", + "type": "boolean" + } + }, + "type": "object" + }, "Message": { "description": "A message that will be displayed with a Valuable", "id": "Message", @@ -6000,6 +6585,26 @@ }, "type": "object" }, + "ObjectId": { + "description": "This is a copy of the tech.blob.ObjectId proto, which could not be used directly here due to transitive closure issues with JavaScript support; see http://b/8801763.", + "id": "ObjectId", + "properties": { + "bucketName": { + "description": "The name of the bucket to which this object belongs.", + "type": "string" + }, + "generation": { + "description": "Generation of the object. Generations are monotonically increasing across writes, allowing them to be be compared to determine which generation is newer. If this is omitted in a request, then you are requesting the live object. See http://go/bigstore-versions", + "format": "int64", + "type": "string" + }, + "objectName": { + "description": "The name of the object.", + "type": "string" + } + }, + "type": "object" + }, "OfferClass": { "id": "OfferClass", "properties": { @@ -6503,6 +7108,36 @@ }, "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": { @@ -6768,6 +7403,7 @@ "type": "object" }, "RotatingBarcodeTotpDetailsTotpParameters": { + "description": "Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3", "id": "RotatingBarcodeTotpDetailsTotpParameters", "properties": { "key": { @@ -7085,6 +7721,10 @@ "TransitClass": { "id": "TransitClass", "properties": { + "activationOptions": { + "$ref": "ActivationOptions", + "description": "Activation options for an activatable ticket." + }, "allowMultipleUsersPerObject": { "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", "type": "boolean" @@ -7411,6 +8051,10 @@ "TransitObject": { "id": "TransitObject", "properties": { + "activationStatus": { + "$ref": "ActivationStatus", + "description": "The activation status for the object. Required if the class has `activationOptions` set." + }, "appLinkData": { "$ref": "AppLinkData", "description": "Optional information about the partner app link." @@ -7457,6 +8101,10 @@ "$ref": "LocalizedString", "description": "A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set." }, + "deviceContext": { + "$ref": "DeviceContext", + "description": "Device context associated with the object." + }, "disableExpirationNotification": { "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", "type": "boolean" @@ -7712,6 +8360,65 @@ }, "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": { diff --git a/etc/api/webfonts/v1/webfonts-api.json b/etc/api/webfonts/v1/webfonts-api.json index e425af4793..62cd2d2ef4 100644 --- a/etc/api/webfonts/v1/webfonts-api.json +++ b/etc/api/webfonts/v1/webfonts-api.json @@ -134,7 +134,7 @@ } } }, - "revision": "20220215", + "revision": "20221206", "rootUrl": "https://webfonts.googleapis.com/", "schemas": { "Webfont": { diff --git a/etc/api/webrisk/v1/webrisk-api.json b/etc/api/webrisk/v1/webrisk-api.json index b35989ba14..9faf036637 100644 --- a/etc/api/webrisk/v1/webrisk-api.json +++ b/etc/api/webrisk/v1/webrisk-api.json @@ -126,13 +126,15 @@ "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "location": "query", "repeated": true, @@ -374,13 +376,15 @@ "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "location": "query", "type": "string" @@ -417,13 +421,15 @@ "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "location": "query", "repeated": true, @@ -446,7 +452,7 @@ } } }, - "revision": "20220226", + "revision": "20230121", "rootUrl": "https://webrisk.googleapis.com/", "schemas": { "GoogleCloudWebriskV1ComputeThreatListDiffResponse": { @@ -601,13 +607,15 @@ "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "type": "string" }, @@ -621,7 +629,7 @@ "properties": { "threat": { "$ref": "GoogleCloudWebriskV1SearchUrisResponseThreatUri", - "description": "The threat list matches. This may be empty if the URI is on no list." + "description": "The threat list matches. This might be empty if the URI is on no list." } }, "type": "object" @@ -642,13 +650,15 @@ "THREAT_TYPE_UNSPECIFIED", "MALWARE", "SOCIAL_ENGINEERING", - "UNWANTED_SOFTWARE" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "type": "string" }, @@ -662,19 +672,21 @@ "id": "GoogleCloudWebriskV1Submission", "properties": { "threatTypes": { - "description": "ThreatTypes found to be associated with the submitted URI after reviewing it. This may be empty if the URI was not added to any list.", + "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" + "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." + "Unwanted software targeting any platform.", + "A list of extended coverage social engineering URIs targeting any platform." ], "type": "string" }, @@ -703,14 +715,16 @@ "RUNNING", "SUCCEEDED", "CANCELLED", - "FAILED" + "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 finished with a failure status.", + "The operation was closed with no action taken." ], "type": "string" }, @@ -807,11 +821,11 @@ "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.", + "description": "Contains a `SubmitUriMetadata` object.", "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}`.", + "description": "Matches the `/v1/{project-name}/operations/{operation-id}` pattern.", "type": "string" }, "response": { @@ -826,7 +840,7 @@ "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/websecurityscanner/v1/websecurityscanner-api.json b/etc/api/websecurityscanner/v1/websecurityscanner-api.json index f90a30bc97..40835947bd 100644 --- a/etc/api/websecurityscanner/v1/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20220218", + "revision": "20230122", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -587,7 +587,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -1178,7 +1178,8 @@ "AUTHENTICATION_CONFIG_ISSUE", "TIMED_OUT_WHILE_SCANNING", "TOO_MANY_REDIRECTS", - "TOO_MANY_HTTP_ERRORS" + "TOO_MANY_HTTP_ERRORS", + "STARTING_URLS_CRAWL_HTTP_ERRORS" ], "enumDescriptions": [ "Default value is never used.", @@ -1187,7 +1188,8 @@ "Indicates an authentication error, usually due to outdated ScanConfig authentication settings.", "Indicates a scan operation timeout, usually caused by a very large site.", "Indicates that a scan encountered excessive redirects, either to authentication or some other page outside of the scan scope.", - "Indicates that a scan encountered numerous errors from the web site pages. When available, most_common_http_error_code field indicates the most common HTTP error code encountered during the scan." + "Indicates that a scan encountered numerous errors from the web site pages. When available, most_common_http_error_code field indicates the most common HTTP error code encountered during the scan.", + "Indicates that some of the starting web urls returned HTTP errors during the scan." ], "type": "string" }, diff --git a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json index 19e8a32cab..4b9535199c 100644 --- a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20220218", + "revision": "20230122", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -583,7 +583,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -914,12 +914,16 @@ "enum": [ "TARGET_PLATFORM_UNSPECIFIED", "APP_ENGINE", - "COMPUTE" + "COMPUTE", + "CLOUD_RUN", + "CLOUD_FUNCTIONS" ], "enumDescriptions": [ "The target platform is unknown. Requests with this enum value will be rejected with INVALID_ARGUMENT error.", "Google App Engine service.", - "Google Compute Engine service." + "Google Compute Engine service.", + "Google Cloud Run service.", + "Google Cloud Function service." ], "type": "string" }, diff --git a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json index a69b33934f..c4e1255fb2 100644 --- a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20220218", + "revision": "20230122", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { @@ -587,7 +587,7 @@ "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); } 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": "Empty", "properties": {}, "type": "object" @@ -968,12 +968,16 @@ "enum": [ "TARGET_PLATFORM_UNSPECIFIED", "APP_ENGINE", - "COMPUTE" + "COMPUTE", + "CLOUD_RUN", + "CLOUD_FUNCTIONS" ], "enumDescriptions": [ "The target platform is unknown. Requests with this enum value will be rejected with INVALID_ARGUMENT error.", "Google App Engine service.", - "Google Compute Engine service." + "Google Compute Engine service.", + "Google Cloud Run service.", + "Google Cloud Function service." ], "type": "string" }, @@ -1197,7 +1201,8 @@ "AUTHENTICATION_CONFIG_ISSUE", "TIMED_OUT_WHILE_SCANNING", "TOO_MANY_REDIRECTS", - "TOO_MANY_HTTP_ERRORS" + "TOO_MANY_HTTP_ERRORS", + "STARTING_URLS_CRAWL_HTTP_ERRORS" ], "enumDescriptions": [ "Default value is never used.", @@ -1206,7 +1211,8 @@ "Indicates an authentication error, usually due to outdated ScanConfig authentication settings.", "Indicates a scan operation timeout, usually caused by a very large site.", "Indicates that a scan encountered excessive redirects, either to authentication or some other page outside of the scan scope.", - "Indicates that a scan encountered numerous errors from the web site pages. When available, most_common_http_error_code field indicates the most common HTTP error code encountered during the scan." + "Indicates that a scan encountered numerous errors from the web site pages. When available, most_common_http_error_code field indicates the most common HTTP error code encountered during the scan.", + "Indicates that some of the starting web urls returned HTTP errors during the scan." ], "type": "string" }, diff --git a/etc/api/workflowexecutions/v1/workflowexecutions-api.json b/etc/api/workflowexecutions/v1/workflowexecutions-api.json index d34f7e41dc..3551109662 100644 --- a/etc/api/workflowexecutions/v1/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1/workflowexecutions-api.json @@ -110,6 +110,36 @@ "locations": { "resources": { "workflows": { + "methods": { + "triggerPubsubExecution": { + "description": "Triggers a new execution using the latest revision of the given workflow by a Pub/Sub push notification.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}:triggerPubsubExecution", + "httpMethod": "POST", + "id": "workflowexecutions.projects.locations.workflows.triggerPubsubExecution", + "parameterOrder": [ + "workflow" + ], + "parameters": { + "workflow": { + "description": "Required. Name of the workflow for which an execution should be created. Format: projects/{project}/locations/{location}/workflows/{workflow}", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+workflow}:triggerPubsubExecution", + "request": { + "$ref": "TriggerPubsubExecutionRequest" + }, + "response": { + "$ref": "Execution" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "executions": { "methods": { @@ -194,7 +224,7 @@ ], "enumDescriptions": [ "The default / unset value.", - "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, state and workflow_revision_id.", + "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, duration, state and workflow_revision_id.", "Includes all data." ], "location": "query", @@ -219,7 +249,7 @@ ], "parameters": { "pageSize": { - "description": "Maximum number of executions to return per call. Max supported value depends on the selected Execution view: it's 10000 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.", + "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", "location": "query", "type": "integer" @@ -245,7 +275,7 @@ ], "enumDescriptions": [ "The default / unset value.", - "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, state and workflow_revision_id.", + "Includes only basic metadata about the execution. Following fields are returned: name, start_time, end_time, duration, state and workflow_revision_id.", "Includes all data." ], "location": "query", @@ -269,7 +299,7 @@ } } }, - "revision": "20220222", + "revision": "20230110", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { @@ -313,12 +343,18 @@ "LOG_ERRORS_ONLY" ], "enumDescriptions": [ - "No call logging specified.", + "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." ], "type": "string" }, + "duration": { + "description": "Output only. Measures the duration of the execution.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, "endTime": { "description": "Output only. Marks the end of execution, successful or not.", "format": "google-datetime", @@ -365,6 +401,11 @@ "readOnly": true, "type": "string" }, + "status": { + "$ref": "Status", + "description": "Output only. Status tracks the current steps and progress data of this execution.", + "readOnly": true + }, "workflowRevisionId": { "description": "Output only. Revision of the workflow this execution is using.", "readOnly": true, @@ -413,6 +454,38 @@ }, "type": "object" }, + "PubsubMessage": { + "description": "A message that is published by publishers and consumed by subscribers. The message must contain either a non-empty data field or at least one attribute. Note that client libraries represent this object differently depending on the language. See the corresponding [client library documentation](https://cloud.google.com/pubsub/docs/reference/libraries) for more information. See [quotas and limits] (https://cloud.google.com/pubsub/quotas) for more information about message limits.", + "id": "PubsubMessage", + "properties": { + "attributes": { + "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.", + "type": "object" + }, + "data": { + "description": "The message data field. If this field is empty, the message must contain at least one attribute.", + "format": "byte", + "type": "string" + }, + "messageId": { + "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", + "type": "string" + }, + "orderingKey": { + "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).", + "type": "string" + }, + "publishTime": { + "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "StackTrace": { "description": "A collection of stack elements (frames) where an error occurred.", "id": "StackTrace", @@ -445,6 +518,54 @@ } }, "type": "object" + }, + "Status": { + "description": "Represents the current status of this execution.", + "id": "Status", + "properties": { + "currentSteps": { + "description": "A list of currently executing or last executed step names for the workflow execution currently running. If the workflow has succeeded or failed, this is the last attempted or executed step. Presently, if the current step is inside a subworkflow, the list only includes that step. In the future, the list will contain items for each step in the call stack, starting with the outermost step in the `main` subworkflow, and ending with the most deeply nested step.", + "items": { + "$ref": "Step" + }, + "type": "array" + } + }, + "type": "object" + }, + "Step": { + "description": "Represents a step of the workflow this execution is running.", + "id": "Step", + "properties": { + "routine": { + "description": "Name of a routine within the workflow.", + "type": "string" + }, + "step": { + "description": "Name of a step within the routine.", + "type": "string" + } + }, + "type": "object" + }, + "TriggerPubsubExecutionRequest": { + "description": "Request for the TriggerPubsubExecution method.", + "id": "TriggerPubsubExecutionRequest", + "properties": { + "GCPCloudEventsMode": { + "description": "Required. LINT: LEGACY_NAMES The query parameter value for __GCP_CloudEventsMode, set by the Eventarc service when configuring triggers.", + "type": "string" + }, + "message": { + "$ref": "PubsubMessage", + "description": "Required. The message of the Pub/Sub push notification." + }, + "subscription": { + "description": "Required. The subscription of the Pub/Sub push notification. Format: projects/{project}/subscriptions/{sub}", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json index 99938046b8..f22483d983 100644 --- a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json @@ -269,7 +269,7 @@ } } }, - "revision": "20220222", + "revision": "20230110", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { @@ -313,7 +313,7 @@ "LOG_ERRORS_ONLY" ], "enumDescriptions": [ - "No call logging specified.", + "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." ], @@ -365,6 +365,11 @@ "readOnly": true, "type": "string" }, + "status": { + "$ref": "Status", + "description": "Output only. Status tracks the current steps and progress data of this execution.", + "readOnly": true + }, "workflowRevisionId": { "description": "Output only. Revision of the workflow this execution is using.", "readOnly": true, @@ -445,6 +450,35 @@ } }, "type": "object" + }, + "Status": { + "description": "Represents the current status of this execution.", + "id": "Status", + "properties": { + "currentSteps": { + "description": "A list of currently executing or last executed step names for the workflow execution currently running. If the workflow has succeeded or failed, this is the last attempted or executed step. Presently, if the current step is inside a subworkflow, the list only includes that step. In the future, the list will contain items for each step in the call stack, starting with the outermost step in the `main` subworkflow, and ending with the most deeply nested step.", + "items": { + "$ref": "Step" + }, + "type": "array" + } + }, + "type": "object" + }, + "Step": { + "description": "Represents a step of the workflow this execution is running.", + "id": "Step", + "properties": { + "routine": { + "description": "Name of a routine within the workflow.", + "type": "string" + }, + "step": { + "description": "Name of a step within the routine.", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/workflows/v1/workflows-api.json b/etc/api/workflows/v1/workflows-api.json index 0df0ee4e13..0afd8b1908 100644 --- a/etc/api/workflows/v1/workflows-api.json +++ b/etc/api/workflows/v1/workflows-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -275,7 +275,7 @@ "workflows": { "methods": { "create": { - "description": "Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation will return ALREADY_EXISTS error.", + "description": "Creates a new workflow. If a workflow with the specified name already exists in the specified project and location, the long running operation returns a ALREADY_EXISTS error.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows", "httpMethod": "POST", "id": "workflows.projects.locations.workflows.create", @@ -333,7 +333,7 @@ ] }, "get": { - "description": "Gets details of a single Workflow.", + "description": "Gets details of a single workflow.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}", "httpMethod": "GET", "id": "workflows.projects.locations.workflows.get", @@ -342,7 +342,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the workflow which information should be retrieved. Format: projects/{project}/locations/{location}/workflows/{workflow}", + "description": "Required. Name of the workflow for which information should be retrieved. Format: projects/{project}/locations/{location}/workflows/{workflow}", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/workflows/[^/]+$", "required": true, @@ -358,7 +358,7 @@ ] }, "list": { - "description": "Lists Workflows in a given project and location. The default order is not specified.", + "description": "Lists workflows in a given project and location. The default order is not specified.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows", "httpMethod": "GET", "id": "workflows.projects.locations.workflows.list", @@ -372,12 +372,12 @@ "type": "string" }, "orderBy": { - "description": "Comma-separated list of fields that that specify the order of the results. Default sorting order for a field is ascending. To specify descending order for a field, append a \" desc\" suffix. If not specified, the results will be returned in an unspecified order.", + "description": "Comma-separated list of fields that specify the order of the results. Default sorting order for a field is ascending. To specify descending order for a field, append a \"desc\" suffix. If not specified, the results are returned in an unspecified order.", "location": "query", "type": "string" }, "pageSize": { - "description": "Maximum number of workflows to return per call. The service may return fewer than this value. If the value is not specified, a default value of 500 will be used. The maximum permitted value is 1000 and values greater than 1000 will be coerced down to 1000.", + "description": "Maximum number of workflows to return per call. The service might return fewer than this value even if not at the end of the collection. If a value is not specified, a default value of 500 is used. The maximum permitted value is 1000 and values greater than 1000 are coerced down to 1000.", "format": "int32", "location": "query", "type": "integer" @@ -404,7 +404,7 @@ ] }, "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 may be created as a result of a successful update operation. In that case, such revision will be used in new workflow executions.", + "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}", "httpMethod": "PATCH", "id": "workflows.projects.locations.workflows.patch", @@ -444,11 +444,11 @@ } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" @@ -505,7 +505,7 @@ "type": "array" }, "workflows": { - "description": "The workflows which match the request.", + "description": "The workflows that match the request.", "items": { "$ref": "Workflow" }, @@ -644,7 +644,7 @@ "id": "Workflow", "properties": { "createTime": { - "description": "Output only. The timestamp of when the workflow was created.", + "description": "Output only. The timestamp for when the workflow was created.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -657,7 +657,7 @@ "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.", "type": "object" }, "name": { @@ -665,7 +665,7 @@ "type": "string" }, "revisionCreateTime": { - "description": "Output only. The timestamp that the latest revision of the workflow was created.", + "description": "Output only. The timestamp for the latest revision of the workflow's creation.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -697,7 +697,7 @@ "type": "string" }, "updateTime": { - "description": "Output only. The last update timestamp of the workflow.", + "description": "Output only. The timestamp for when the workflow was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" diff --git a/etc/api/workflows/v1beta/workflows-api.json b/etc/api/workflows/v1beta/workflows-api.json index bc2df6e49e..4b8f733ba0 100644 --- a/etc/api/workflows/v1beta/workflows-api.json +++ b/etc/api/workflows/v1beta/workflows-api.json @@ -144,7 +144,7 @@ ], "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).", + "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" }, @@ -444,11 +444,11 @@ } } }, - "revision": "20220223", + "revision": "20230105", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object" diff --git a/etc/api/youtube/v3/youtube-api.json b/etc/api/youtube/v3/youtube-api.json index 88d5184f68..21fa8274ff 100644 --- a/etc/api/youtube/v3/youtube-api.json +++ b/etc/api/youtube/v3/youtube-api.json @@ -1379,6 +1379,48 @@ "https://www.googleapis.com/auth/youtube.force-ssl" ] }, + "insertCuepoint": { + "description": "Insert cuepoints in a broadcast", + "flatPath": "youtube/v3/liveBroadcasts/cuepoint", + "httpMethod": "POST", + "id": "youtube.liveBroadcasts.insertCuepoint", + "parameterOrder": [], + "parameters": { + "id": { + "description": "Broadcast to insert ads to, or equivalently `external_video_id` for internal use.", + "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" + }, + "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 a comma-separated list of one or more liveBroadcast resource properties that the API response will include. The part names that you can include in the parameter value are id, snippet, contentDetails, and status.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "youtube/v3/liveBroadcasts/cuepoint", + "request": { + "$ref": "Cuepoint" + }, + "response": { + "$ref": "Cuepoint" + }, + "scopes": [ + "https://www.googleapis.com/auth/youtube", + "https://www.googleapis.com/auth/youtube.force-ssl", + "https://www.googleapis.com/auth/youtubepartner" + ] + }, "list": { "description": "Retrieve the list of broadcasts associated with the given channel.", "flatPath": "youtube/v3/liveBroadcasts", @@ -2370,7 +2412,7 @@ "type": "string" }, "hl": { - "description": "Returen content in specified language", + "description": "Return content in specified language", "location": "query", "type": "string" }, @@ -3155,7 +3197,7 @@ }, "path": "youtube/v3/thirdPartyLinks", "response": { - "$ref": "ThirdPartyLink" + "$ref": "ThirdPartyLinkListResponse" } }, "update": { @@ -3398,7 +3440,7 @@ "video/*", "application/octet-stream" ], - "maxSize": "137438953472", + "maxSize": "274877906944", "protocols": { "resumable": { "multipart": true, @@ -3789,7 +3831,7 @@ } } }, - "revision": "20220303", + "revision": "20230123", "rootUrl": "https://youtube.googleapis.com/", "schemas": { "AbuseReport": { @@ -4481,14 +4523,12 @@ "rtmp", "dash", "webrtc", - "hls", - "srt" + "hls" ], "enumDescriptions": [ "", "", "", - "", "" ], "type": "string" @@ -5214,6 +5254,11 @@ "description": "Information specific to a store on a merchandising platform linked to a YouTube channel.", "id": "ChannelToStoreLinkDetails", "properties": { + "merchantId": { + "description": "Google Merchant Center id of the store.", + "format": "uint64", + "type": "string" + }, "storeName": { "description": "Name of the store.", "type": "string" @@ -5737,6 +5782,9 @@ "cbfcUnspecified", "cbfcU", "cbfcUA", + "cbfcUA7plus", + "cbfcUA13plus", + "cbfcUA16plus", "cbfcA", "cbfcS", "cbfcUnrated" @@ -5745,6 +5793,9 @@ "", "U", "U/A", + "U/A 7+", + "U/A 13+", + "U/A 16+", "A", "S", "" @@ -6723,8 +6774,10 @@ "mibacUnspecified", "mibacT", "mibacVap", + "mibacVm6", "mibacVm12", "mibacVm14", + "mibacVm16", "mibacVm18", "mibacUnrated" ], @@ -6735,6 +6788,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -7266,6 +7321,46 @@ }, "type": "object" }, + "Cuepoint": { + "description": "Note that there may be a 5-second end-point resolution issue. For instance, if a cuepoint comes in for 22:03:27, we may stuff the cuepoint into 22:03:25 or 22:03:30, depending. This is an artifact of HLS.", + "id": "Cuepoint", + "properties": { + "cueType": { + "enum": [ + "cueTypeUnspecified", + "cueTypeAd" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "durationSecs": { + "description": "The duration of this cuepoint.", + "format": "uint32", + "type": "integer" + }, + "etag": { + "type": "string" + }, + "id": { + "description": "The identifier for cuepoint resource.", + "type": "string" + }, + "insertionOffsetTimeMs": { + "description": "The time when the cuepoint should be inserted by offset to the broadcast actual start time.", + "format": "int64", + "type": "string" + }, + "walltimeMs": { + "description": "The wall clock time at which the cuepoint should be inserted. Only one of insertion_offset_time_ms and walltime_ms may be set at a time.", + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, "Entity": { "id": "Entity", "properties": { @@ -7753,29 +7848,14 @@ "type": "boolean" }, "enableContentEncryption": { - "annotations": { - "required": [ - "youtube.liveBroadcasts.update" - ] - }, "description": "This setting indicates whether YouTube should enable content encryption for the broadcast.", "type": "boolean" }, "enableDvr": { - "annotations": { - "required": [ - "youtube.liveBroadcasts.update" - ] - }, "description": "This setting determines whether viewers can access DVR controls while watching the video. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding content. The default value for this property is true. *Important:* You must set the value to true and also set the enableArchive property's value to true if you want to make playback available immediately after the broadcast ends.", "type": "boolean" }, "enableEmbed": { - "annotations": { - "required": [ - "youtube.liveBroadcasts.update" - ] - }, "description": "This setting indicates whether the broadcast video can be played in an embedded player. If you choose to archive the video (using the enableArchive property), this setting will also apply to the archived video.", "type": "boolean" }, @@ -7825,20 +7905,10 @@ "type": "string" }, "recordFromStart": { - "annotations": { - "required": [ - "youtube.liveBroadcasts.update" - ] - }, "description": "Automatically start recording after the event goes live. The default value for this property is true. *Important:* You must also set the enableDvr property's value to true if you want the playback to be available immediately after the broadcast ends. If you set this property's value to true but do not also set the enableDvr property to true, there may be a delay of around one day before the archived video will be available for playback.", "type": "boolean" }, "startWithSlate": { - "annotations": { - "required": [ - "youtube.liveBroadcasts.update" - ] - }, "description": "This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.", "type": "boolean" }, @@ -7978,6 +8048,11 @@ "description": "Statistics about the live broadcast. These represent a snapshot of the values at the time of the request. Statistics are only returned for live broadcasts.", "id": "LiveBroadcastStatistics", "properties": { + "concurrentViewers": { + "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", @@ -8158,6 +8233,24 @@ }, "type": "object" }, + "LiveChatGiftMembershipReceivedDetails": { + "id": "LiveChatGiftMembershipReceivedDetails", + "properties": { + "associatedMembershipGiftingMessageId": { + "description": "The ID of the membership gifting message that is related to this gift membership. This ID will always refer to a message whose type is 'membershipGiftingEvent'.", + "type": "string" + }, + "gifterChannelId": { + "description": "The ID of the user that made the membership gifting purchase. This matches the `snippet.authorChannelId` of the associated membership gifting message.", + "type": "string" + }, + "memberLevelName": { + "description": "The name of the Level at which the viewer is a member. This matches the `snippet.membershipGiftingDetails.giftMembershipsLevelName` of the associated membership gifting message. The Level names are defined by the YouTube channel offering the Membership. In some situations this field isn't filled.", + "type": "string" + } + }, + "type": "object" + }, "LiveChatMemberMilestoneChatDetails": { "id": "LiveChatMemberMilestoneChatDetails", "properties": { @@ -8177,6 +8270,21 @@ }, "type": "object" }, + "LiveChatMembershipGiftingDetails": { + "id": "LiveChatMembershipGiftingDetails", + "properties": { + "giftMembershipsCount": { + "description": "The number of gift memberships purchased by the user.", + "format": "int32", + "type": "integer" + }, + "giftMembershipsLevelName": { + "description": "The name of the level of the gift memberships purchased by the user. The Level names are defined by the YouTube channel offering the Membership. In some situations this field isn't filled.", + "type": "string" + } + }, + "type": "object" + }, "LiveChatMessage": { "description": "A *liveChatMessage* resource represents a chat message in a YouTube Live Chat.", "id": "LiveChatMessage", @@ -8311,11 +8419,11 @@ "type": "object" }, "LiveChatMessageSnippet": { - "description": "Next ID: 31", + "description": "Next ID: 33", "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 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", "type": "string" }, "displayMessage": { @@ -8326,6 +8434,10 @@ "$ref": "LiveChatFanFundingEventDetails", "description": "Details about the funding event, this is only set if the type is 'fanFundingEvent'." }, + "giftMembershipReceivedDetails": { + "$ref": "LiveChatGiftMembershipReceivedDetails", + "description": "Details about the Gift Membership Received event, this is only set if the type is 'giftMembershipReceivedEvent'." + }, "hasDisplayContent": { "description": "Whether the message has display content that should be displayed to users.", "type": "boolean" @@ -8337,6 +8449,10 @@ "$ref": "LiveChatMemberMilestoneChatDetails", "description": "Details about the Member Milestone Chat event, this is only set if the type is 'memberMilestoneChatEvent'." }, + "membershipGiftingDetails": { + "$ref": "LiveChatMembershipGiftingDetails", + "description": "Details about the Membership Gifting event, this is only set if the type is 'membershipGiftingEvent'." + }, "messageDeletedDetails": { "$ref": "LiveChatMessageDeletedDetails" }, @@ -8376,6 +8492,8 @@ "sponsorOnlyModeEndedEvent", "newSponsorEvent", "memberMilestoneChatEvent", + "membershipGiftingEvent", + "giftMembershipReceivedEvent", "messageDeletedEvent", "messageRetractedEvent", "userBannedEvent", @@ -8396,6 +8514,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -10097,6 +10217,27 @@ }, "type": "object" }, + "ThirdPartyLinkListResponse": { + "id": "ThirdPartyLinkListResponse", + "properties": { + "etag": { + "description": "Etag of this resource.", + "type": "string" + }, + "items": { + "items": { + "$ref": "ThirdPartyLink" + }, + "type": "array" + }, + "kind": { + "default": "youtube#thirdPartyLinkListResponse", + "description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#thirdPartyLinkListResponse\".", + "type": "string" + } + }, + "type": "object" + }, "ThirdPartyLinkSnippet": { "description": "Basic information about a third party account link, including its type and type-specific information.", "id": "ThirdPartyLinkSnippet", @@ -11185,7 +11326,7 @@ "type": "object" }, "VideoStatus": { - "description": "Basic details about a video category, such as its localized title. Next Id: 17", + "description": "Basic details about a video category, such as its localized title. Next Id: 18", "id": "VideoStatus", "properties": { "embeddable": { diff --git a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json index 69c4c35942..a273e692a1 100644 --- a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json +++ b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json @@ -421,7 +421,7 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://youtubeanalytics.googleapis.com/", "schemas": { "EmptyResponse": { diff --git a/etc/api/youtubereporting/v1/youtubereporting-api.json b/etc/api/youtubereporting/v1/youtubereporting-api.json index 160d56dce0..e320acc709 100644 --- a/etc/api/youtubereporting/v1/youtubereporting-api.json +++ b/etc/api/youtubereporting/v1/youtubereporting-api.json @@ -411,11 +411,11 @@ } } }, - "revision": "20220305", + "revision": "20230123", "rootUrl": "https://youtubereporting.googleapis.com/", "schemas": { "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); } 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": "Empty", "properties": {}, "type": "object"